通用数字电子钟说明书doc.docx
《通用数字电子钟说明书doc.docx》由会员分享,可在线阅读,更多相关《通用数字电子钟说明书doc.docx(33页珍藏版)》请在冰豆网上搜索。
通用数字电子钟说明书doc
《单片机技术》课程设计说明书
数字电子钟
院、部:
电气与信息工程学院
学生姓名:
******
指导教师:
王韧职称副教授
专业:
通信工程
班级:
***********
完成时间:
2013年12月20日
湖南工学院
课程设计任务书
课程:
单片机技术
课程设计题目:
数字电子钟
数字频率计
数字电压表
交通灯
抢答器
密码锁
波形发生器
数字温度计
计算器
数字式秒表
适用班级:
电子1101~2、通信1102~3
通信1101~电子1103
时间:
2013~2014学年第一学期
指导教师:
王韧
《单片机技术》课程设计任务书
一、设计题目:
数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。
二、适用班级:
电子1101~2、通信1102~3、通信1101~电子1103
三、指导教师:
王韧
四、设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
五、设计内容与要求
设计内容
1、数字电子钟
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
2、数字频率计
设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。
该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。
3、数字电压表
设计一个能够测量直流电压的数字电压表。
测量电压范围0~5V,测量精度小数点后两位。
该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。
4、交通灯
设计一个具有特定功能的十字路口交通灯。
该交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
按开始键则开始工作,按结束键则返回“P.”状态。
要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。
有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。
5、抢答器
设计一个具有特定功能的抢答器。
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。
蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
6、密码锁
设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
7、波形发生器
设计一个具有特定功能的波形发生器。
该波形发生器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该波形发生器可以分别产生幅值0~5V、频率100Hz~100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。
8、数字温度计
设计一个具有特定功能的数字温度计。
该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
测量温度范围0℃~99℃,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。
9、计算器
设计一个具有特定功能的计算器。
该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
能实现
(1)基本的加、减、乘、除、平方、开方;
(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。
10、数字式秒表
设计一个具有特定功能的数字式秒表。
该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该数字式秒表应具有开始、暂停、连续、清零和停止功能。
设计要求
1、以上课题可以任选其一或多选,学生也可以自拟课题;
2、编程语言:
汇编或C51;
3、计算机打印《单片机技术》课程设计说明书一份;
4、设计时间:
一周;
5、实物制作;
6、人员分组:
一人一组一实物。
六、《单片机技术》课程设计说明书正文主要内容
参照“《单片机技术》课程设计说明书正文主要内容”文件。
七、《单片机技术》课程设计说明书书写规范格式
参照“《单片机技术》课程设计说明书书写规范格式”文件。
八、参考资料
1、马忠梅,单片机的C语言Windows环境编程宝典[M],北京:
北京航空航天大学出版社,2003.6;
2、李光飞,单片机C程序设计指导[M],北京:
北京航空航天大学出版社,2003.01;
3、李光飞,单片机课程设计实例指导[M],北京:
北京航空航天大学出版社,2004.9。
电气自动化教研室
2013年9月10日
摘要
当今社会,人们对时间的要求越来越高,而传统的机械式手表和电子钟,对距离和视力有一定的要求,不能准确直观地读出时间,本设计的数字电子钟是为了满足所有群体的时间的要求,适应于各种年龄段的人和各种恶劣情况,能直观明了的读出时间,其设计新颖,成本低廉,走时准确、显示直观,具有很好的开发和生产价值。
本设计围绕数字电子钟系统的设计与开发工作进行研究和实践,详细介绍了电子钟系统的整体结构、硬件设计、软件设计,系统方案。
介绍一种基于ATMEL公司的AT89S52单片机为核心,以及电源电路,复位电路,晶振电路,下载电路,输入设备,输出设备构成的数字电子钟系统。
软件上用汇编程序进行设计,达到显示时、分、秒和校时、定时、复位等功能。
本设计到达了设计要求,具有走时准确、显示直观、精度、稳定等优点适用于家庭、办公大楼、公共场所等。
关键词电子钟;单片机;硬件设计;软件设计
ABSTRACT
Intoday'ssociety,peoplemoreandmorehightotherequirementoftime,andthetraditionalmechanicalwatchesandclocks,thedistancehascertainrequirements,andvisioncan'tintuitivelyreadcorrecttime,thedesignofdigitalelectronicclockisinordertomeettherequirementsofthetimeallthegroups,suitableforvariousagegroupsandallkindsofbadsituation,canreadtimeofstraightforward,itsnoveldesign,lowcost,asaccurate,directdisplay,hasgreatvalueindevelopmentandproduction.
Thisdesignaroundthedigitalelectronicclocksystemdesignanddevelopmentofworkstudyandpractice,electronicclocksystemareintroducedindetailthewholestructure,hardwaredesign,softwaredesign,systemsolutions.IntroducesakindofbasedonATMELcompanyAT89S52singlechipmicrocomputerasthecore,andpowersupplycircuit,resetcircuit,crystaloscillationcircuit,circuit,inputdevices,outputdevicescomposedofdigitalelectronicclocksystem.Softwareinassemblyproceduresdesignedtoshowwhen,minutes,seconds,andtheschoolwhen,timing,andreset,andotherfunctions.
Thisdesigntoreachthedesignrequirements,withtraveltimeaccurately,directdisplayandtheadvantagesofprecision,stability,suitableforfamilies,officebuildings,publicplaces,etc.
Keywordselectronicclock;SCM;hardwaredesign;softwaredesign
1电子钟功能及总体方案的介绍
1.1设计课题任务
设计一个具有特定功能的电子钟。
1.2功能要求说明
本设计中的电子钟具有以下功能:
(1)上电或按键复位自动显示系统提示符“P.”,进入始终准备状态。
(2)第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态。
(3)第二次按电子钟启动/调整键,电子钟进入时钟调整状态,此时按下调时键,时加1,满24自动清零;按下调分键,分加1,满60自动清零;按下调秒键秒加1,满60自动清零。
(4)第三次按下电子钟启动/调整键,电子钟从当前显示开始继续运行。
调整功能键只允许在自己控制的位上操作,不允许出现进位;所有键操作均需等到案件释放后做出响应功能反映,负责状态不变。
1.3设计课题总体方案介绍
1.3.1设计课题硬件系统方案
图1电子钟原理框图
如图1所示,电子钟硬件系统由单片机、电源电路,时钟电路,复位电路,下载电路,输入设备和输出设备构成。
其中电源电路提供给单片机+5V的直流电源,8个独立式键盘接在单片机的P1口,2个四位一体数码管有外接在单片机上的74HC573驱动,其位控接在74HC573上,段控经470Ω的电阻挂在单片机的P0口。
硬件的输入和输出设备,加上相应的程序,实现显示时间和调整时间的功能。
1.3.2设计课题软件系统方案
利用基于AT89S52单片机的相关程序和硬件电路,首先实现,单片机上电或者复位时,数码管显示电路显示“P.”,
利用AT89S52单片机内部的定时/计数器进行中断定时,配合程序延时实现时、分、秒的计时。
利用单片机的外部中断源,加上相关的程序设计,用按键相应做中断源,对电子钟的时间进行相应的调时、调分、调秒。
详细程序设计思想、程序流程图,和相关程序见后文。
2设计课题硬件系统的设计
2.1设计课题硬件系统各模块功能简要介绍
2.1.1单片机最小系统
单片机最小系统由电源电路、时钟电路和复位电路构成。
在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,本设计的设计思路是根据我模拟电子技术知识,由其USB插口提供一个+5V的电源,并有1个发光二极管来显示其开启关闭状态。
本设计的时钟电路由振荡电路和分频电路组成。
其中振荡电路由反相器以及并联外接的12M晶振和33PF的电容构成,用于产生振荡脉冲。
而分频电路则用于把振荡脉冲分频,已得到所需要的时钟信号。
本设计中的单片机AT89S52的高增益反相放大器,其输入端为引脚XTAL1,输出引脚为XTAL2。
通过这两个引脚在单片机外并接12M晶振和33PF电容C1和C2构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡。
复位电路通常采用上电自动复位和按键复位两种方式,所谓加电复位是指通过专用的电路产生复位信号,它是系统得原始复位方式,发生在开机加电时是系统自动完成的。
按键复位也是通过专用的复位电路实现的,本设计采用的是上电与按键复位电路,按键复位采用S1键控制,AT89S52有复位信号引脚RST,用于从外界引入复位信号。
2.1.2LED显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一。
发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
本设计采用是共阳式LED数码管显示。
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。
采用动态显示方式显示时间,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。
LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。
本设计采用动态扫描的方法进行显示。
2.1.3键盘控制电路
本设计开发板中共有10个独立式键盘,其中S1为手动复位按键,S2-S9共8个独立式按键并接在一起,一端接地,一端挂在单片机的P1口上,结合相应的程序,实现的单片机的相关控制。
该设计需要校对时间,所以用三个按键来实现。
S2做启动/调整键,第一次按,做时钟启动键,电子钟从0时0分0秒开始运行。
第二次按,做时钟调整键,以此类推,每奇数次按下做启动键,偶数次按下做调整键。
S2、S3、S4分别做电子钟的调时、调分、调秒功能键,但是使用这三个功能键的时候,按下的S1必须工作在调整键的状态下。
当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况,在释放一个键时,也回会出现类似的情况。
这就是抖动,抖动问题不解决就会引起对闭合键的识别出错。
所以本设计中采用了相应的延时程序进行去斗,再读入键盘码。
2.1.4下载电路
在单片机电路设计中,下载电路也是必不可少的,本设计采用的下载口主要用于将Keil软件里面的程序下载到单片机中进行相应的调试。
2.2设计课题电路原理图、PCB图、元器件布局图
2.2.1设计课题电路原理图
见附录A
2.2.2设计课题电路PCB图
见附录B
2.2.3设计课题电路元件布局图
见附录C
2.2.4设计课题电路实物图
见附录D
2.3设计课题元件清单
见附录E
3设计课题软件系统的设计
3.1设计课题使用单片机资源的情况
3.1.1堆栈
堆栈栈底开辟在60H
3.1.2数据存储器变量及常量单元定义
78H字节单元:
十进制数秒个位,非压缩BCD码;
79H字节单元:
十进制数秒十位,非压缩BCD码;
7BH字节单元:
十进制数分个位,非压缩BCD码;
7CH字节单元:
十进制数分十位,非压缩BCD码;
7EH字节单元:
十进制数时个位,非压缩BCD码;
7FH字节单元:
十进制数时十位,非压缩BCD码;
20H.0位单元:
布尔量,S2键键值,S2键按下为1,S2键未按下为0;
20H.1位单元:
布尔量,S3键键值,S3键按下为1,S3键未按下为0;
20H.2位单元:
布尔量,S4键键值,S4键按下为1,S4键未按下为0;
20H.3位单元:
布尔量,S5键键值,S5键按下为1,S5键未按下为0;
3.1.3定时器/计数器资源
T/C0:
工作方式1;定时50ms,循环20次,实现1s定时;中断法。
3.1.4键功能程序
KEY2:
S2键键功能程序;
KEY3:
S3键键功能程序;
KEY4:
S4键键功能程序;
KEY5:
S5键键功能程序;
3.1.5子程序
DELAY:
800us延时子程序;
DIR:
数码管显示子程序;
DIR1:
P.显示子程序;
KEY:
键扫描子程序;
KEYCHULI:
P1口数据处理子程序;
3.1.6常数表格
DB:
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH,0CH,0FFH0~9,"-","P.","灭"
3.2设计课题软件系统各模块功能简要介绍
3.2.1按键部分
本设计中按键部分,采用的是独立式键盘,因此采取独立式键盘接口的编程模式,此键盘接口程序的功能实际上就是驱动键盘工作,根据相关的程序,完成键盘的识别,根据所识别按键的键值,完成子程序的正确调用,从而完成单片机应用系统对用户按键动作的预定义的响应。
采取独立式键盘的原因是每一个按键只占用一个I/O口,同时每个按键的工作不影响其他按键,可直接依据每个I/O口线的状态进行子程序的调用,因此编制的程序较简练。
因为单片机设计者规定,上电时,单片机I/O口线为高电平,所以硬件设计上将键盘并接,且一端接地,所以在程序设计中,识别是否有键按下的时候,0表示有键按下,1表示没有键按下。
本程序中利用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,同时只有当按键松开后,才判断其有效并进行识别,最后根据识别的按键转子程序处理。
3.2.2显示部分
本设计显示部分采取单片机应用系统中最常用的动态扫描显示法,所谓动态显示,就是同一时刻点亮不同的数码管,因此LED显示程序都是作为一个子程序供主程序调用,各位显示器都扫过一遍后,就返回主程序,进行一些其他操作,再调用显示扫描程序。
程序中主要通过反复调用来实现LED数码显示器的动态扫描。
由于本设计硬件方案中显示部分采用2个共阳极四位一体数码管,所以要点亮相对应的数码管,只需要的需要的时候通过软件、硬件相结合的方式,将正确的位控码和段控码送到显示部分,加上相应的延时程序,即可实现数码管的动态显示。
3.2.3计时方案
利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
先设置定时器的工作方式,加上相应的循环程序即可实现定时功能,如:
利用定时器1工作方式1,每次定时50ms,循环20次,加上相应的中断程序,就可以实现定时1s的功能,以此类推。
3.3设计课题软件系统程序流程框图
3.3.1主程序流程框图
图2主程序流程框图
3.3.2键扫子程序流程框图
图3键扫子程序流程框图
3.3.3中断服务程序流程框图
图4中断服务程序流程框图
3.3.4调整键功能程序流程框图
图5调整键功能程序流程框图
3.3.5显示子程序流程框图
图6显示子程序流程图
3.4设计课题软件系统程序清单
电子钟完整程序清单如下:
;********************************************************************
;项目名称:
数字电子钟
;设计者:
何智慧
;设计日期:
2013年12月20日
;项目功能:
上电或按键复位自动显示系统提示符“P.”,进入始终准备状态。
;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进
;入时钟运行状态。
;第二次按电子钟启动/调整键,电子钟进入时钟调整状态,此时按下
;调时键,时加1,满24自动清零;按下调分键,分加1,满60自动
;清零;按下调秒键秒加1,满60自动清零。
;第三次按下电子钟启动/调整键,,电子钟从当前显示开始继续运行。
;调整功能键只允许在自己控制的位上操作,不允许出现进位;所有
;键操作均需等到案件释放后做出响应功能反映,负责状态不变。
;*******************************************************************
;起始程序
ORG0000H
START:
LJMPMAIN
ORG000BH
LJMPTTC0;断0服务程序入口地址
;********************************************************************
;监控程序
ORG0100H
MAIN:
CLRRS1
CLRRS0;使用寄存器组0
MOVSP,#60H;堆栈初始化
MOV78H,#00H;初始化各位清零
MOV79H,#00H
MOV7BH,#00H
MOV7CH,#00H
MOV7EH,#00H
MOV7FH,#00H
LOOP:
LCALLDIR;调显示
LCALLKEY;调键扫
MOV7AH,#10
MOV7DH,#10;显示‘-’,通过查表
JB20H.0,KEY2A;;判键值,S2键按下,转键S2功能程序
LJMPLOOP;其中无键按下,转回循环
;********************************************************************
;键S2功能程序
KEY2A:
SETBEA
SETBET0;开中断
MOVTMOD,#01H;定时器初始化
MOVTH0,#3CH
MOVTL0,#0B0H;定时50ms
MOV50H,#20;设定循环次数
KEY2C:
SETBTR0;开启定时器
HERE:
LCALLDIR1;调显示
LCALLKEY;调键扫
JB20H.0,KEY2B;此时唯有键S2再次按下有所变化
LJMPHERE
KEY2B:
CLRTR0;键S2再次按下,关闭定时器
LCALLDIR1;调显示
LCALLKEY;调键扫