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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,# 00H ; 定时器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,# 01H ; 定时器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,# 02H ; 定时器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,# 40H ; 计数器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,# 50H ; 计数器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。

相关文档
最新文档