C的中断系统及定时计数器定时计数器概要实用.pptx
《C的中断系统及定时计数器定时计数器概要实用.pptx》由会员分享,可在线阅读,更多相关《C的中断系统及定时计数器定时计数器概要实用.pptx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、复习数电中的计数器、定时器提出要求:提出要求:1、有参与计数的实体(计数长度可变)、有参与计数的实体(计数长度可变)2、有计数脉冲的引入,有溢出位有计数脉冲的引入,有溢出位3、可以置入初值、可以置入初值溢出溢出计数脉冲计数脉冲置入初值置入初值计数长度为计数长度为n的计数器的计数器第1页/共49页溢出溢出计数脉冲计数脉冲CP置入初值置入初值长度为n的计数器长度为n的计数器定时器/计数器可由触发器构成计数状态满足一定条件时有输出有置入初值的途径最大计数长度:最大定时时间:对于加1计数器,若初值为x,则记录m个脉冲后溢出。结论:为实现m个脉冲的计数,则需置入初值x,第2页/共49页2 2、定时(延时
2、)、定时(延时)t t1 1、计数、计数m m个脉冲个脉冲任务的类型:计算:置入初值。计算:置入初值。第3页/共49页5.3 80C51单片机的定时/计数器2023/3/2345.3.1 定时/计数器的结构和工作原理 第4页/共49页2种工作模式:(1)计数器工作模式(2)定时器工作模式4种工作方式(方式0-方式3)。由图看到:1、两个可编程的定时器/计数器T1、T0。2、出现的SFR有:TH0、TL0、TH1、TL1 TMOD、TCON借助于SFR,实现:两种不同的计数脉冲的引入,并借助于TMOD用于区分模式。用TMOD来安排工作方式。第5页/共49页2023/3/236定时/计数器的工作原
3、理实质是16位加1计数器定时器模式时,是对内部机器周期计数。计数值乘以机器周期就是定时时间 计数器模式时,是对外部事件计数。脉冲由T0(P3.4)或T1(P3.5)引脚输入。注意:(若计数值为m,计数初值为X)溢出信号使TF0或TF1置1,并发出中断请求,16位时有:m=65536-X,或X=65536-m12MHz晶振时,计数频率低于0.5MHz 第6页/共49页GATEC/TM1M0GATEM1C/TM0定时器定时器T1定时器定时器T0TMOD(89H)D7 D6 D5 D4 D3 D2 D1 D0第7页/共49页2023/3/238M1M0M1M0工作方式工作方式说说 明明0000方式方
4、式0 01313位定时位定时/计数器计数器0101方式方式1 11616位定时位定时/计数器计数器1010方式方式2 28 8位自动重装定时位自动重装定时/计数器计数器1111方式方式3 3T0T0分成两个独立的分成两个独立的8 8位定时位定时/计数器;计数器;T1T1此此方式停止计数方式停止计数注意:TMOD不能进行位寻址 第8页/共49页2023/3/239控制寄存器TCON 76543210TCONTF1TR1TF0TR0字节地址:字节地址:88H第9页/共49页2023/3/23105.3.3 定时/计数器的工作方式T0有方式0、1、2、3;T1有方式0、1、2。以T0为例说明。方式0
5、:13位方式 第10页/共49页2023/3/2311 C/T=1时,则为计数模式,有:X=213-m=8192-m C/T=0时,则为定时模式,有:X=213-m=8192-m,m=t/Tcy【例5-3】若计数个数m 为2,求计数初值。X=81922=8190=1FFEH=1 1111 1111 1110B 初值计算:上述初值如何分配给TH0、TL0注意:方式0的计数初值高8位和低5位确定麻烦,实际应用中常由16位的方式1取代。第11页/共49页2023/3/2312方式1:16位方式 X=216-m=65536-m 计数范围:165536 计数初值要分成2个字节分别送入TH0、TL0第12
6、页/共49页2023/3/2313【例5-4】若要求定时器T0工作于方式1,定时时间为1ms,当晶振为6 MHz时,求送入TH0和TL0的计数初值各为多少?应怎样送入TH0和TL0?由于晶振为6 MHz,所以机器周期Tcy为2S,因此:m=t/Tcy=110-3/210-6500X216-m 65536-50065036FE0CH 也可以利用以下2条指令完成:MOV TL0,#(65536-500)MOD 256;余数为计数初值的低字节 MOV TH0,#(65536-500)/256 ;商为计数初值的高字节用传送指令分别将FEH送入TH0中,0CH送入TL0中即可。举例第13页/共49页20
7、23/3/2314方式2:8位自动重装方式 X=28-m=256-m 计数范围:1256 特别适合与脉冲信号发生器第14页/共49页2023/3/2315方式3:(仅T0有此方式,T1的方式3将停止计数)TL0进行8位定时/计数 TH0进行8位定时(T1方式2时,可出借TR1、TF1)第15页/共49页2023/3/23165.3.4 定时/计数器用于外部中断扩展例:用T0扩展一个外部中断源。将T0设置为计数器方式,按方式2工作,TH0、TL0的初值均为0FFH,T0允许中断,CPU开放中断。其初始化程序如下:MOV TMOD,#06H ;置T0为计数器方式2 MOV TL0,#0FFH ;置
8、计数初值 MOV TH0,#0FFH SETB TR0 ;启动T0工作 SETB EA ;CPU开中断 SETB ET0 ;允许T0中断 T0外部引脚上出现一个下降沿信号时,TL0计数加1,产生溢出,将TF0置1,向CPU发出中断请求 第16页/共49页2023/3/23175.3.5 定时/计数器应用举例初始化程序应完成:对TMOD赋值,以确定T0和T1的工作方式;求初值,并写入TH0、TL0或TH1、TL1;使TR0或TR1置位,启动定时/计数器工作。初始化程序设计(四条指令)MOV TMOD,#01H ;设置T0为方式1MOV TH0,#0FEH ;T0置初值MOV TL0,#0CHSE
9、TB TR0第17页/共49页两种方式对溢出作出反应:查询、中断两种方式对溢出作出反应:查询、中断2023/3/2318中断方式:(常用)查询方式:1、在主程序中进行中断初始化2、计数(定时)结束后该做的事情放在中断服务程序中1、反复查询是否溢出,如JNB TF0,$2、一旦发现溢出,及时清除溢出标志3、然后安排计数(定时)结束后该做的事情第18页/共49页2023/3/2319计数应用【例5-5】有一包装流水线,产品每计数24瓶时发出一个包装控制信号。试编写程序完成这一计数任务。用T0完成计数,用P1.0发出控制信号。确定方式字:T0在计数的方式2时:M1M0=10,GATE=0,C/T=1
10、方式控制字为06H 求计数初值X:N=24X=256-24=232=E8H应将E8H送入TH0和TL0中 第19页/共49页2023/3/2320 ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100HMAIN:MOV TMOD,#06H ;置T0计数方式2 MOV TH0,#0E8H;装入计数初值 MOV TL0,#0E8H SETB ET0 ;T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0 SJMP$;等待中断DVT0:SETB P1.0 NOP NOP CLR P1.0 RETI END主程序 中断服务程序 第20页/
11、共49页2023/3/2321定时应用 定时时间较小时(小于65ms)。可直接采用方式1完成定时任务。两种方式对溢出作出反应:查询、中断两种方式对溢出作出反应:查询、中断系统时钟为6MHz时,各种方式下的最长定时的计算:由最长定时=2nTcp ,而Tcp=2s 方式0最长可定时16.384ms;方式1最长可定时131.072ms;方式2最长可定时512s。晶振为12 MHz时,Tcy为1S。最长可定时65ms第21页/共49页2023/3/2322确定方式字:T0在定时的方式1时:M1M0=01,GATE=0,C/T=0方式控制字为01H 求计数初值X:Tcy为1S N=10ms/1S=10
12、000X=65536-10000=D8F0H应将D8送TH0,F0H送TL0 举例举例第22页/共49页2023/3/2323 ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100HMAIN:MOV TMOD,#01H ;置T0方式1 MOV TH0,#0D8H;装入计数初值 MOV TL0,#0F0H SETB ET0 ;T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0 SJMP$;等待中断DVT0:CPL P1.0 MOV TH0,#0D8H MOV TL0,#0F0H RETI END主程序中断方式 中断服务程序 数数源
13、程序的四要素注意重装初值,为什么?数数中断的四要素第23页/共49页2023/3/2324 ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV TMOD,#01H ;置T0方式1LOOP:MOV TH0,#0D8H;装入计数初值 MOV TL0,#0F0H SETB TR0 ;启动T0 JNB TF0,$;查询TF0标志 CLR TF0 ;T0溢出,清标志 CPL P1.0 ;P1.0的状态求反 SJMP LOOP END主程序查询方式 第24页/共49页2023/3/2325 定时时间较大时(大于65ms)。实现方法:一是采用1个定时器定时一定的间隔(如20ms),然
14、后用软件进行计数;二是采用2个定时器级联,其中一个定时器用来产生周期信号(如20ms为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数。第25页/共49页【例5-7】2023/3/2326编写程序,实现用定时/计数器T0定时,使P1.7引脚输出周期为2s的方波。设系统的晶振频率为12MHz。求计数初值X:Tcy为1S N=20ms/1S=20 000X=65536-20000=4E20H应将4EH送TH0,20H送TL0 采用定时20ms,然后再计数50次的方法实现-用DJNZ指令 确定方式字:T0在定时的方式1时:M1M0=01,GATE=0,C/T=0方式控制字为01H 第
15、26页/共49页2023/3/2327 ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0030HMAIN:MOV TMOD,#01H;置T0方式1 MOV TH0,#4EH;装入计数初值 MOV TL0,#20H;首次计数值 MOV R7,#50 ;计数50次 SETB ET0 ;T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0 SJMP$;等待中断DVT0:DJNZ R7,NT0 MOV R7,#50 CPL P1.7 NT0:MOV TH0,#4EH MOV TL0,#20H ;SETB TR0 RETI END主程序 中断
16、服务程序 1S到在哪里?第27页/共49页 将上述例题改写成查询方式,并在P1.0上输出周期为2秒的方波。ORG 0000HRESET:LJMP MAIN ;上电,转主程序入口MAIN ORG 1000H MAIN:MOV SP,#60H ;设堆栈指针 MOV B,#0AH ;设循环次数10次 MOV TMOD,#01H ;设T0工作在方式1 MOV TL0,#0B0H ;给T0设初值 MOV TH0,#3CH SETB TR0 ;启动T0LOOP1:JNB TF0,LOOP1 ;查询TF0标志CLR TF0 ;T0溢出,清标志MOV TL0,#0B0H ;T0溢出后,重装初值MOV TH0,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 系统 定时 计数器 概要 实用
限制150内