80C51单片机的功能单元

上传人:龙*** 文档编号:98444376 上传时间:2019-09-11 格式:PPT 页数:75 大小:299KB
返回 下载 相关 举报
80C51单片机的功能单元_第1页
第1页 / 共75页
80C51单片机的功能单元_第2页
第2页 / 共75页
80C51单片机的功能单元_第3页
第3页 / 共75页
80C51单片机的功能单元_第4页
第4页 / 共75页
80C51单片机的功能单元_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《80C51单片机的功能单元》由会员分享,可在线阅读,更多相关《80C51单片机的功能单元(75页珍藏版)》请在金锄头文库上搜索。

1、第四章 80C51单片机的 功能单元,一、并行I/O接口,80C51共有四个8位的并行双向口。每位均有锁存器、输出驱动器和输入缓冲器组成。它们在结构和功能上均有差异,下面逐一介绍之。,1. P1口,P1口是一个8位口,可以字节访问也可以位访问。其字节地址为90H,位地址为90H97H。,P1口结构和工作过程分析,输出上拉结构,Q,P1口特点,输出锁存 输出高电平能力弱,低电平能力强 特殊的读、修改、写指令,只读锁存器的输出。当目的操作数是断口时,下列指令读锁存器而不是管脚。 ANL、ORL、XRL、JBC、CPL、INC DEC、DJNZ、MOV PX.Y,C、CLR、SETB,p1口举例,P

2、1口高电平输出能力差,对HMOS系列只有0.2mA以下,因此,直接驱动负载时应该用低电平驱动.低电平的拉电流能力强.,+5V,P1.X,p1口举例,输入时应先把I/O口置高,如果置低,可能损坏I/O口.最好硬件电路设计上有所考虑.,+5V,GND,P1.x,2. P3口,P3口是一个多功能8位口,可以字节访问也可以位访问。其字节地址为B0H,位地址为B0HB7H。,P3口结构和工作过程分析,P3口第二功能,P3.0 RXD,串行口输入 P3.1 TXD,串行口输出 P3.2 INT0,外部中断0 P3.3 INT1,外部中断1 P3.4 T0,定时/计数器0 P3.5 T1,定时/计数器1 P

3、3.6 WR,外部存储器写选通 P3.7 RD,外部存储器读选通,3. P2口,P2口是一个多功能8位口,可以字节访问也可以位访问。其字节地址为A0H,位地址为A0HA7H。其第二功能是作为外部存储器的高地址输出。,P2口结构和工作过程分析,P2.i 锁存器,读锁存器,Vcc,P1.i 引脚,内部总线,写锁存器,读引脚,B,A,内部上拉电阻,D,CL,Q,Q,BUF2,BUF1,Q,地址,控制,P2口的功能特点,不输出地址时,作为双向I/O口使用 可以作为高地址输出 能驱动4个TTL门,4. P0口,P0口是一个多功能8位口,可以字节访问也可以位访问。其字节地址为80H,位地址为80H87H。

4、其第二功能是作为外部存储器的低地址输出和数据输入输出。,P0口结构和工作过程分析,P0.i 锁存器,读锁存器,Vcc,P0.i 引脚,内部总线,写锁存器,读引脚,B,A,D,CL,Q,Q,BUF2,BUF1,Q,0,1,地址/数据,控制,P0口的特点,P0口作为总线时是地址、数据复用。 作为I/O口使用时是漏极开路应用。 P0口能驱动8个TTL门。,二、定时/计数器,1、定时/计数器概述,80C51系列单片机中总是包含T0,T1两个定时/计数器,有的型号还有定时/计数器T2,定时计数器的核心是一个加一计数器,其基本功能是加一操作。 如果对外部信号加一,就是计数器。 如果对时钟信号加一,就是定时

5、器。,2、定时/计数器T0、T1,内部结构,16位计数器TH0、TL0和TH1、TL1 特殊功能寄存器TMOD、TCON 时钟分频器 输入引脚T0、T1、INT0、INT1,内部结构图,TMOD (89H)不可位寻址,TCON (88H)可位寻址,TL1,TH1,TF,TL1,TH1,TF,INT1,T1,INT0,T0,CLK/12,CLK/12,TMOD 方式寄存器,GATE,D7,C/T,D6,M1,D5,M0,D4,GATE,D3,C/T,D2,M1,D1,M0,D0,T1,T0,M0、M1,选择定时/计数器的模式0、1、2、3 C/T,选择定时或计数功能 GATE,选择脉冲源,TCO

6、N 控制寄存器,TFx,计数溢出时置1,进入中断程序时硬件清零。如果不允许中断,需要软件清零。 TRx,控制计数定时脉冲的输入。由软件控制。 其它位与中断控制有关,以后详述。,TF1,D7,TR1,D6,TF0,D5,TR0,D4,IE1,D3,IT1,D2,IE0,D1,IT0,D0,T1,T0,88H,8FH,与中断控制有关,定时/计数器T0、T1 方式0,TLx (5位),THx (8位),TFx,申请 中断,12,振荡器,Tx引脚,C/T=0,C/T=1,+,TRx,GATE,INTx引脚,A,B,控制,x=0,1,M1=0 M0=0,定时/计数器T0、T1 方式1,TLx (8位),

7、THx (8位),TFx,申请 中断,12,振荡器,Tx引脚,C/T=0,C/T=1,+,TRx,GATE,INTx引脚,A,B,控制,x=0,1,M1=0 M0=1,定时/计数器T0、T1 方式2,TLx (8位),THx (8位),TFx,申请 中断,12,振荡器,Tx引脚,C/T=0,C/T=1,+,TRx,GATE,INTx引脚,A,B,控制,x=0,1,M1=1 M0=0,重装载,方式3时定时/计数器T0,TL0 (8位),TF0,申请 中断 T0,12,振荡器,T0引脚,C/T=0,C/T=1,+,TR0,GATE,INT0引脚,A,B,控制,M1=1 M0=1,TH0 (8位),

