收藏 分享(赏)

单片机实验五-定时计数器查询方式应用.doc

上传人:精品资料 文档编号:10616023 上传时间:2019-12-07 格式:DOC 页数:6 大小:49KB
下载 相关 举报
单片机实验五-定时计数器查询方式应用.doc_第1页
第1页 / 共6页
单片机实验五-定时计数器查询方式应用.doc_第2页
第2页 / 共6页
单片机实验五-定时计数器查询方式应用.doc_第3页
第3页 / 共6页
单片机实验五-定时计数器查询方式应用.doc_第4页
第4页 / 共6页
单片机实验五-定时计数器查询方式应用.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、实验五 定时/ 计数器查询方式应用一、定时器工作方式 0、1、2 的应用(工程文件名:05 定时器方式 012.DSN) 已知单片机晶体振荡器频率为 12MHz,使用定时器编制延时程序,采用查询溢出方式控制红灯 D1 交替闪烁,将定时器工作方式分别设置为方式 0、方式 1 和方式 2,实现上述功能。1.1 定时器工作方式 0(文件名: 05 定时器方式 0.ASM,填空并回答问题) P1_0 EQU P1.0ORG 0000HMain: CLR P1_0MOV TMOD,# 00 H ; 定时器 0,工作方式 0(13 位计数值)MOV TH0,#00H ; 计数初值MOV TL0,#01HS

2、ETB TR0; 启动 T0,从 1 开始增 1 计数,计满溢出LP1: JBC TF0, LP2;查询定时器 0 是否计满溢出,溢出转 LP2 处理SJMP LP1LP2: CPL P1_0 ;溢出 P1.0 取反,灯明暗变化MOV TH0,#00H ; 重装定时器计数初值MOV TL0,#01HSJMP LP1END1.2 定时器工作方式 1(文件名: 05 定时器方式 1.ASM,填空并回答问题) P1_0 EQU P1.0ORG 0000HMain: CLR P1_0MOV TMOD,# 01 H ; 定时器 0,工作方式 1(16 位)MOV TH0,#00H ; 计数初值MOV T

3、L0,#010HSETB TR0 ; 启动 T0,从 16 开始增 1 计数,计满 216=65536 溢出LP1: JBC TF0, LP2 ;查询定时器 0 是否计满溢出,若溢出转 LP2 处理SJMP LP1LP2: CPL P1_0 ; P1.0 取反,灯明暗变化MOV TH0,#00H; 重新赋计数初值MOV TL0,#010HSJMP LP1END1.3 定时器工作方式 2(文件名: 05 定时器方式 2.ASM,填空并回答问题) P1_0 EQU P1.0ORG 0000HMain: CLR P1_0MOV R1,#250MOV TMOD,# 02 H ; 定时器 0,工作方式

4、2(8 位重装初值)MOV TH0,#01H ; 计数初值MOV TL0,#01HSETB TR0; 启动 T0,定时器 0 从 1 开始增 1 计数,满 28=256 溢出LP1: JBC TF0, LP2;查询定时器值是否计满溢出,若溢出转 JP2 处理SJMP LP1LP2: DJNZ R1,LP1;有无溢出 250 次,若没有,继续查询是否溢出;若有执行下一句,改变灯的明暗CPL P1_0; 溢出 250 次 P1.0 取反,灯明暗变化SJMP LP1END二、计数器工作方式 0、1、2 的应用(文件名:计数器方式 012.DSN) 已知单片机晶体振荡器频率为 12MHz,使用计数器编

5、制延时程序,采用查询溢出方式控制红灯 D1 交替闪烁,将计数器工作方式分别设置为方式 0、方式 1 和方式 2,实现上述功能。2.1 计数器工作方式 0(文件名: 05 计数器方式 0.ASM,填空并回答问题) P1_0 EQU P1.0ORG 0000HMain: CLR P1_0MOV TMOD,# 40 H ; 计数器 1,工作方式 0(13 位计数值)MOV TH1,#0FFH ; 计数初值 1111,1111,0000,0000MOV TL1,#00HSETB TR1 ; 启动 T1,从#0FF00H 开始增 1 计数,;终值 1111,1111,0001,1111 共 32 个脉冲

