软硬件专业综合课程设计总结报告Word文档格式.docx
《软硬件专业综合课程设计总结报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《软硬件专业综合课程设计总结报告Word文档格式.docx(49页珍藏版)》请在冰豆网上搜索。
进度安排:
2013年11月18日——2013年11月30日查阅资料、项目总体分析
2013年12月01日——2013年12月13日系统功能总体设计
2013年12月14日——2013年12月26日软件程序及硬件电路设计
2013年12月27日——2014年01月03日软硬件系统调试、测试
2014年01月04日——2014年01月08日撰写实训报告
2014年01月09日——2014年01月10日验收
主要参考资料:
[1]
苏家健《单片机原理及应用技术》[M].
高等教育出版社
[2]
付家才《电子实验与实践》[M].
[3]
张毅刚《单片机原理与应用》[M].
[4]
陈阳海《单片机的典型结构及AT89S5X系列单片机》[J].2006,1
教师签名:
年月日
摘要
随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。
为了在观测时间的同时,能够了解其它与人类关系相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能与一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景,该电子万年历主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟、DS18B20温度传感芯片提供温度数据、LCD液晶显示屏显示。
AT89C51单片机是由Atmel公司推出的,功耗小,电压可选用4~6V电压供电;
DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;
DS18B20温度芯片是一种测量精度高的数字温度传感器,具有只需要一个数据电缆传输数据,电路连接简单的特点;
数字显示是采用的LCD液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。
此外,该电子万年历还具有时间校准等功能。
关键词:
时钟芯片DS1302;
LCD液晶显示;
单片机AT89C51;
时钟电路;
数字显示;
DS18B20温度传感芯片;
电子万年历
1引言
随着电子技术的高速发展,对电子方面人才的要求越来越高,不仅要求其具备相关的专业理论知识,还要求其具有较强的设计、制作等实践动手能力.此次学校举行的电子设计无疑是对从事电子相关专业的人的一次很好的锻炼和考验,是培养信息人才的一次良好的机会,为其提供了一个理论知识与实践相结合的平台。
通过本次课程设计,引导学生结合所学的电路理论和程序设计的知识,思考设计方案,以小组合作方式,分工完成各个部分,从而掌握相关的硬件结合软件显示电路的设计和调试技术,一方面提高了学生的实践动手和协作能力,另一方面培养了学生综合运用所学理论知识进行工程设计的能力本设计为软件,硬件相结合的一组设计。
在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。
基本的要了解一些主要器件的基本功能和作用。
除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LCD液晶屏输出,分别用来显示年、月、日、使、分、秒、星期、温度,其最大特点是:
硬件电路简单,方案方便易于实现,软件设计独特,可靠。
95年出现在中国市场。
其主要特点为采用Flash存储器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。
本文介绍了基于AT89C51单片机设计的电子万年历。
首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优势以及课题的开发意义;
接着介绍了AT89C51单片机的硬件结构和本课程设计所要外扩的LCD显示的方法,并在此基础上实现了万年历基本电路的设计;
然后使用C语言进行万年历程序的设计,程序采用模块化结构,使得逻辑关系简单明了。
2功能要求
1.万年历能用数码管显示阳历年、月、日、星期、[小]时、分、秒并设置指定时间的闹铃。
2.数字式温度计要求测温范围-50~100°
C,LCD数码管直读显示。
3方案论证与设计
3.1控制部分的方案选择
1.用可编程逻辑器件设计。
可采用ALTERA公司的FLEX10K系列PLD器件。
设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。
但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。
从成本上来讲,用可编程逻辑器件来设计也没有什么优势。
2.用凌阳16位单片机设计。
凌阳16位单片机有丰富的中断源和时基,方便本实验的设计。
它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。
I/O口功能也比较强大,方便使用。
用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。
这些都方便对设计进行扩展,使设计更加完善。
成本也相对低一些。
但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高。
3.主控芯片使用51系列AT89C52单片机,时钟芯片用美国DALLAS公司推出的一种高性能、低功耗、带RAM的时钟DS1302。
采用DS1302作为主要计时芯片,可以做到计时准确。
更重要的是,DS1302可以在很小电流的后备电源(2.5~5V电源,在2.5V时耗电小于300nA)下继续计时,停电后时钟无需重新调整,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电,还可自设闹铃,阳历、星期与年月日自动对应。
本系统采用了此方案。
3.2测温部分的方案选择
1.在日常生活及工农业生产中经常要乃至温度的检测及控制,传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。
2.与前面相比,采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为-55~125°
C,最大分辨率可达0.0625°
C。
DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
3.3显示部分的方案选择
1.液晶显示方式。
液晶显示效果出众,可以运用菜单项来方便操作,但是在显示时,特别是使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁。
而且由于61板的存储空间有限,液晶显示就不能与语音播抱程序同时实现。
这些大大影响了电子万年历的性能。
2.相比液晶显示,8段数码管虽然操作比液晶显示略显繁琐,但可视范围十分宽,而且经济实惠,也不需要复杂的驱动程序。
所以最后选择LCD数码管显示方案。
综上所述,按照系统设计功能的要求,确定硬件系统由主控制器、时钟模块、测温电路、显示模块、键盘接口共5个模块组成,总体系统构成框图如图3.1所示。
图3-1电子万年历系统构成框图
4系统程序的设计
4.1阳历程序设计
因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、[小]时、分、秒等数据,再处理即可。
在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。
阳历程序流程图见图5.1所示。
4.2时间调整程序设计
调整时间用5个调整按钮,1个作为移位、控制用,2个作为加和减用,还有2个作为闹钟调整使用,分别定义为控制按钮、加按钮、减按钮、闹钟加按纽、闹钟减按纽。
在调整时间过程中,要调整的位与别的位应该有区别。
所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。
闪烁原理就是,让要调整的一位每隔一定时间熄灭一次,比如说50ms。
利用定时器计时,当达到50ms溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。
此时送正常显示值给该位,再进入下一位调整闪烁程序。
时间调整程序流程图如图5.2所示。
4.3温度程序设计
系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示数据刷新子程序等等。
4.3.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。
其程序流程图见5.3。
4.3.2读出温度子程序
主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其程序流程图如图5.4所示。
图4.3DS18B20温度计主程序流程图图4.4读出温度子程序流程图
4.3.3温度转换命令子程序
温度转换子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
温度转换命令子程序流程图如图5.5所示。
4.3.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。
4.3.5显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。
程序流程图如图5.6所示。
图4.5温度转换命令子程序流程图
图4.6显示数据刷新子程序流程图
5系统硬件电路设计
电子万年历电路原理图见附件一,系统由主控制器AT89C51、时钟芯片DS1302、温度传感器DS18B20传感器、显示电路及键盘扫描电路组成。
5.1主控器AT89C51
ATMEL公司生产的AT89C52单片机采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flsah程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
主要性能特点有:
8KBFlashROM,可以檫写1000次以上,数据保存10年。
256字节内部RAM。
电源控制模式
——时钟可停止和恢复;
——空闲模式;
——掉电模式。
6个中断源。
4个中断优先级。
4个8位I/O口。
全双工增强型UART。
3个16位定时/计数器,T0、T1(标准80C51)和增加的T2(捕获和比较)。
全静态工作方式:
0~24MHz。
5.2时钟电路DS1302
5.2.1.DS1302的性能特性
实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;
用于高速数据暂存的31×
8位RAM;
最少引脚的串行I/O;
2.5~5.5V电压工作范围;
2.5V时耗电小于300nA;
用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;
简单的3线接口;
可选的慢速充电(至Vcc1)的能力。
DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。
它经过一个简单的串行接口与微处理器通信。
实时时钟/日历提供秒、分、时、日、周、月和年等信息。
对于小于31天的月和月末的日期自动调整,还包括闰年校正的功能。
时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有主电源/后备电源双电源引脚:
Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;
Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份电,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302由Vcc1或Vcc2中较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;
当Vcc2小于Vcc时,DS13026由Vcc1供电。
5.2.2DS1302数据操作原理
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。
无论是读周期还是写周期,开始8位指定40个寄存器中哪个将被访问到。
在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作是写入时写入数据。
时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。
上电运行时,在Vcc大于等于2.5V之前,RST脚必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
DS1302的引脚及内部结构图如图4.1所示,表4.1为各引脚的功能。
DS1302的控制字如图4.2所示。
控制字节的最高位(位7)必须是逻辑1;
如果它为0,则不能把数据写入到DS1302中。
位6如果为0,则表示存取日历时钟数据;
为1表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)如为0,表示要进行写操作;
为1表示进行读操作。
控制字节总是从最低位开始输入/输出。
为了提高对32个地址的寻址能力(地址/命令位1~5=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式。
位6规定时钟或RAM,而位0规定读或写。
在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能寄存数据。
在多字节方式中,读或写从地址0的位0开始。
必须按数据传送的次序写最先的8个寄存器。
但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。
不管是否写了全部31字节,所写的每一字节都将传送至RAM。
表451DS1302引脚功能
引脚号
引脚名称
功能
1
Vcc2
主电源
2,3
X1,X2
振荡源,外界32.768kHz晶振
4
GND
地线
5
RST
复位/片选线
6
I/O
串行数据输入/输出端(双向)
7
SCLK
串行数据输入端
8
Vcc1
后备电池
RAM
A4
A3
A2
A1
A0
图5.2DS1302的控制字
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字见表3.2,其中奇数为读操作,偶数为写操作。
时钟暂停:
秒寄存器的位7定义位时钟暂停位。
当它为1时,DS1302停止震荡,进入低功耗的备份方式。
通常在对DS1302进行写操作时(如进入时钟调整程序),停止震荡。
当它为0时,时钟将开始启动。
AM-PM/12-24[小]时方式:
[小]时寄存器的位7定义为12或24[小]时方式选择位。
它为高电平时,选择12[小]时方式。
在此方式下,位5是AM/PM位,此位是高电平时表示PM低电平表示AM。
在24[小]时方式下,位5为第二个10[小]时位(20~23h)。
表5.2内部寄存器地址和内容
积存器名
命令字节
取值范围
积存器内容
写
读
3
2
秒积存器
80H
81H
00~59
CH
10S
SEC
分积存器
82H
83H
10min
MIN
[小]时积存器
84H
85H
00~23或01~12
12/24
10A/P
HR
日积存器
87H
01~28,29,30,31
10DATE
DATE
月积存器
88H
89H
01~12
10M
MONTH
周积存器
8AH
8BH
01~07
DAY
年积存器
8CH
D3H
00~99
10YEAR
YEAR
DS1302的晶震选用32.768kHz,电容推荐值为33pF,因为震荡频率较低,也可以不接电容,对计时精度影响不大。
5.3测温电路的设计
测温电路主要使用温度传感器DS18B20,由于精度要求不高所以采用2位共阳LCD数码管以动态扫描法实现温度显示。
其设计原理图如附件一所示。
5.3.1温度传感器工作原理
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要示通过简单的编程实现9~12位的数字值读数方式。
DS18B20的性能特点如下:
独特的单线接口仅需要一个端口引脚进行通信;
多个DS18B20可以并联在唯一的三线上,实现多点组网功能;
无须外部器件;
可通过数据线供电,电压范围为3.0~3.5V;
零待机功耗;
温度以9或12数字量读出;
用户可定义的非易失性温度报警设置;
报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
DS18B20采用3脚PR—35封装或8脚SOIC封装,其内部结构框图如图4.3所示。
64位ROM的位结构如图4.4所示。
开始8位是产品类型的编号,接着是每个器件的唯一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
非易失性温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个调整暂存RAM和一个易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节存储器,结构如图4.5所示。
头2个字节包含测得的温度信息,第3和第4节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。
该字节各位的定义如图4.6所示。
低5位一直1,M是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即用来设置分辨率,定义方法见表5.3。
由表5.3可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625°
C/LSB形式表示。
温度值格式如图4.7所示。
8位检验CRC
48位序列号
8位工厂代码(10H)
MSBLSBMSBLSBMSB
LSB
图5.464位ROM结构图
TM
R1
R0
图5.6配置寄存器
表5.3DS18B20分辨率的定义规定
分辨率/位
测量最大转换时间/ms
9
93.75
10
187.5
11
375
12
750
表5.4DS18B20温度与测得值对应表
温度/°
C
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
23
22
21
20
2-1
2-2
2-3
2-4
S
S6
S5
S4
图5.7温度数字值格式
表5.574LS164特性表
操作模式
输入
输出
复位
MR
A
B
Q0
Q1~Q7
移位
L
×
Q0~Q6
H
74LS164内部为8个D触发器,用以实现数据的串行移位,74LS164特性见表4.5。
单片机以串口方式0(移位寄存器方式)输出数据,3片74LS164作为3排共阳数码管的串/并转换显示接口。
74LS164为TTl单向8位移位寄存器,可实现串行输入,并行输出。
其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑“与”运算规律输入信号,共一个输入信号时可并接,共同作为输入脚。
CP(第8脚)为时钟输入端,可连接到串行口的TXD端。
每一个时钟信号的上升沿加到CP端时,移位寄存器移一位。
8个时钟脉冲过后,8位二进制数全部移入74LS164中。
MR脚(第9脚)为复位端,当该脚为低电平时,移位寄存器各位复0;
只有当它高电平时,时钟脉冲才起作用。
Q1~Q8(第3~6和10