MCS51单片机第9章.ppt

上传人:本田雅阁 文档编号:2977023 上传时间:2019-06-16 格式:PPT 页数:31 大小:258.01KB
返回 下载 相关 举报
MCS51单片机第9章.ppt_第1页
第1页 / 共31页
MCS51单片机第9章.ppt_第2页
第2页 / 共31页
MCS51单片机第9章.ppt_第3页
第3页 / 共31页
MCS51单片机第9章.ppt_第4页
第4页 / 共31页
MCS51单片机第9章.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《MCS51单片机第9章.ppt》由会员分享,可在线阅读,更多相关《MCS51单片机第9章.ppt(31页珍藏版)》请在三一文库上搜索。

1、第9章 定时器/计数器的应用,9.1 定时器/计数器定时功能的应用 9.2 简易方波发生器 9.3 外部脉冲宽度的测量,1. 实训目的 掌握定时器/计数器定时功能的使用方法 掌握定时器初值的计算方法 掌握定时中断程序的编程方法 2. 功能设计 主程序: 定时器T0的初始化,应用P1口控制发光二极管L1L8的亮暗交替显示。 定时器T0中断: T0产生10s的定时中断,当定时时间到时,8个发光二极管全灭,并持续一段时间(延时1s)。,9.1 定时器/计数器定时功能的应用,3. 背景知识 8051单片机的定时器/计数器T0(T1)为16位计数器,有4种工作方式。每种工作方式的特点见书中表9.1。 本

2、题目需要T0定时10s,直接使用表9.1中的4种方式均不能达到要求。如果采用方式1,定时100ms,则中断10次时间为100ms100=10000ms=10s。 (1) 定时器工作方式寄存器TMOD设置如书中所示。 (2) 定时器/计数器控制寄存器TCON设置如书中所示。,(3) 定时器计数器初始值计算 Tini(初始值)=2N-定时时间/机器周期 其中N是定时器/计数器的定时器长度,与定时器/计数器的工作方式有关。机器周期是晶振周期的12倍,若晶振为12MHz,则机器周期为1s,若晶振为6MHz,则机器周期为2s。 如要求定时100ms(100000s),晶振采用6MHz,则定时器/计数器工

3、作在方式1下的初始值为: Tini=216-100000/2=1553615536 转换为十六进制数为3CB0H。(TL0)3CH,(TH0)0B0H。中断次数计数器(R3)10。 (4) T0中断的入口地址为000BH。,4. 硬件原理与资源分配 硬件原理图如图9.1所示。 硬件资源分配: P1口为8位输出口,驱动8个发光二极管。R5为循环计数器。,图9.1 T0定时实训硬件原理图,5. 参考程序 ORG0000H AJMPMAIN ;转主程序 ORG000BH ;T0中断入口地址 AJMPJT0 ;转T0处理程序 MAIN: NOP ;主程序段 MOVSP,#40H ;设定堆栈 MOVA,

4、#0FFH MOVP1,A ;初始化P1口 MOVR5,#100 MOVTMOD,#01H ;写控制字,T0工作方式1 MOVTH0,#0B0H ;设定初始值 MOVTL0,#3CH,SETBTR0 ;启动T0 SETBET0 ;允许T0中断 SETBEA ;开总中断 LOOP: MOVA,#0AAH MOVP1,A ;点亮L1、L3、L5、L7 LCALLYS1 ;调用延时1s程序 MOVA,#55H MOVP1,A ;点亮L2、L4、L6、L8 LCALLYS1 ;调用延时1s子程序 AJMPLOOP ;主程序循环,如果有中断,则转中断处理程序 JT0: NOP ;外部中断0处理程序,如果

5、有中断0则转此段 CLREA ;关总中断 PUSHACC ;保护现场,PUSH02H PUSH03H PUSH04H DJNZR5,RRT MOVR5,#100 MOVA,#0FFH ;L1L8全灭 MOVP1,A LCALLYS1 ;调用延时1s子程序 RRT: MOVTH0,#3CH ;重装初始值 MOVTL0,#0B0H POP04H ;恢复现场 POP03H POP02H,POPACC SETBEA ;开中断 RETI ;中断返回 DLS: MOVR1,#0FFH LOP1: MOVR2,#0FFH LOP: DJNZR2,LOP DJNZR1,LOP1 RET END 子程序YS1见

6、第6章例6.3。,6. 总结与提高 定时器/计数器是单片机内部重要的功能部件,灵活运用定时器/计数器的功能,不仅能够节约硬件资源,而且还能使程序简练、控制灵活。在使用定时器/计数器时应注意以下几个方面: (1) 应根据所要求的定时时间长度和定时的重复性,合理选择定时器的工作方式。 (2) 定时器计数器的初始化,包括设定TMOD、写入定时初值、设置中断系统和启动定时器运行等。,(3) 若将定时器计数器用于计数方式,则外部脉冲必须从P3.4(T0)或P3.5(T1)引脚输入,且外部脉冲的最高频率不能超过时钟频率的124。 在方式0、方式1、方式2状态下定时器T0、T1的工作是一样的,灵活运用这两个

7、内部定时器,可以大大提高单片机的工作效率,减少对系统硬件资源的占用,降低成本。,1. 实训目的 掌握定时器的使用及定时中断程序的设计方法 掌握方波信号发生器的设计方法 2. 功能设计 用单片机的P3.1端口输出一定频率的方波。P1口外接K1K8共8个按键,用来设定输出方波的频率,共8个档位。系统晶振为12MHz。,9.2 简易方波发生器,3. 背景知识 (1) 若P3.1的输出状态定时翻转,则P3.1端口输出一定频率的方波。假设以定时器T0定时8ms(8000s)为基本定时时间,则P3.1端口输出方波的周期为16ms。选择T0方式0定时功能,定时器初值为: Tini=213-8000/1=19