6、溢出LP1: JBC TF1, LP2;查询计数器值是否计满溢出,溢出转 LP2SJMP LP1LP2: CPL P1_0 ; P1.0 取反,灯明暗变化MOV TH1,#0FFH ; 重新赋计数初值MOV TL1,#00HSJMP LP1END2.2 计数器工作方式 1(文件名: 05 计数器方式 1.ASM,填空并回答问题) P1_0 EQU P1.0ORG 0000HMain: CLR P1_0MOV TMOD,# 50 H ; 计数器 1 工作方式 1(16 位)MOV TH1,#0FFH ; 计数初值MOV TL1,#0F0HSETB TR1; 启动 T1,从#FFF0H 始增 1

7、计数,到#FFFFH 溢LP1: JBC TF1, LP2;查询计数器是否计满溢出,溢出转 JP2 处理SJMP LP1LP2: CPL P1_0; P1.0 取反,灯明暗变化MOV TH1,#0FFH; 重新赋计数初值MOV TL1,#0F0HSJMP LP1END2.3 计数器工作方式 2(文件名: 05 计数器方式 2.ASM,填空并回答问题) P1_0 EQU P1.0ORG 0000HMain: CLR P1_0MOV TMOD,# 60 H ; 计数器 1,工作方式 2(8 位重装初值)MOV TH1,#0F0H ; 计数初值MOV TL1,#0F0HSETB TR1; 启动 T1

8、,从#0F0H 始增 1 计数,到#FFH 溢出LP1: JBC TF1, LP2;查询计数器是否计满溢出,溢出转 JP2 处理SJMP LP1LP2: CPL P1_0 ; P1.0 取反,灯明暗变化SJMP LP1END三、计数器工作方式 3 的应用(工程文件名: 05 计数器方式 3.DSN) 已知单片机晶体振荡器频率为 12MHz,使用定时/ 计数器编制延时程序,将计数器工作方式设置为方式 3,采用查询溢出方式控制 D1、D2 闪烁,定时器溢出控制 P1.0 处指示灯D1 ,计数器溢出控制 P1.7 处指示灯 D2。ORG 0000H ; P1.7 定时时间 255us*200=51m

9、sMain: MOV TMOD,# 07 H ;工作方式 3:禁用 T1,用 T0, TH0 定时器, TL0 定时或计数; 因为计数模式,所以 TL0 计数MOV TH0,#01H ; 定时器 TH0 初值,计数 255 个溢出, P1.0 定时时间为 255usMOV TL0,#038H ;计数器 TL0 初值,计数 200 个溢出,P1.7 线 51ms 变化一次SETB TR0 ;启动计数器 TL0,从#38H 始增 1 计数,计满 200 个脉冲到#FFH 溢出。SETB TR1;启动定时器 TH0,从#01H 始增 1 计数,计满 255 个脉冲到#FFH 溢出LP1: JBC T

10、F1, LP2;查询定时器 TH0 值是否溢出,定时器计数周期短,先会溢出SJMP LP1LP2: MOV TH0,#01H ;定时器 TH0 溢出,重置初值CPL P1.0 ;P1.0 红灯明暗变化CLR P3.4 ;产生 T0 计数脉冲NOPNOPSETB P3.4JBC TF0, LP3; 查询计数器 TL0 值是否计满溢出SJMP LP1LP3: MOV TL0,#038H;计数器 TL0 溢出,重置初值CPL P1.7; 计数器 TL0 溢出,P1_7 取反SJMP LP1END1.1 填空并回答问题:P1.0 红灯过多久明暗发生变化?答:t=(213-1)*(1/12MHz)*12

11、=8.191ms1.2 填空并回答问题:P1.0 红灯过多久明暗发生变化? 答:t=(216-24)* (1/12MHz)*12=65.520ms1.3 填空并回答问题:TL0 自动重装的初值来自哪里? P1.0 红灯过多久明暗发生变化?答:来自 TH0, t=250*(28-1) * (1/12MHz)*12=63.750ms2.1 填空并回答问题:P1.0 红灯过多久明暗发生变化?答:t=29.4*(25) =940.8ms2.2 填空并回答问题:P1.0 红灯过多久明暗发生变化?答:t=29.4* (24) =470.4ms2.3 填空并回答问题:P1.0 红灯过多久明暗发生变化?答:t=29.4* (24) =470.4ms3.1 填空并回答问题:D1、D2 过多久明暗发生变化?答:D1:t=255 * (1/12MHz)*12=255usD2: t=255*200 * (1/12MHz)*12=51ms

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报