- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华理微机原理课件6
* * * * * * 初始化程序 MOV TMOD, ;T1为模式1定时方式 MOV TH1,#3CH MOV TL1,#0B0H ;送T1的50ms的定时初值 SETB TR1 ;启动T1定时器 GATE C/T M1 M0 GATE C/T M1 M0 定时/计数器1 定时/计数器0 模式寄存器TMOD * 例6-3:利用单片机的P1.0输出一个频率为50Hz的对称方波。(若使用T0方式1,且CPU的时钟频率为12MHz,确定工作方式、工作模式和定时初值) 解:每秒产生50个方波,每个方波的周期=20ms。 计算出10ms所对应的定时初值为D8F0H。 20ms 10ms 10ms 4. 定时器/计数器应用举例 (1) 定时器应用 * 查询法 设定T0的模式 启动T0 设定定时初值 TF0=1 清除标志 CPL P1.0 N Y ORG 1000H STRAT:MOV TMOD,#01H; LOOP: MOV TH0,# 0D8H MOV TL0,# 0F0H SETB TR0 JNB TF0,$ CLR TF0 CPL P1.0 SJMP LOOP END GATE C/T M1 M0 GATE C/T M1 M0 * (2)门控信号GATE的应用—测量脉冲宽度 例6-5:GATE1可使定时器/计数器T1的启动计数受INT1的控制,可测量引脚INT1(P3.3)上正脉冲的宽度(机器周期数)。 * ORG 0000H RESET: AJMP MAIN ;复位入口转主程序 ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#90H ;T1为方式1定时控制字 MOV TL1,#00H MOV TH1,#00H LOOP0: JB P3.3,LOOP0 ;INT1高,则循环等待 SETB TR1 ;如INT1为低,启动T1 LOOP1: JNB P3.3,LOOP1 ;INT1低,则循环等待 LOOP2: JB P3.3,LOOP2 ;INT1高,则循环(计数) * CLR TR1 ;停止T1计数 MOV A,TL1 ;T1计数值送A 将A中的T1计数 值送显示缓冲区 ? 转换成显示的代码 ? LOOP3: LCALL DIR ;调用显示子程序DIR ; 显示T1计数值 AJMP LOOP3 ; 执行程序,使INT1引脚上出现的正脉冲宽度以机器周期数的形式显示在显示器上。 * 例6-7: 用T0监视一生产流水线,每生产100个工件, 发出一包装命令,包装成一箱,并记录其箱数. AT89C52 P1.0 T0 Vcc 包装机 包装命令 100个 光源 (3)计数器应用 * GATE C/T M1 M0 控制T1 控制T0 TMOD 选方式2 选计数器 INT0不参与控制 0 1 1 0 ⑵ 计数初值X = M-64H = 9CH ⑶ 用P1.0启动外设发包装命令 ⑷ 用R5R4作箱数计数器 ⑴ 方式字TMOD = 06H * 程序: MOV TMOD,#6 MOV P1.0,#0 MOV R5,#0 MOV R4,#0 MOV TH0,#9CH MOV TL0,#9CH SETB EA SETB ET0 SETB TR0 SJMP $ ORG 000BH AJMP COUNT ;P1.0为低 ;箱数计数器清“0” ;置T0工作方式 ;计数初值送计数器 ; ;T0开中断 ;CPU开中断 ;启动T0 ; ;模拟主程序 ;T0中断入口 ;转向中断服务 * COUNT: MOV A,R4 ADD A,#1 MOV R4,A MOV A,R5 ADDC A,#0 MOV R5,A SETB P1.0 MOV R3,#100 DLY: NOP DJNZ R3,DLY CLR P1.0 RETI 中断服务: ; ; ; ;箱计数器加“1” ; ; ;启动外设包装 ;给外设足够时间 ; ;延时
文档评论(0)