8、2C0H11000000B 低5位(TL0)00000B00H,高8位(TH0)00000110B06H。 定时器工作方式寄存器TMOD设置如书中所示。,(2) 按下按键K1,则P3.1输出基本频率的方波,按下按键K2K8,则P3.1输出频率依次降低。主程序要根据按键确定P3.1口的输出频率。 (3) T0的中断入口地址为000BH。,4. 硬件原理与资源分配 硬件原理图如图9.2所示。 硬件资源分配P1口为8位输入口,外接8个按键K1K8。R5为方波频率系数。R1、R2为延时程序DLS中所用的定时器/计数器。内部RAM61H、62H单元用于暂存键值、方波频率系数。,图9.2 方波发生器,5.

9、 参考程序 ORG0000H ;CPU起始地址 AJMPMAIN ;跳转到主程序 ORG000BH ;T0中断入口地址 AJMPJT0 ;跳转到T0处理程序 MAIN: NOP ;主程序段 MOVSP,#40H ;设定堆栈 MOVA,#0FFH ;0FF送A MOVP1,A ;P1口为输入口,初始化P1口 MOVTMOD,#00H ;写控制字,T0工作方式0 MOVTH0,#06H ;设定初始值 MOVTL0,#00H SETBP3.1,SETBTR0 ;启动T0 SETBET0 ;允许T0中断 SETBEA ;开总中断,EA=1(开放总中断) LOOP: MOVA,P1 ;读P1口 MOV6

10、1H,A ;保存P1口内容 JBACC.0,LA1 ;判断是哪一个档位 MOVR5,#01H LJMPLA9 LA1: JBACC.1,LA2 MOVR5,#02H LJMPLA9 LA2: JBACC.2,LA3 MOVR5,#03H LJMPLA9,LA3: JBACC.3,LA4 MOVR5,#04H LJMPLA9 LA4: JBACC.4,LA5 MOVR5,#05H LJMPLA9 LA5: JBACC.5,LA6 MOVR5,#06H LJMPLA9 LA6: JBACC.6,LA7 MOVR5,#07H LJMPLA9 LA7: JBACC.7,LA8 MOVR5,#08H L

11、A9: MOV62H,R5 ;R5保存于62H,LA8: AJMPLOOP ;主程序循环,如果有中断,则转中断处理程序 JT0: NOP ;T0中断处理程序 PUSHACC ;将A中数据压入堆栈保存 CLRET0 ;关T0中断 DJNZR5,TT10 ;由设定的R5的值确定输出方波的频率 CPLP3.1 ;P3.0输出 MOVR5,62H TT10: MOVTH0,#06H;重装初始值 MOVTL0,#00H SETBET0 ;开T0中断 POPACC ;恢复A RETI ;中断返回 END,6. 总结与提高 本实训是应用定时器T0的定时功能,输出8种不同频率的方波。实际应用中,输出方波的频率

12、可能要根据要求按某种规律变化,如根据现场测量参数、给定参数或按照某函数关系而变化。因此输出波形的频率在编程时还是未知的。,1. 实训目的 掌握定时/计数器门控位的使用方法 掌握脉冲宽度的测量方法 2. 功能设计 测量P3.2口输入的脉冲的宽度。,9.3 外部脉冲宽度的测量,3. 背景知识 (1) 脉冲宽度的测量原理利用定时器计数器方式寄存器TMOD中的门控位GATE与INTx引脚的配合使用,可以控制定时器计数器的启动与停止。 GATE1时,当TRxl(x=0,1),且INTx为高电平时,才能启动定时器Tx计数工作,INTx为低电平时,Tx停止计数。GATE=0时,只要TRx1就可以启动定时器,

13、而与INTx的输入状态无关。 利用上述特点,被测脉冲信号从INT1(P3.3)引入,脉冲信号上升沿启动T1计数,脉冲信号下降沿使T1停止计数。定时器的计数值乘以机器周期即为脉冲宽度。,(2) 定时器工作方式寄存器TMOD的设置如书中所示。 4. 硬件原理与资源分配 硬件原理图如图9.3所示。 硬件资源分配: 内部RAM60H、61H单元用于保存脉冲宽度对应的机器周期数。,图9.3 外部脉冲测量电路图,5. 参考程序 ORG0000H AJMPMAIN MAIN: NOP MOVSP,#40H MOVTMOD,#90H ;写控制字,T1工作方式1 MOVTH1,#0H ;设定初始值00H MOV

14、TL1,#0H LL0: JBP3.3,LL0 ;等待输入变为高电平 SETBTR1 ;启动T1 LL1: JNBP3.3,LL1 ;等待上升沿,以便开始计数 LL2: JBP3.3,LL2 ;是高电平则计数继续,CLRTR1 ;低电平则停止计数 MOVA,TL1 ;读低位计数值 MOV60H,A ;低位计数值存于60H MOVA,TH1 ;读高位计数值 MOV61H,A ;高位计数值存于61H ;其他程序处理 END,6. 总结与提高 本实训利用定时器/计数器的门控位(GATE)测量脉冲宽度。被测脉冲宽度范围最大为655352s=131ms。定时器/计数器还可用于测量脉冲信号的频率、周期等。如果被测脉冲宽度超过131ms时,应如何处理?请读者思考。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1