单片机课程设计文档格式.docx
- 文档编号:18891507
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:52
- 大小:587.26KB
单片机课程设计文档格式.docx
《单片机课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
机械工业出版社,2005
[3]余永权,MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版,1993
[4]余西存,曹国华.单片机原理及接口技术[M].西安:
西安电子科技大学出版,2000
4.课程设计工作进度计划:
序号
起迄日期
工作内容
1
2010.12.20-2010.12.21
分析设计任务,查阅相关资料,确定设计方案。
2010.12.22-2010.12.25
完成硬件电路设计及调试。
2010.12.26-201.12.27
编写程序、录入程序、软件编译调试、仿真。
2010.12.28-2010.12.29
整体调试,编写设计论文说明书。
2010.12.30
完成设计论文说明书,准备答辩。
2010.12.31
提交设计成果,答辩。
主指导教师
日期:
年月日
基于单片机控制电子时钟设计
摘要:
单片机(Single-ChipMicrocomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
本设计以AT89S51单片机技术为核心。
软件设计采用模块化结构,汇编语言编程。
系统采用DS1302芯片产生脉冲,采用数字温度传感器DS18B20采集温度信号,使用
LCD显示数据。
本设计可以准确显示时间和温度,可以设置时间。
在内容安排上首先描述系统硬件工作原理,着重介绍了各硬件接口技术和各个接口模块的功能;
其次,详细的阐述了程序的各个模块和实现过程;
进行了仿真并对仿真结果进行了分析;
最后还制作了实物,并进行了调试。
关键词:
单片机;
时钟;
传感器
2.1数据采集芯片选择方案………………………………………………………….....1
2.1.2时钟芯片方选择………………………………………………………………..2
2.3系统电路设计…………………………………………………………………….....3
3.2DS1302……………………………………………………………………………...8
3.2.1DS1302结构及工作原理……………………………………………………..8
3.2.2DS1302控制字节说明…………………………………………………………....9
3.2.3DS1302复位电路………………………………………………………………....9
3.2.4DS1302数据输入输出……………………………………………………….10
3.2.5DS1302的寄存器……………………………………………………………10
3.3DS18B20………………..…………………………………………………….....114元件清单……………………………………………………………..….……….17
5.2主程序流程图…………..………………………………………………………..18
6.3.1时间设定………………..…………………………………………………....20
结束语………..……………………………………………………………………….23
参考文献……………..………………………………………………………………24
附录
(汇编程序)
(基于单片机控制时钟设计整体电路)
引言
电子时钟是实现时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。
数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。
钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的电子时钟精度高,功能易于扩展。
可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。
所有这些,都是以钟表数字化为基础的。
因此,研究数字时钟及扩大其应用有着非常现实的意义。
本设计就是数字时钟简单的扩展应用。
1.设计要求
2.方案设计
2.1数据采集芯片选择方案
2.1.1温度芯片选择
方案一:
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较复杂。
方案二:
用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
2.1.2时钟芯片方选择
时钟模块的选择我们采用了现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。
这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
采用普通32.768kHz晶振从以上两种方案,很容易看出,采用DS1302能够满足要求,电路比较简单,软件设计也比较简单。
故采用DS1302芯片。
2.2显示部分设计方案
采用8段数码管虽经济实惠,但是需要驱动电路,所以比液晶显示来说略显繁琐。
方案二:
液晶显示方式。
液晶显示效果出众,可以运用菜单项来方便操作,比较简单,所以,最后选择AMPIRE128*64液晶显示。
图2.1液晶显示电路
2.3系统电路设计
2.3.1晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数
字钟的走时准确及稳定。
不管是指针式的电子钟还是数字显示的电子钟都使用了晶体
荡器电路。
图2.2DS1302电路
2.3.2分频器电路
分频器电路将高频方波信号经分频后得到1Hz的方波信号供秒计数器进行计数,分频器实际上也就是计数器。
2.3.3时间计数器电路
时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器而根据设计要求,时个位和时十位计数器为12进制计数器。
2.3.4时钟电路
内部时钟电路如图所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。
定时元件通常石英晶体和电容组成的并联谐振回路,晶体振荡器选择12MHZ,电容采用22PF。
图2.3时钟电路
2.3.5复位电路
影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:
(1)外因
射频干扰,它是以空间电磁场的形式传递在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰;
电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰。
(2)内因
振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定起振时间可由电路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。
2.3.6复位电路设计
复位是单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
复位电路的基本功能是,系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
图2.4RC复位电路
、2.3.7按键电路设计
本设计总的用了四个按扭开关作为键盘,其中一个是复位键,另三个中的其中两个是调整时间增加、减少的键,第三个是切换及时、分、秒的显示状态并在所切换的显示状态下配合加减两个键调整时间。
图2.5按键电路
3各集成芯片功能
3.1AT89S51的引脚说明
AT89S51系列单片机中有PDIP,PLCC,TQFP多种封装形式。
本设计采用的是PDIP封装40管脚的单片机,各引脚如图3.1所示。
40个引脚中,4组8位共32个I/O口,正电源和地线两根,外置石英振荡器的时钟线两根,现在对这些引脚的功能加以说明:
图3.1AT89S51的PDIP封装引脚图
(1)Pin9:
RESET/Vpd复位信号复用脚,当AT89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统开始复位。
而RESET由高电平下降为低电平后,系统即从0000H地址单元开始执行程序。
(2)Pin29:
PESN当访问外部程序存储器时,此脚输出负脉冲选通信号,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
(3)Pin30:
ALE/PROG地址锁存允许信号端。
单片机上电后,ALE引脚不断向外输出正脉冲信号,ALE信号可以用作对外输出时钟或定时信号。
(4)Pin31:
EA/Vpp程序存储器的内外部选通线,89S51单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
3.2DS1302
3.2.1DS1302结构及工作原理
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×
8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
图3.2DS1302的引脚及内部结构图
表3.1DS1302引脚图
引脚号
引脚名称
功能
2.3
4
5
6
7
8
Vcc2
X1.X2
GND
RST
I/O
SCLK
Vcc1
主电源
振荡源,外接32768HZ晶振
地线
复位/片选
串行数据输入/输出(双向)
串行数据输入端
后备电源
3.2.2DS1302控制字节说明
DS1302的控制字如表3.1所示控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1指示操作单元的地址;
最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3.2.3复位
通过把输入驱动置高电平来启动所有的数据传送。
输入有两种功能:
首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,提供了终止单字节或多字节数据的传送手段。
当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中置为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
表3.2DS1302的寄存器及其控制字
3.2.4数据输入输出
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序见图3.3。
图3.3DS1302数据读写时序
3.2.5DS1302的寄存器
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字。
此外DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COH~FDH,其中奇数为读操作,偶数为写操作;
再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
3.3DS18B20
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
TO-92封装的DS18B20的引脚排列见下图,其引脚功能描述见表3.3。
图3.4DS18B20(底视图)
表3.3DS18B20详细引脚功能描述
名称
引脚功能描述
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3.5所示。
图3.5DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3.5所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位定义如表3.4所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
表3.4 DS18B20字节定义
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
CRC
由表3.4可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;
当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表3.5是一部分温度值对应的二进制温度数据。
表3.5DS18B20温度转换时间表
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;
高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
表3.6一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
图3.6DS18B20与单片机的接口电路
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
图3.7DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
图3.8DS18B20的读时序
4元件清单
表3.7元件清单列表
参数|型号
数量
5V电源
5V
1个
单片机
AT89C51
液晶显示器
Ampire168x64
时钟芯片
DS1302
温度传感器
DS18B20
排阻
4.7K欧
电阻
1K欧
电位器
晶振
32768KHZ
12MHZ
电容(22PF)
22PF
2个
电容(22uF)
22uF
电容(10uF)
10uF
轻触开关
--
4个
5程序设计
5.1概述
系统的软件设计采用汇编语言,对单片机进行编程实现各项功能。
程序在WindowsXP环境下采用Keil软件编写。
软件控制程序主要有主控程序、电子时钟的时间控制程序h和温度显示程序组成。
主控程序中对整个程序进行控制,进行了初始化程序还有键盘功能程序、以及显示程序和时间控制程序是电子时钟中比较重要的部分。
时间控制程序体现了、时、分、秒的计算方法。
5.2主程序流程图
图5.1主流程框图
6.系统仿真
按照流程图的到求编制出单片机的程序,用kell软件将源程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计