- 85
- 0
- 约1.82千字
- 约 3页
- 2019-10-12 发布于山东
- 举报
实验三 定时器实验
一、实验题目
采用内部定时器1,按方式1工作,即作为十六位定时器使用,每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。要求开机后第一秒钟D1、D3亮,第二秒钟D2、D4亮,第三秒钟D5、D7亮,第四秒钟D6、D8亮,第五秒钟D1、D3、D5、D7亮,第六秒钟D2、D4、D6、D8亮,第七秒钟8个二极管全亮,第八秒钟全灭,以后又从头开始,D1、D3亮……一直循环下去。
二、实验目的
1、学习8051内部计时器的使用和编程方法。
2、掌握中断处理程序的编程方法。
三、实验原理
1、定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡器频率的1/12。
本实验中时钟频率为12MHZ,现要采用中断方法来实现1S延时,要在定时器1中设置一个时间常数,使其每隔0.05S产生一次中断,CPU响应中断后将R0中计数器减一,令(R0)=20,即可实现1S延时。
时间常数可按如下方法确定:
机器周期=12÷晶振频率=12÷12×10-6=1×10-6 S=1μS
需设初值为X,则(216-X)×1×10-6=0.05S
X=65536-50000=15336,化为十六进制:X=3CB0,
故初始值为TH1=3CH,TL1=0B0H。
2、初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。注意:
定时器1初始化建议不用指令:
MOV TMOD,#10H
而用下述指令:
ANL TMOD,#0FH
ORL TMOD,#10H
3、设计中断服务程序和主程序。
中断服务程序要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序亮灭。
四、实验电路及连线
图3-1 8位独立LED
表3-1 硬件连接表
MCU-AT89S52
8位独立LED
P10~ P17
D1~ D8
五、思考题
1、8051单片机有哪几种中断源?写出各自的中断地址?
2、若定时器1工作在模式2,晶振频率为12MHz,要定时100μS则定时初值=?
程序:
ORG 0000H
LJMP MAIN
ORG 001BH ;T1的中断入口地址
LJMP ZD
ORG 0100H
MAIN:
ANL TMOD,#0FH
ORL TMOD,#10H
MOV TH1,#3CH ;装入计数值高8位
MOV TL1,#0B0H ;装入计数值低8位
SETB TR1 ;启动定时器T1
SETB ET1 ;允许T1中断
SETB EA ;允许CPU中断
;SJMP $ ;等待中断
MOV R0,#20
MOV R1,#0
MOV DPTR,#TAB
TAB:
DB 0FAH,0F5H,0AFH,05FH,0AAH,055H,00H,0FFH
; 13 ,24 ,57 ,68 ,1357,2468,全亮,全灭
LOOP1:
MOV A,R1
MOVC A,@A+DPTR ;ROM查表,变址寻址
SJMP LOOP2
LOOP2:
MOV P1,A
JMP LOOP3
LOOP3:
CJNE R0,#0,LOOP2 ;比较不等转
MOV R0,#20
INC R1 ;寄存器R1加一
CJNE R1,#08,LOOP1
MOV R1,#0
ZD:
CLR TR1 ;位清零
DEC R0 ;减一
MOV TH1,#3CH ;装入计数值高8位
MOV TL1,#0B0H ;装入计数值低8位
SETB TR1 ;启动定时器T1
RETI
END
您可能关注的文档
最近下载
- 《洁净室施工及验收规范》(GB50591-2010).pdf VIP
- 钻井平台钻前工程初步设计-道路.pdf VIP
- 中国法制史试题及答案完整版 .pdf VIP
- 蓝色云南大学顶部导航栏复试模板.pptx VIP
- 湖北工程学院新技术学院《高等数学A》2025-2026学年期末考试试卷(A)卷.docx VIP
- GB 55006-2021 钢结构通用规范.docx VIP
- GB 55002-2021 建筑与市政工程抗震通用规范.docx VIP
- GB 55001-2021 工程结构通用规范.docx VIP
- GB50068-2018_建筑结构可靠性设计统一标准.docx VIP
- 执行结构设计.pdf VIP
原创力文档

文档评论(0)