单片机定时器中断-秒表设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;显示程序,同实验五
3
DELAY: TABLE:
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV P0,#0FFH
SETB P1.2
CLR P1.3
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV P0,#0FFH
SETB P1.3
RET
计时器采用 T0 中断实现,定时溢出中断周期为 10ms,当溢出中断后向 CPU 发出溢出中 断请求,每发出 100 次中断请求就对 1s 位(即最后一位)加一,以此类推,直到 9.99s 为 止。
五、设计程序
1
开始
选择定时器
定时器赋初值
设置中断
按键一启动
按键二停止 选择定时器、调用
中断 设置变量一 (十位、个位)
;显示程序结束
MOV R7,#10
;短暂的延时程序
DJNZ R7,$
RET
;延时程序结束
DB 0C0h,0F9H,0A4H,0Fra Baidu bibliotek0H,99H,92H,82H,0F8H,80H,90H
END
编译连接后的结果:
Proteus 仿真效果图:
4
六、实验结论及体会
通过以上的分析,我们可知所设计的秒表计时器,可实现计时功能,既可以进行启动 计时,也可以通过同一个按键来实现暂停,并能通过复位清零键来使秒表记时器复位,以实 现重新记时,在记时到 9.99 秒时,秒表会自动清零,重新开始计数。
本次课设要求我们定时器/计数器设计一个简单的秒表,能显示计时状态和结果。要求 进行电路实验或仿真,并使用汇编语言进行程序的开发。能力拓展训练使得我们又一次熟悉 了已学的汇编语言和先学的单片机的应用。通过这次能力拓展使我们的动手能得到了提升, 而且学会了独立完成一项任务。
这次设计充分检验了我自学的能力。这次的设计任务涉及到了许多软件方面的知识。 通过查阅资料,我不但巩固了所学的课本知识,而且学会了熟练使用许多软件。通过这次拓 展训练,我也意识到自己的不足,单片机方面的知识对我们工作和学习都非常重要,而我在 这方面还存在很多不足,以后还是要多多学习相关知识,虚心请教他人才能取得长足的进步, 是自己的专业知识技能更近一步,使自己在以后的学习工作有能力胜任相关的工作要求。
N 是否为 100 Y
实验源程序:
ORG 0000H LJMP MAIN ORG 000BH
转到显示程序 变量一加一 设置变量二 (百位)
Y 是否为 10
N
显示程序
2
MAIN:
J1: J2: J3:
J4: TIMER: DISP:
LJMP TIMER ORG 0200H MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H MOV IE,#82H CLR TR0 CLR A MOV 37H,A MOV 38H,A JB P3.7,J2 CLR A MOV 37H,A MOV 38H,A SETB TR0 SJMP J3 JB P3.6,J3 CLR TR0 MOV A,37H CJNE A,#100,J4 MOV 37H,#0 MOV A,38H INC A MOV 38H,A CJNE A,#10,J4 MOV 38H,#0 LCALL DISP LJMP J1 INC 37H MOV TH0,#0D8H MOV TL0,#0F0H RETI MOV DPTR,#TABLE CLR P1.1 MOV A,38H MOVC A,@A+DPTR ANL A,#0X7F MOV P0,A LCALL DELAY MOV P0,#0FFH SETB P1.1 MOV A,37H MOV B,#10 DIV AB CLR P1.2
用 AT89C51 设计一个 3 位 LED 数码显示“秒表”,显示时间为 00~9990 毫秒,每 10 毫 秒自动加一。当按“开始”按键,开始计数,数码管显示从 00 开始每秒自动加一;按“暂 停”按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管 显示 00。
利用 AT89S52 单片机的定时器,使其能精确计时。利用中断系统使其实现启动、暂停以 及复位清零的功能,P0 口输出段码数据,P1.0~P1.2 连上译码器作为位选,P1.7 和 P1.6 接 口的两个按钮分别实现启动暂停和复位功能。
一、实验目的
练习单片机汇编语言编程,学习按键和定时器的设计。
二、实验设备
LY5A-L2A 单片机开发板 1 套 PC 机 1 台
三、设计内容
1.按键的设计 2.设计一程序实现按 1 键启动或按 2 键停止数码管做精确的秒计数。(要求精度达到 0.1S) 3.在 proteus 中仿真设计
四、设计原理及步骤 总体思路:
;选择定时器一 ;定时器赋初值
;一键启动,否转到 J2
;转到 J3 ;二键停止,否转到 J1 ;37H 传送到 A ;A 不等于 100 转到 J4 ;37H 清零 ;38H 传送到 A ;A 加 1 ;A 传送到 38H ;A 不等于 10 转到 J4 ;清零 38H ;调用显示程序 ;37H 加一 ;重装定时器
5
3
DELAY: TABLE:
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV P0,#0FFH
SETB P1.2
CLR P1.3
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
MOV P0,#0FFH
SETB P1.3
RET
计时器采用 T0 中断实现,定时溢出中断周期为 10ms,当溢出中断后向 CPU 发出溢出中 断请求,每发出 100 次中断请求就对 1s 位(即最后一位)加一,以此类推,直到 9.99s 为 止。
五、设计程序
1
开始
选择定时器
定时器赋初值
设置中断
按键一启动
按键二停止 选择定时器、调用
中断 设置变量一 (十位、个位)
;显示程序结束
MOV R7,#10
;短暂的延时程序
DJNZ R7,$
RET
;延时程序结束
DB 0C0h,0F9H,0A4H,0Fra Baidu bibliotek0H,99H,92H,82H,0F8H,80H,90H
END
编译连接后的结果:
Proteus 仿真效果图:
4
六、实验结论及体会
通过以上的分析,我们可知所设计的秒表计时器,可实现计时功能,既可以进行启动 计时,也可以通过同一个按键来实现暂停,并能通过复位清零键来使秒表记时器复位,以实 现重新记时,在记时到 9.99 秒时,秒表会自动清零,重新开始计数。
本次课设要求我们定时器/计数器设计一个简单的秒表,能显示计时状态和结果。要求 进行电路实验或仿真,并使用汇编语言进行程序的开发。能力拓展训练使得我们又一次熟悉 了已学的汇编语言和先学的单片机的应用。通过这次能力拓展使我们的动手能得到了提升, 而且学会了独立完成一项任务。
这次设计充分检验了我自学的能力。这次的设计任务涉及到了许多软件方面的知识。 通过查阅资料,我不但巩固了所学的课本知识,而且学会了熟练使用许多软件。通过这次拓 展训练,我也意识到自己的不足,单片机方面的知识对我们工作和学习都非常重要,而我在 这方面还存在很多不足,以后还是要多多学习相关知识,虚心请教他人才能取得长足的进步, 是自己的专业知识技能更近一步,使自己在以后的学习工作有能力胜任相关的工作要求。
N 是否为 100 Y
实验源程序:
ORG 0000H LJMP MAIN ORG 000BH
转到显示程序 变量一加一 设置变量二 (百位)
Y 是否为 10
N
显示程序
2
MAIN:
J1: J2: J3:
J4: TIMER: DISP:
LJMP TIMER ORG 0200H MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H MOV IE,#82H CLR TR0 CLR A MOV 37H,A MOV 38H,A JB P3.7,J2 CLR A MOV 37H,A MOV 38H,A SETB TR0 SJMP J3 JB P3.6,J3 CLR TR0 MOV A,37H CJNE A,#100,J4 MOV 37H,#0 MOV A,38H INC A MOV 38H,A CJNE A,#10,J4 MOV 38H,#0 LCALL DISP LJMP J1 INC 37H MOV TH0,#0D8H MOV TL0,#0F0H RETI MOV DPTR,#TABLE CLR P1.1 MOV A,38H MOVC A,@A+DPTR ANL A,#0X7F MOV P0,A LCALL DELAY MOV P0,#0FFH SETB P1.1 MOV A,37H MOV B,#10 DIV AB CLR P1.2
用 AT89C51 设计一个 3 位 LED 数码显示“秒表”,显示时间为 00~9990 毫秒,每 10 毫 秒自动加一。当按“开始”按键,开始计数,数码管显示从 00 开始每秒自动加一;按“暂 停”按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管 显示 00。
利用 AT89S52 单片机的定时器,使其能精确计时。利用中断系统使其实现启动、暂停以 及复位清零的功能,P0 口输出段码数据,P1.0~P1.2 连上译码器作为位选,P1.7 和 P1.6 接 口的两个按钮分别实现启动暂停和复位功能。
一、实验目的
练习单片机汇编语言编程,学习按键和定时器的设计。
二、实验设备
LY5A-L2A 单片机开发板 1 套 PC 机 1 台
三、设计内容
1.按键的设计 2.设计一程序实现按 1 键启动或按 2 键停止数码管做精确的秒计数。(要求精度达到 0.1S) 3.在 proteus 中仿真设计
四、设计原理及步骤 总体思路:
;选择定时器一 ;定时器赋初值
;一键启动,否转到 J2
;转到 J3 ;二键停止,否转到 J1 ;37H 传送到 A ;A 不等于 100 转到 J4 ;37H 清零 ;38H 传送到 A ;A 加 1 ;A 传送到 38H ;A 不等于 10 转到 J4 ;清零 38H ;调用显示程序 ;37H 加一 ;重装定时器
5