单片机实验五-定时计数器查询方式应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五定时/计数器查询方式应用
一、定时器工作方式0、1、2的应用
(工程文件名:05定时器方式012.DSN)
已知单片机晶体振荡器频率为12MHz,使用定时器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将定时器工作方式分别设置为方式0、方式1和方式2,实现上述功能。
1.1定时器工作方式0(文件名:05定时器方式0.ASM,填空并回答问题)
P1_0 EQU P1.0
ORG 0000H
Main:
CLR P1_0
MOV TMOD,# 00 H ; 定时器0,工作方式0(13位计数值)
MOV TH0,#00H ; 计数初值
MOV TL0,#01H
SETB TR0; 启动T0,从1开始增1计数,计满溢出
LP1: JBC TF0, LP2;查询定时器0是否计满溢出,溢出转LP2处理
SJMP LP1
LP2: CPL P1_0 ;溢出P1.0取反,灯明暗变化
MOV TH0,#00H ; 重装定时器计数初值
MOV TL0,#01H
SJMP LP1
END
1.2定时器工作方式1(文件名:05定时器方式1.ASM,填空并回答问题)
P1_0 EQU P1.0
ORG 0000H
Main:
CLR P1_0
MOV TMOD,# 01 H ; 定时器0,工作方式1(16位)
MOV TH0,#00H ; 计数初值
MOV TL0,#010H
SETB TR0 ; 启动T0,从16开始增1计数,计满2^16=65536溢出
LP1: JBC TF0, LP2 ;查询定时器0是否计满溢出,若溢出转LP2处理
SJMP LP1
LP2:
CPL P1_0 ; P1.0取反,灯明暗变化
MOV TH0,#00H; 重新赋计数初值
MOV TL0,#010H
SJMP LP1
END
1.3定时器工作方式2(文件名:05定时器方式
2.ASM,填空并回答问题)
P1_0 EQU P1.0
ORG 0000H
Main:
CLR P1_0
MOV R1,#250
MOV TMOD,# 02 H ; 定时器0,工作方式2(8位重装初值)
MOV TH0,#01H ; 计数初值
MOV TL0,#01H
SETB TR0; 启动T0,定时器0从1开始增1计数,满2^8=256溢出
LP1: JBC TF0, LP2;查询定时器值是否计满溢出,若溢出转JP2处理
SJMP LP1
LP2: DJNZ R1,LP1;有无溢出250次,若没有,继续查询是否溢出
;若有执行下一句,改变灯的明暗
CPL P1_0; 溢出250次P1.0取反,灯明暗变化
SJMP LP1
END
二、计数器工作方式0、1、2的应用(文件名:计数器方式012.DSN)
已知单片机晶体振荡器频率为12MHz,使用计数器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将计数器工作方式分别设置为方式0、方式1和方式2,实现上述功能。
2.1计数器工作方式0(文件名:05计数器方式0.ASM,填空并回答问题)
P1_0 EQU P1.0
ORG 0000H
Main:
CLR P1_0
MOV TMOD,# 40 H ; 计数器1,工作方式0(13位计数值)
MOV TH1,#0FFH ; 计数初值1111,1111,0000,0000
MOV TL1,#00H
SETB TR1 ; 启动T1,从#0FF00H开始增1计数,
;终值1111,1111,0001,1111共32个脉冲溢出 LP1: JBC TF1, LP2;查询计数器值是否计满溢出,溢出转LP2
SJMP LP1
LP2:
CPL P1_0 ; P1.0取反,灯明暗变化
MOV TH1,#0FFH ; 重新赋计数初值
MOV TL1,#00H
SJMP LP1
END
2.2计数器工作方式1(文件名:05计数器方式1.ASM,填空并回答问题)
P1_0 EQU P1.0
ORG 0000H
Main:
CLR P1_0
MOV TMOD,# 50 H ; 计数器1工作方式1(16位)
MOV TH1,#0FFH ; 计数初值
MOV TL1,#0F0H
SETB TR1; 启动T1,从#FFF0H始增1计数,到#FFFFH溢
LP1: JBC TF1, LP2;查询计数器是否计满溢出,溢出转JP2处理
SJMP LP1
LP2:
CPL P1_0; P1.0取反,灯明暗变化
MOV TH1,#0FFH; 重新赋计数初值
MOV TL1,#0F0H
SJMP LP1
END
2.3计数器工作方式2(文件名:05计数器方式2.ASM,填空并回答问题)
P1_0 EQU P1.0
ORG 0000H
Main:
CLR P1_0
MOV TMOD,# 60 H ; 计数器1,工作方式2(8位重装初值)
MOV TH1,#0F0H ; 计数初值
MOV TL1,#0F0H
SETB TR1; 启动T1,从#0F0H始增1计数,到#FFH溢出
LP1: JBC TF1, LP2;查询计数器是否计满溢出,溢出转JP2处理
SJMP LP1
LP2:
CPL P1_0 ; P1.0取反,灯明暗变化
SJMP LP1
END
三、计数器工作方式3的应用(工程文件名:05计数器方式3.DSN)
已知单片机晶体振荡器频率为12MHz,使用定时/计数器编制延时程序,将计数器工作方式设置为方式3,采用查询溢出方式控制D1、D2闪烁,定时器溢出控制P1.0处指示灯D1 ,计数器溢出控制P1.7处指示灯D2。