毕业设计25倒计时器.docx
《毕业设计25倒计时器.docx》由会员分享,可在线阅读,更多相关《毕业设计25倒计时器.docx(11页珍藏版)》请在冰豆网上搜索。
毕业设计25倒计时器
前言
计算机最初的设计目的是为了提高计算数据的速度和完成海量数据的计算。
随着技术的发展,人们发现计算机在逻辑处理以及工业控制等方面也具有非凡的能力。
在控制领域,人们更多的关心计算机的低成本,小体积,运行的可靠性和控制的灵活性。
特别是智能仪表,智能传感器,智能家电,智能办公设备,汽车以及军事电子设备等应用系统要求将计算机嵌入这些设备中。
单片机体积小,价格低,可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。
目前,单片机应用技术已经成为电子应用系统设计最为常用的手段。
单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
时间对人们来说总是那么宝贵,倒计时器对于人们来说也得到了广泛的应用,尤其是用于体育项目。
内容摘要
倒计时器在日常生活中应用极为广泛,它是我们的准确的定时工具,维系着我们生活的秩序。
本文基于单片机设计一个能实现倒计时自动化控制的自动化系统,通过此设计达到学习、了解单片机相关指令在各方面应用的目的,并锻炼自己的动手能力。
本文设计部分包括两方面:
1.硬件系统:
主控电路2.软件系统:
汇编语言程序。
通过两方面的配合,实现控制功能。
关键词
关键词:
单片机,倒计时器,原理图,PCB图
正文
1课程设计的目的和要求
1.1课程设计的目的
通过课程设计,了解常用单片机应用系统设计的方法和过程,并能初步掌握单片机系统的设计方法,锻炼学生分析问题和解决问题的能力,系统地完成一个小系统从硬件设计、软件设计、汇编、模拟仿真调试、直至脱机运行等开发全过程。
1.2课程设计的基本要求
1.设计硬件原理图并采用PROTEL画图。
2.软件设计
3.在DVCC实验仪上仿真调试,或在线调试(新开发的实训系统可在线调试)。
4.提交课程设计论文。
要求该论文从基本理论,系统设计,创新思维,制作工艺上进行全方位的描述。
不但程序流程图的描述要求详细,而且大多数指令语句都要加上详细的注释。
2总体设计
2.1基本工作原理
利用单片机原理由单片机控制两个数显管构成数据及倒计时功能
2.2硬件总体设计
2.2.1系统组成方案
系统由一个单片机、两个数显管等组成
2.2.2扩展单元编址
P3.1和P3.0为两个数显管的选位信号;P1口输出段选码
2.2.3键盘显示功能的定义
键盘为独立式按键,分别在P3.2~P3.4上,设置为输入状态。
电阻和电容起消抖作用。
各按键的功能:
K1----设定/启动功能键
K2----倒计时时间十位数设定键,按下键时,十位数字在0~9的范围内。
K3----倒计时时间个位数设定键,按下键时,十位数字在0~9的范围内。
2.3软件总体设计
2.3.1存储单元的分配、标志位的定义
P3.5连接发光二极管状态指示灯,系统时间设为定时状态熄灭,倒计时状态闪烁,倒计时结束时常亮。
P3.6输出控制信号驱动蜂鸣器,倒计时时间到,蜂鸣器响。
2.3.2主程序框图及清单(带有注释)
3硬件设计
4软件设计
程序清单:
ORG0000H
AJMPMAIN;主程序
ORG0003H
AJMPNT0;外部中断0
ORG000BH
AJMPTCT0;定时器T0
ORG0030H
MAIN:
MOVSP,#60H;设置堆栈
CLR00H;工作状态标志位,0为设置,1为工作
CLR01H;指示灯状态标志位,0为LED不亮,1为灯亮
CLR02H;控制信号标志0为P3.6低,1为P3.6高
MOV22H,#00H;100ms计数器清零
MOV23H,#00H;秒计数器清零
MOV24H,#10;分计数器预置10min
MOVTH0,#3CH;100ms计数器初值
MOVTL0,#0B0H
MOVTMOD,#02H
SETBEA
SETBET0;允许定时器T0中断
SETBEX0;允许外部中断0中断
SETBIT0
CLRTR0
MOV34H,#01H;显示缓冲器预置数(十位)
MOV35H,#00H;显示缓冲器预置数(个数)
L:
ACALLLED;调指示灯状态控制程序
JNB00H,L;查询工作状态指示,0为等待“设置”
ACALLBINBCD;二进制转十进制
ACALLDIS;显示倒计时器中的值
JB02H,OUT;查询控制输出位,1为P3.6高,报警
AJMPL
OUT:
CLREX0
CLRTR0
SETBP3.6;P3.6高,报警
JNBP3.4,OUT1;按P3.4,清除输出
AJMPOUT
OUT1:
JNBP3.4,$;消抖
CLRP3.6;P3.6低,清除报警输出
CLR02H
SETBEX0
CLR00H;设置状态
AJMPL
;状态灯指示程序:
LED:
JB01H,LED0
CLRP3.5
RET
LED0:
SETBP3.5
RET
二进制转十进制子程序:
入口:
24H单元二进制数。
出口:
30H单元BCD码十位数,31H单元BCD码个位数。
BINBCD:
MOVA,24H;取二进制数
MOVB,#10
DIVAB;A中存十位数,B中存个位数
MOV30H,A;存十位数
MOV31H,B;B中存个位数
RET
显示倒计时值程序?
入口:
30H单元BCD码十位数,31H单元BCD码个位数
DIS:
MOVR0,#30H
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A;显示十位
CLRP3.1
ACALLDELAY10;延时10ms
INCR0
SETBP3.1
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A;显示个位
CLRP3.0
ACALLDELAY10
SETBP3.0
RET
:
外部中断0程序:
NT0:
CLREX0;关中断
PUSHACC
PUSHPSW
CLRP3.5;工作状态LED灭
ACALLDIS1;调设定值显示
KEY:
JBP3.2,RETURN
KEY0:
ACALLDIS1
JNBP3.2,KEY0;等待键释放
KEY2:
JBP3.3,KEY3;判K2键按下?
未按下,转判K3
ACALLDIS1
INC34H;K2键按下,十位加1
MOVA,34H
CJNEA,#0AH,KEY22
MOV34H,#00H
KEY22:
ACALLDIS1
JNBP3.3,KEY22
AJMPKEY2
KEY3:
ACALLDIS1
JBP3.4,KEY1;判K3键按下?
未按下,转判断K1
INC35H;K3键按下,个位加1
MOVA,35H
CJNEA,#0AH,KEY33
MOV35H,#00H
KEY33:
ACALLDIS1
JNBP3.4,KEY33
AJMPKEY3
KEY1:
ACALLDIS1
JBP3.2,KEY2;K1键未按下,转去判断K2、K3
KEY10:
ACALLDIS1;等待键释放
JNBP3.2,KEY10;K1键未按下,进入工作状态
ACALLBCDBIN;调十进制转换成二进制程序
SETB00H;置位进入"工作状态"标志
RETUTN:
SETBEX0
SETBTR0
POPPSW
POPACC
RET1
子程序:
十进制转换成二进制子程序:
入口:
34H单元BCD码十位数,35H单元BCD码个位数。
出口:
24H单元二进制数。
BCDBIN:
MOVB,#10
MOVA,34H
MULAB
ADDA,35H
MOV24H,A
RET
设定值显示子程序:
入口:
34H单元BCD码十位数,35H单元BCD码个位数。
DIS1:
MOVR0,#34H
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A;显示十位
CLRP3.1
ACALLDELAY10;延时10ms
INCR0
SETBP3.1
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A;显示个位
CLRP3.0
ACALLDELAY10
SETBP3.0
RET
定时器T0中断服务程序:
TCT0:
PUSHACC
PUSHPSW
INC22H;100ms单元加1
MOVA,22H
CJNEA,#10,EXIT
MOV22H,#00H
INC23H;秒单元加1
CPL01H
MOVA,23H
CJNEA,#60,EXIT
MOV23H,#00H
DEC24H;分单元减1
MOVA,24H
CJNEA,#00H,EXIT;分计数单元不为“0”,继续
CLRTR0;关定时器
SETB02H;置位蜂鸣器控制信号
SETB01H;置位LED状态灯
CLR00H;“设置”状态
EXIT:
POPPSW
POPACC
RETI
END
5操作说明
本系统为倒计时器定时系统,可完成倒计时功能功能。
现在我们可以利用电子倒计时器代替机械倒计时器。
倒计时时间要求在1~99min内可以任意设定,当接通电源时,自动设置时间为10min。
以1min的步长进行倒计时。
当计时到0时发出响声信号,可用3个按键分别实现时间的设定/启动倒计时、时间预置,外部晶振选用6MHz。
6结束语
通过一个学期的学习,我初步了解了80C51的基本功能及使用方法。
初步掌握了简单的从编程到上机验证的过程。
虽然我的程序简单,但是我还是从中学到了很多东西,受益匪浅。
7参考文献
[1].《单片机原理及接口技术》李全利迟荣强北京高等教育出版社2004.1
[2]《单片机基础》李广弟,朱月秀,王秀山北京北京航空航天大学出版社
2001.7
[3]《可编程逻辑器件,原理,开发与应用》赵曙光,郭万有杨颂华西安西安电子科技大学2000.8
[4]《VHDL硬件描述语言与数字逻辑电路设计》候伯亨西安西安电子科技大学出版社,1999