; 暂停键K3、快速加速键K4程序
;******************************************************** ***** **********
这里:jb p1.0,这里
显示:clr tr1
clrtr0
呼唤贤士
快加:jb p1.2,快加; 等待P1.2为0,快速加速
clrtr0
设置btr1
这里3:jnb p1.2,这里3
在这里
;******************************************************** ***** **********
; 外部中断INT0子程序—–定时按钮K1子程序
;******************************************************** ***** **********
zhongduan0: setb tr0; 定时按钮
雷蒂
;******************************************************** ***** **********
; 外部中断INT1子程序—-复位按钮K2子程序
;******************************************************** ***** **********
zhongduan1:clr tr0 ;复位按钮
clrrtr1
移动 12h,#00h
移动11h,#00h
称呼贤士; 调用显示子程序
移动r1,#00h
移动r2,#00h
雷蒂
;******************************************************** ***** **********
; 添加子程序
;******************************************************** ***** **********
jia1:公司r1; 添加1个子程序
cjne r1,#0ah,循环; 判断是否到达表尾
移动r1,#00h
包括r2
cjne r2,#0ah,循环
移动r2,#00h
循环: mov 12h,r1 ;重新分配
移动 11h,r2
雷特
;******************************************************** ***** **********
; 显示子程序
;******************************************************** ***** **********
贤时:mov r7,#02h ;2个数码管显示子程序
移动r0,#12h
循环5: mov r6,#08h ; 8位二进制数
移动a,@r0
移动a,@a+dptr
循环6:rlc a; 向左循环
CLR p3.1
移动p3.0,c
设置p3.1
DJNZ R6,循环6
十月 r0
DJNZ R7,循环5
雷特
;******************************************************** ***** **********
; 定时器T0子程序
;******************************************************** ***** **********
延世: mov tl0,#2Ch ; 定时子程序
移动th0,#0CFh
DJNZ R3,循环7
呼叫jia1; 调用加1子程序
称呼贤士; 调用显示子程序
移动 r3,#40
循环7:视网膜
;******************************************************** ***** **********
;定时器T1子程序
;******************************************************** ***** **********
dingshi1:mov tl1,#78h; 设置初始值,定时10MS
移动th1,#0ech
clrtr0
设置btr1
移动 12h,r1
移动 11h,r2
jnb p1.0,显示
呼叫嘉1
呼唤贤士
lop7:雷蒂
;******************************************************** ***** **********
选项卡:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
结尾
11. 课程设计经验
1、仔细审题,理解题目要求! 选择一个合适的主题,既不太容易也不太困难。 达到完成项目和锻炼自身能力的双重目的!
2、根据题目要求复习相关知识,查询相关资料。
3、根据实验条件,找到合适的方案,找到需要的组件和工具,为实验做好准备。
4、根据课程设计的要求和想要添加的功能,编写程序流程图。 根据程序流程图,根据芯片的功能编写相应的程序。 然后进行程序调试和相应的修改,以达到实现所需功能的目的。
5.根据实验的实际情况,应添加一些附加程序以使系统更加稳定,例如开关振荡消除(使用延迟)。
6、程序应尽量由各种子程序组成。 最好在一些程序后面加上注释,这样在检查程序错误的过程中更容易发现,也更简洁、更清晰。
7、本实验的程序可以参考《DVCC系列单片机微机仿真实验系统实验指南》中的串并转换实验,也可以按照自己熟悉的方法自行编程。
8、设计控制开关时,要注意两个中断的打开和关闭顺序,否则会出错。
9、本次单片机课程设计的重点是理论与实践的结合。 这不再只是阅读的问题了。
10.我必须从头到尾参与设计。 我熟悉了整个设计流程,也更加系统地训练了自己。
这样设计就完成了! !
————————————————– —–
下面提供一个程序(供参考)
;开机初始化
MOV P3,#0FFH; 初始化P3口,设置为高电平,用于按键输入
MOV P0,#0FFH; 使显示时间数码管熄灭
清除F0
清除F1
MOV DPTR,#NUMTAB ;指定查表起始地址
;等待按键输入
;根据按键输入确定执行什么功能
; 按按钮 1 执行功能 1
MOV P3,#0FFH; 初始化P3口,设置为高电平,用于按键输入
MOV P0,#0FFH; 使显示时间数码管熄灭
开始:JB P3.6,开始1; 循环判断启动按钮K1是否被按下?
呼叫延迟10; 触点去抖延迟 10 毫秒
JB P3.6,START;如果有干扰,则返回
JNB P3.6,$;等待按钮松开
LJMPGN1
; 按按钮 2 执行功能 2
开始1:JB P3.7,开始; 循环判断启动按钮K2是否被按下?
呼叫延迟10; 触点去抖延迟 10 毫秒
JB P3.7,START1;如果有干扰,则返回
JNB P3.7,$
LJMP GN2
12345
关键词:
1. 实验课题
秒表系统设计——利用AT89C51设计一个2位LED数码显示“秒表”,显示00到99秒的时间,并每秒自动加一。 还设计了一个“开始”按钮和一个“重置”按钮。
2.添加功能
添加“暂停”按钮和“快速增加”按钮(每10ms快速增加1)
3 实验内容总结
本实验利用单片机定时器/计数器的定时和计数原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按钮来设计定时器。 软件和硬件的有机结合,使系统能够准确计时,数码管能够正确显示时间。 其中,本实验设计了四个开关按钮:当按下其中一个按钮时,时间从1秒加一开始,即秒表开始按钮(本实验中,当开关从1变为1时开始计时)为0),当按下另一个按钮时,暂停计时,使秒表保持原来的计时(本实验中,当相应开关由1变为0时停止计时),当按下第三个按钮时,清0按下(本实验中,当对应的开关由 1 变为 0 时即停止计时),按下第四个按钮将快速每 10ms 增加 1 次(本实验中,当开关由 1 变为 0 时即开始计时) 1 到 0)。 在本实验开始时,所有按钮必须返回到其初始位置,即它们都处于1状态。
3 实验目的
1、通过本次课程设计,加深对单片机课程的全面理解、复习和掌握,进一步了解单片机课程的应用。
2.掌握定时器和外部中断的设置和编程原理。
3.通过本课程设计,您可以结合单片机软件和硬件来编辑和验证程序。
4. 意义
本实验利用单片机的定时器/计数器定时和计数原理,设计了一个简单的定时器系统,具有正确定时、暂停、清零、快速加速等功能。 还可以用数码管显示,在现实生活中得到广泛应用。 具有实际意义。
5.我的工作
以相关单片机教材为基础,运用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软硬件(集成电路芯片8032、七段数码管、开关电路和时钟信号电路、按钮、等),编写能够实现该项目的软件程序的程序,最后将软件和硬件有机结合起来进行有效的调试,达到完成实验课程设计的目的。
六、实验内容
利用AT89C51设计一个2位LED数码显示“秒表”,显示00到99秒的时间,并每秒自动加一。 还设计了一个“开始”按钮和一个“重置”按钮。 添加一个“暂停”按钮和一个“快速增加”按钮(每10ms快速增加1)。
按钮说明:按“开始”按钮开始计数,数码管显示从00开始每秒自动增加一; 按“复位”键,系统清零,数码管显示00; 按“暂停”按钮,系统将暂停计数,数码管显示当前计数; 按“快速加”按钮,系统每隔10ms快速加一,即数码管在原来计数的基础上快速加一。
七、设计思路及说明
如果本实验需要计时并在数码管上显示时间,可以使用DVCC系列单片机微机模拟实验系统中的芯片8032(该芯片的功能与芯片AT89C51类似,其引脚功能也类似于AT89C51 的那些)。 P3.2引脚作为外部中断0的入口地址,实现“启动”按钮的功能; P3.3作为外部中断1的入口地址,实现“清除”按钮的功能; P3。 0作为数据信号DATA输入的入口地址; P3.1作为时钟信号CLK输入的入口地址。 定时器T0用作定时器,每秒加1; 定时器T1用作“快速增加”键的定时器。 “开始”按钮当开关从1转到0(上下)时开始计时; “清零”按钮用于当开关由1转为0(上下)时,清除数码管。 如果再次按下“开始”按钮,计时可以重新开始。
八、示意图
620)this.width=620;" onmousewheel="return bbimg(this)" alt=点击浏览下一页 src="" border=0>
620)this.width=620;" onmousewheel="return bbimg(this)" height=614 alt=点击浏览下一页 src="" width=515 border=0>
620)this.width=620;" onmousewheel="return bbimg(this)" alt=点击浏览下一页 src="" border=0>
关键词:
620)this.width=620;" onmousewheel="return bbimg(this)" height=500 alt=点击浏览下一页 src="" border=0>
620)this.width=620;" onmousewheel="return bbimg(this)" alt=点击浏览下一页 src="" border=0>
10. 实验步骤
;************************************************
; 设计题目:实验5—–秒表系统设计
; 说明:2位LED数码显示“秒表”,显示时间从00到99秒,每秒自动增加1。
; 一个“开始”按钮、一个“重置”按钮、一个“暂停”按钮和一个“快速加速”按钮。
; 调用子程序:暂停键子程序、定时键子程序、清0键子程序、添加1子程序
; 显示子程序、计时子程序
;使用的特殊寄存器:寄存器A、寄存器C
;使用的中断:外部中断INT0、INT1、定时器T0、T1