单片机电子时钟设计说明书.doc
文本预览下载声明
单片机电子时钟设计说明书
目录
设计要求……………………………………………………2
单片机系统原理图及工作原理描述………………………2
设计过程中碰到的问题及解决方法………………………4
总结…………………………………………………………6
程序模块框图………………………………………………
程序清单 ……………………………………………………
总体设计要求
实时时钟
工作原理:采用单片机内部定时器精密定时,四位数码管显示年、月、日、时、分、秒等,用键盘可以进行时间预置、时间显示内容设置、时间运行方式设置等。
要求:
1.用键盘切换的方式,分别显示年月日或者时分秒;
2.用键盘预置年、月、日、时、分、秒等;
3.可以倒计时,倒计时单位为分;
4.每一秒4个小数点闪烁一次;
5.定时闹钟功能,蜂鸣器鸣叫提示。
6.时钟误差每日不大于1秒。
单片机系统原理图及工作原理描述
为满足不同功能的设计要求,一块电路板上设计出多个常用的功能电路,供使用者选用。印制线路板包含:
单片机最小系统;
四位LED数码管显示器;
4×4共16个键的矩阵键盘
RS-232电平转换电路;
DC12V稳压电源输入接口;
USB电源转换接口(DC5V);
ISP编程接口。
8位串行A/D转换接口;
8位串行D/A转换接口;
四相步进电机驱动接口;
EEPROM串行存储电路;
1.单片机最小系统
AT89S51是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。AT89S51具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.显示器
显示器采用LED数码管动态显示方法,P0口输出字符的显示码,位码由P2.4~P2.7来控制。动态显示的成本极低,但占用CPU接口资源较多,本设计中共采用了12根口线。另外由于显示器的不断动态刷新,占用了CPU的部分工作时间,所以对一些时间要求较高的控制系统,则应考虑显示器显示占用的时间。
3.键盘
键盘采用4×4矩阵键盘,由P2.0~P2.3为行线、P1.4~P1.7为列线而组成4×4的方阵,用软件扫描的方法可以确定每个键的键值。在设计中,每个键可以用来数据及命令的输入。
4.电源
控制电源可以由单放机DC12V稳压电源提供,该电源可以用于步进电机的驱动,同时通过线性三端稳压器7805为其它电路提供电源;如果不需要使用步进电机,整个控制系统的DC5V电源可以从普通计算机的USB接口采集,使用时只要把USB接线一头接微机USB端口,另一头接控制器上的2芯电源接口即可。
5.编程接口
微处理器采用AT89S51,AT89S51具有ISP在线编程功能,P1.5~P1.7为编程接口,软件编译和调试包括两个过程:
1.打开Medwin仿真编译软件,选择模拟仿真即可进入编译环境,新建一个文件(后缀为asm),在文本输入框输入源程序,然后进行编译直至没有语法错误,使用编译命令(Ctrl+F7)生成16进制文件(后缀hex)。
2.连接好电源线和编程线后,启动USBASP编程软件,在芯片选择中选择微处理器型号AT89S51,打开装入Flash,装入16进制文件,用擦除命令将芯片内的原程序擦除,用编程命令将新程序写入AT89S51,完毕后,重新复位使程序运行,观察结果。如有错误应重新打开Medwin修改源程序,重新生成16进制文件,重复以上操作,直至满足设计要求。
设计过程中碰到的问题及解决方法
硬件方面:
(1)焊接三极管时,由于三个引脚间的距离太近,自己过于急躁,弄了很多锡在上面,造成短路;最后用吸锡器弄干净,重新焊接,有些锡粘在板上,必须用小刀把两引脚间的锡削掉。这里花费了大量时间。
(2)LED显示器有一排显示不出来,查明是接口虚焊问题。重新补焊接显示器接口。
软件方面:
(1)程序编写开始有点混乱,最后重新构思,确定各个按键功能,再根据各个功能编写,这样一步步来,思路比较清晰。
(2)程序编写时感觉最难的是按键切换,开始感觉无法下手。最后找了一些按键方面的程序,慢慢看,慢慢了解;然后根据自己设计的特点编写程序。
总结
数字电子钟基本功能都已实现,可以通过按键进行模式切换,并对其数值进行调节。在这基础上还添加了年月日的移动显示,还有秒表,闹铃功能。存在不足是设计的电子钟存在一定的误差,不能在
显示全部