资源描述:
《MCS51单片机的内部资源及应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第3章MCS-51单片机的内部资源及应用主要内容:MCS-51单片机内部各器件的具体结构、组成原理、工作方式的设置及典型应用,为读者后续学习单片机应用系统设计、充分利用单片机内部资源解决工程实际问题奠定基础。重点在于各器件工作方式的设置及灵活应用,难点在于中断系统和定时器/计数器的应用。3.1.1MCS-51内部并行I/O口8051有4个8位并行I/O口,分别命名为P0,P1,P2和P3口。1.P0口P0口为双向三态输入/输出口,P0口既可作为地址/数据总线口,又可作为通用I/O口,可驱动8个TTL输入。在访问3.1MCS-51单片机的并行I/O口外部存储器时,P0口作地址/数据总线复用
2、口,是一个真正的双向口,并分时送出地址的低8位和送出(或接收)相应存储单元的数据。作通用I/O口时,P0口只是一个准双向口,需要在外部引脚处外接上拉电阻。P0口的位结构如右图所示。2.P2口P2口常用做外部存储器的高8位地址口。当不用做地址口时,P2口也可作为通用I/O口,这时它也是一个准双向I/O口。不必外接上拉电阻就可以驱动任何MOS驱动电路,且只能驱动4个TTL输入。P2口的位结构如右图所示。3.P1口P1口常用做通用I/O口,它也是一个标准的准双向I/O口,不必外接上拉电阻就可以驱动任何MOS驱动电路,且只能驱动4个TTL输入。P1口的位结构如右图所示。4.P3口P3口是一个双功
3、能口,第一功能与P1口一样可用做通用I/O口,也是一个准双向I/O口,能驱动4个TTL输入。另外还具有第二功能。P3口工作在第二功能时各管脚定义如下表所示。P3口的位结构图如右图所示。3.1.2MCS-51内部并行I/O口的应用MCS-51I/O端口的操作方式:(1)输出数据方式:CPU通过一条数据传送指令就可以把输出数据写入P0~P3的端口锁存器,然后通过输出驱动器送到端口引脚线。例如,下面的指令均可在P0口输出数据。MOVP0,AANLP0,#dataORLP0,A(2)读端口数据方式:CPU读入的这个数据并非端口引脚线上的数据。读端口数据可以直接读端口。例如,下面的指令均可以从P1
4、口输入数据。MOVA,P1MOV20H,P1MOVR0,P1MOV@R0,P1(3)读端口引脚方式:读端口引脚方式可以从端口引脚上读入信息。在这种方式下,CPU首先必须使欲读端口引脚所对应的锁存器置1,然后才能读端口引脚。因此,用户在读引脚时必须先置位锁存器后读,连续使用两条指令。例如,下面的程序可以读P1引脚上的低4位信号。MOVP1,#0FH;置位P1引脚的低4位锁存器MOVA,P1;读P1引脚上的低4位信号送累加器A在I/O口直接用做输入/输出时,CPU既可以把它们看做数据口,也可以看做状态口,这是由用户决定的。[例题1]要求将两个BCD拨码开关的数字和,在LED数码管上显示出来。
5、(用CD4511驱动LED)解:CD4511是BCD锁存—段码译码—共阴LED驱动集成电路,其引脚如右图所示,各引脚功能如下:VCC:接正电源;Vss:接地;A,B,C,D:BCD码输入脚(A为最低位,D为最高位);Qa~Qg:段码输出脚,高电平有效,最大可输出25mA电流;BI:熄灭,接低电平则Qa~Qg全部输出低电平;LT:点亮测试,接低电平则Qa~Qg全部输出高电平;LE:锁存允许,接高电平锁存,则输出不会随BCD码输入改变。1.I/O口直接用于输入/输出硬件电路设计:BCD拨码开关为4位,两个BCD拨码开关分别接至P3口的高四位和低四位(注意:应连接上拉电阻),由P1口的高四位和
6、低四位通过两片CD4511分别扩展两位LED。硬件电路如下图所示。软件设计思想:读P3口引脚,得到输入数据,将数据分成2个4位BCD码,求BCD码和,输出到P1口,通过CD4511驱动LED显示。程序如下:ORG0100HMOVP3,#0FFH;读引脚先对其写1MOVA,P3;读引脚CPLA;取反,取真正的键值MOV20H,A;A中的数据送20H单元保存SWAPA;A中的内容半字节交换ANLA,#0FH;A中得到原高4位的反码ANL20H,#0FH;20H单元中得到原低4位的反码ADDA,20H;A中为原高低4位反码之和DAA;BCD码调整MOVP1,A;输出到P1口SJMP$;程序执行
7、完,“原地踏步”END2.I/O口扩展外部锁存器为了提高数据传输速率,MCS-51单片机常常需要使I/O口通过外部锁存器和输入设备相连。如下图所示为8051通过74LS373与输入设备连接的接口图。通过中断方式读取数据,8051响应该中断请求后在中断服务程序中通过下面的指令读取输入数据:MOVDPTR,#7FFFH;DPTR指向74LS373端口,地址为7FFFH)MOVXA,@DPTR;读入数据到A中3.2MCS-51单片机的中断