8、TF1,申请 中断 T1,12,振荡器,TR1,T0方式3时T1方式选择,TL1 (5,8),TH1 (8位),串行口,12,振荡器,T1引脚,C/T=0,C/T=1,串行口,12,振荡器,T1引脚,C/T=0,C/T=1,TL1 (8位),TH1 (8位),重装载,(a)T1方式1或0,(b)T1方式2,定时/计数器T2,在51系列单片机中,8052子系列除了有定时/计数器T0、T1外,还具有功能更强的定时/计数器T2。除了两个8位计数器TL2、TH2和控制寄存器T2CON及T2MOD之外,还有捕获寄存器RCAP2L和RCAP2H。 输入引脚T2(P1.0)是外部计数脉冲输入端。输入引脚T2

9、EX(P1.1)是外部控制信号输入端。,T2中的特殊功能寄存器,位地址,位功能,0CFH,TF2,0CEH,EXF2,0CDH,RCLK,0CCH,TCLK,0CBH,EXEN2,0CAH,TR2,0C9H,C/T2,0C8H,CP/RL2,T2CON控制寄存器:,C/T2=0 功能选择为定时器 C/T2=0 功能选择为计数器,T2中的特殊功能寄存器,T2MOD是字节寻址的,字节地址为0C9H, 只有最低位有定义。,D7-D1,-,D0,DCEN,DCEN=1,减计数; DCEN=0,加计数;,T2的工作方式,捕获方式,TL2 (8位),TF2,申请 中断,12,振荡器,T2引脚,C/T=0,

10、C/T=1,控制,TR2,TH2 (8位),RCAP2L,RCAP2H,控制,EXF2,EXEN2,边沿检测,T2EX 引脚,自动重装载方式(DCEN=0),TL2 (8位),TF2,申请 中断,12,振荡器,T2引脚,C/T=0,C/T=1,控制,TR2,TH2 (8位),RCAP2L,RCAP2H,控制,EXF2,EXEN2,边沿检测,T2EX 引脚,重载,自动重装载方式(DCEN=1),TL2 (8位),申请 中断,12,振荡器,T2引脚,C/T=0,C/T=1,控制,TR2,TH2 (8位),RCAP2L,RCAP2H,0FFH,0FFH,TF2,T2EX管脚,EXF2,波特率发生器方

11、式,TL2 (8位),TF2,12,振荡器,T2引脚,C/T=0,C/T=1,控制,TR2,TH2 (8位),RCAP2L,RCAP2H,控制,EXF2,EXEN2,边沿检测,T2EX 引脚,16,重载,中断 申请,定时器、计数器定时常数计算,由于计数器是加1计数的,所以定时常数应该求补码。 t=Tc(2L-TC)=12/f (2L-TC) t:定时时间; Tc :机器周期; f:震荡器频率; L:计数器字长;,计算举例:,要使定时时间为2ms,而晶体震荡频率为12MHz ,求定时常数。,2ms=1us(216-TC) TC=216-2000 =65536-2000 =63536 化成两个字节

12、: =0f830h,定时/计数器编程,写TMOD,只能用字节寻址(M0,M1,C/T,GATE)。 将时间常数或计数常数写入计数器寄存器。 设置中断开放或禁止。 启动计数器。,例1,使用T0在P1.0脚产生周期为2ms方波,震荡器频率为6MHz。,设计思路是每1ms产生一个中断,中断程序中除了重新初始化计数器外,使P1.0电平反转。 选用模式1作为T0的工作模式。即TMOD=01H 由于震荡器频率为6MHz,即2微妙计数器计数一次。计数500次就是1ms。定时常数为65536-500=0FE0CH,即TH=0FEH,TL=0CH。 主程序先初始化定时计数器,然后开启计数器。,具体程序,主程序段

13、: MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#0CH SETB ET0 SETB EA SETB TR0,中断程序: ORG 000BH MOV TH0,#0F0H MOV TL0,#0CH CPL P1.0 RETI,例2,T0用方式3,这时TL0、TH0分别可作为两个8位计数器,产生两个方波。定时常数为: 256-100*(12/11.0592)=147 256-150*(12/11.0592)=93 T1用方式2,自动重装载,定时常数0F9H。,使用80C51单片机,用T1为串行口提供波特率9600定时,同时希望产生两个方波,周期为200和300微妙。为产

14、生准确的标准波特率,震荡器通常选择频率为11.0592Mhz。,具体程序,org 0bh ;tl0中断 mov tl0,#147 cpl p1.0 reti org 1bh ;th0中断 mov th0,#93 cpl p1.1 reti,主程序片段如下: mov tmod,#23h mov tl0,#147 mov th0,#93 mov tl1,#0f9h mov th1,#0f9h setb tr0 setb tr1 setb et0 setb et1 setb ea ,例3,T0采用方式1,中断程序中通过判断p1.0是高电平还是低电平来重新设置计数器初始值。 计数器初始值从变量中得出,该变量的值同时由主程序动态给出,这样,PWM波的占空比等参数就由主程序决定了。,产生PWM波形,PWM波形的参数由主程序动态设置,只能使用一个定时器,比如T0。,具体程序,;中断程序 t0int: cpl p1.0 jb p1.0,high mov tl0,low_level_l mov th0,low_level_h reti high: mov tl0,high_level_l mov th0,high_level_h reti,;主程序 o

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号