电子万年历设计
- 格式:doc
- 大小:241.60 KB
- 文档页数:17
电子万年历设计
指导老师:耿艳丽
郭家旭135561 自动化C134
焦大城135583自动化C134
邱锦君135640自动化C134
殷明135723自动化C134
课程设计任务书:电子万年历设计:利用单片机、时钟芯片DS1302、温度传感器DS18B20、1602液晶等实现日期、时间、温度的显示即一个简单的万年历。
摘要
本次单片机课程设计需要使用的是上课时学习的51单片机,其是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL 公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机即是基础入门的一个单片机,还是应用最广泛的一种。
目录
1使用硬件和软件简介 (3)
1.1 51单片机 (3)
1.2 使用软件简介 (4)
2 设计过程 (5)
2.1 设计流程图 (5)
2.2 keil编程 (6)
2.3 protues设计电路图及仿真 (7)
3 心得体会 (11)
附录 (12)
万年历显示模块设计
1使用硬件和软件简介
1.1 51单片机
单片机,亦称单片微型电脑或单片微型计算机。它是把中央处理(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,在人们日常生活中应用广泛,但有时我们并不要求计算机功能强大,而只需要它能在特定的环境下连续不断地完成并不负责的任务,同时又要求它轻便和廉价。微型计算机就是在这么的情况下产生了。
1.2 使用软件简介
本次课程设计要使用2款软件协作完成,即protues完成基本电路构造和keil完成单片机程序设计。
1.2.1 protues介绍
Protues在两次课程设计中都有用到,可见学校对其应用的总是程度。Protues软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,几乎是目前最好的仿真单片机及外围器件的工具。虽然目前国内的推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。
在编译方面,它支持IAR、Keil和MPLAB等多种编译,这次课程设计
就是Protues和Keil的协同使用来完成。软件仿真方面,支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。可以提供软件调试功能,丰富的外围接口器件及其仿真( RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI 器件,部分IIC器件)。这样很接近实际。此外还具有强大的原理图绘制功能。
1.2.2 keil介绍
这次单片机课程设计中除必要的硬件外,同样离不开软件的支持,所使用的汇编语言或C语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的设计者来说是十分必要的,如果使用C语言编程,那么Keil几乎就是唯一的选择。即使不使用C语言而仅用汇编语言编程,Keil 方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。
2 设计过程
2.1 设计流程图
确定设计
目标
使用keil编写程序,生成
供单片机运行的hex文件
使用Protues设计实现程序
的电路图
在仿真单片机中的导入
hex文件
开始仿真
调试程序和电路,使之达
到课程设计要求
结束
图2.1 设计流程图
2.2 keil编程
根据上述的电路图,可知显示部分采用8位7段数码管的分时显示,利用人
眼的视觉暂留现象,在数码管上显示出连续的明显数值。
其中8位数码管的各位开关信号16进制编码如下表:
1 2 3 4 5 6 7 8 点亮第
几位(从
左记)
0xfe 0xfd 0xfb 0xf7 0xef 0xbf 0xbf 0x7f 相应的
16进制
编码
图2.2 8位数码管开关位编码
相应的2进制数输出转化位7段数码管显示十进制的编码表如下:
0 1 2 3 4 5 6 7 8 9 显示
十进
制
16进
0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f 制输
出
图2.3 7段数码管显示编码
根据以上数据和单片机的各端口功能分布,可以大略得出程序的流程图。程
序开始前,可以先进行一些预处理,使编程过程简化。
2.2.1 程序预处理
首先,讲头文件中包含的单片机的各对应引脚定义为较容易书写的格式,同
时定义十进制到7段数码管显示对应的8位2进制数转化的数组序列。
然后,定义全局变量(同时初始化初值),方便在各函数间调用和改变年月日
时分秒的具体数值,避免使用指针带来的语言复杂性。