单片机定时器实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定时器实验报告

㈠实验目的

1.掌握单片机内部计数器的使用和编程方法;

2.掌握中断处理程序的编程方法。

㈡实验器材

1.G6W仿真器一台

2.MCS—51实验板一台

3.PC机一台

4.电源一台

5.示波器一台

㈢实验内容及要求

1.在使用12MHz晶振的条件下,由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发光二极管的L1~L8。(用连线连接J2、J3)。

要求:编写程序模拟一循环彩灯。彩灯变化花样为:①L1、L2、 (8)

次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。

2.编写一个救护车警笛声程序,要求:高低两种音调交替出现,交替周期1~

1.5S。

㈣ 实验框图

循环彩灯代码

ORG 0000H LJMP MAIN

ORG 000BH ;T0的中断入口地址

MAIN:

MOV SP,#60H

MOV TMOD,#01H ;设置T1工作于方式一MOV 20H,#0AH ;装入中断次数

MOV TL0,#0B0H ;装入计数值低8位

MOV TH0,#3CH ;装入计数值高8位SETB TR1 ;启动定时器T1

SETB ET1 ;允许T1中断

SETB EA ;允许CPU中断

SJMP $ ;等待中断

CAIDENG:

PUSH PSW

PUSH ACC ;保护现场

MOV TL0,#0B0H ;装入计数值低8位

MOV TH0,#3CH ;装入计数值高8位JUDGE:

DJNZ 20H,RETUNT ;0.5秒未到,返回MOV 20H,#0AH ;重置中断次数

HUAY ANG1: ;花样一

MOV R0,#08H ;设置花样一循环次数MOV P1,#00H

MOV A,#01H

LOOP:MOV P1,A

LCALL DELAY

LCALL DELAY

LCALL DELAY

RL A

DJNZ R0,LOOP

NEXT1:

MOV TL0,#0B0H ;装入计数值低8位

MOV TH0,#3CH ;装入计数值高8位JUDGE1:

DJNZ 20H,NEXT1 ;0.5秒未到,返回MOV 20H,0AH

HUAY ANG2: ;花样二

MOV R0,#08H ;设置花样二循环次数MOV P1,#0FFH

MOV A,#0FEH

LOOP1:MOV P1,A

LCALL DELAY

LCALL DELAY

LCALL DELAY

RL A

DJNZ R0,LOOP1

NEXT2:

MOV TL0,#0B0H ;装入计数值低8位

MOV TH0,#3CH ;装入计数值高8位JUDGE2:

DJNZ 20H,NEXT2 ;0.5秒未到,返回MOV 20H,0AH

HUAY ANG3:

MOV P1,#00H

LCALL DELAY

LCALL DELAY

LCALL DELAY

MOV P1,#0FFH

LCALL DELAY

LCALL DELAY

LCALL DELAY

NEXT3:

MOV TL0,#0B0H ;装入计数值低8位

MOV TH0,#3CH ;装入计数值高8位JUDGE3:

DJNZ 20H,NEXT3 ;0.5秒未到,返回MOV 20H,0AH

JMP RETUNT

DELAY: ;延时子程序MOV R2,#0FFH

DELAY1:

MOV R1,#0FFH

DJNZ R1,$

DJNZ R2,DELAY1

RET

RETUNT:

POP ACC

POP PSW

RETI ;中断返回

END

救护车警笛声程序

ORG 0000H

AJMP MAIN

ORG 001BH ;T0的中断入口地址

AJMP S1

ORG 0040H

MAIN:

MOV SP,#70H

MOV R1,#100

MOV R2,#10

MOV R3,#20

MOV TMOD,#10H ;设置T1为定时器,工作方式1

MOV TH1,#0FCH ;装入计数值高8位

MOV TL1,#18H ;装入计数值低8位

SETB TR1 ;启动定时器T1

SETB ET1 ;允许T1中断

SETB EA ;允许CPU中断

SJMP $ ;等待中断

S1:

JB F0,S2 ;高音部分

MOV TH1,#0FCH

MOV TL1,#18H

CPL P1.0 ;取反

DJNZ R1,ENDS

MOV R1,#100

DJNZ R2,ENDS

MOV R2,#10

SETB F0 ;F0赋值

SJMP ENDS

S2:

MOV TH1,#0FEH ;低音部分

MOV TL1,#0CH

CPL P1.0

DJNZ R1,ENDS

MOV R1,#100

DJNZ R3,ENDS

MOV R3,#20

CLR F0

ENDS:

RETI

本次实验主要考察定时器和计数器还有中断的使用,由于课本上例题详细,所以初始化赋值之类的基础性问题并没有遇到什么困难,再加上第一次实验P1口输出和音乐实验的铺垫,基本上没有遇到什么太大的问题。

相关文档
最新文档