《电子综合设计》数字钟设计文档最终版Word格式文档下载.docx
- 文档编号:18998309
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:101
- 大小:181.48KB
《电子综合设计》数字钟设计文档最终版Word格式文档下载.docx
《《电子综合设计》数字钟设计文档最终版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《电子综合设计》数字钟设计文档最终版Word格式文档下载.docx(101页珍藏版)》请在冰豆网上搜索。
(3)时钟具有闹钟功能;
(4)时钟具有秒表计时功能;
(5)时钟具有倒计时功能。
(2)提高要求
(1)时钟有开机显示功能;
(2)时钟增加了“电子日历”功能;
(3)时钟有12进制与24进制的转换功能;
(4)时钟具有整体报时功能;
(5)时钟附带有一个温度计功能,显示精度为0.5度;
(6)时钟具有温度报警功能;
(7)时钟能够提供二个一般闹钟和一个生日闹钟功能;
(8)时钟提供播放四种不同的音乐功能;
(9)时钟提供闹钟的开关功能,并显示开关状态;
(10)时钟的秒表提供了连续计时功能,能够连续计时三次;
(11)时钟具有时间存储功能;
(12)时钟具有发声倒计时功能;
(13)其它发挥。
(3)数字钟具体功能及其按键
1、开机显示界面
K1:
移动控制键;
K2:
显示复位键;
K3:
左右移动控制键;
K4:
更换界面键;
K5:
逐个显示控制键。
2、时间显示界面
时间减控制键;
时间加控制键;
时间位移动键;
12进制与24进制更换键;
K7:
闹钟停止控制键;
K8:
闹钟睡眠控制键。
3、温度显示界面
温度减控制键;
温度加控制键;
温度位移动键;
K4:
更换界面键;
报警停止键。
4、闹钟功能界面
闹钟时间加控制键;
闹钟时间减控制键;
闹钟时间位移动键;
一般闹钟选择控制键;
K6:
生日闹钟显示控制键;
闹钟开关控制键。
5、秒表功能界面
秒表开始计时控制键;
秒表停止计时控制键;
秒表连续计时控制键;
存储秒表时间控制键。
6、倒计时功能界面
倒计时加控制键;
倒计时减控制键;
倒计时时间位移动键;
倒计时开始停止控制键;
倒计时发声控制键;
倒计时清零控制键。
二、总体方案比较与论证
方案一:
采用中小规模集成电路实现组合逻辑与时序逻辑电路设计,用振荡器产生的稳定的高频脉冲信号,作为数字钟的时间基准,再经分频器输出标准秒脉冲。
进而得到分和小时,计数器的输出经译码器送显示器。
此方案能实现数字钟的基本功能,但其他扩展功能的实现非常有限。
方案二:
基于单片机来实现。
目前单片机技术比较成熟,功能也比较强大,时钟芯片采用DS1302,温度传感器采用DS18B20。
显示采用1602液晶显示。
此方案基本原理框图如图2-1所示
图2-1原理框图
此系统硬件简洁,将复杂的硬件功能用软件实现,控制多个硬件电路的执行因此系统控制灵活,能很好地满足本题的基本要求和提高要求。
而且编程灵活、调试方便。
从这两种电路设计方案的比较而言,利用单片机及外围电路编写软件程序来设计数字钟,简单灵活,而且可扩展各种功能,能完全达到设计要求,体现了现代计算机工具的方便、简捷、准确性。
故采用第二种方案。
三、模块电路分析与比较
1、单片机选择
由于程序代码比较多,有14K左右。
采用Flash比较小的单片机,然后进行外部存储器扩展。
可以选用AT89S系列,例如AT89S52,然后进行外部存储器扩展,但是,考虑到仿真比较麻烦,同时还要进行存储器的扩展,这样使电路更加复杂,不便于硬件的设计、制作。
采用Flash比较大的单片机,例如AT89S54,AT89C55WD,但是AT89S54非常昂贵,使用不经济,然而AT89C55WD能够实现同样的功能,也比较便宜,抗干扰能力强,这样不仅比较经济,也使电路得到了简化,有利于硬件系统的设计、制作。
基于以上分析,考虑到AT89C55WD单片机比较便宜,同时硬件电路也比较简单,有利于硬件系统的设计、制作,因此,我们采用方案二,选用AT89C55WD单片机。
2、时钟方案选择
使用单片机内部的定时/计数器,采用软件实现,可以降低系统成本,缺点是误差较大。
一般用在对时间精度要求不高的场合,而且当出现断电等情况程序重新运行时,需要对时间用按键进行校正。
在系统中扩展外部时钟芯片DS1302。
DS1302时钟芯片内含一个实时时钟/日历电路和32字节静态RAM,可提供秒、分、时、日、日期月、年的信息,每月和闰年的信息可自动调整。
通过简单的SPI串行接口,与单片机仅需用复位、数据和时钟三根I/O口线进行通信,同时DS1302可外接备用电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
完全能满足题目掉电保护功能的要求。
基于以上分析,我们决定采用串行通讯的DS1302。
电路结构简单,程序容易编制,时钟精高,容易调整,具有掉电保护功能。
这样就可以使用单片机内部的定时/计数器来实现秒表和倒计时的设计,其中我们用T0来实现时间的闪烁,T1来实现秒表计时和倒计时功能,能够充分的利用单片机的资源。
3、温度采集方案选择
使用热敏电阻或温度传感器AD590,把测得的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换后所得数字量送入单片机进行温度值变换之后显示。
电路比较复杂。
且精度难以保证。
采用单线数字温度传感器DS18B20,DS18B20具有许多优点,该传感器结构简单,不需外接电路,数据传输采用one-wire总线,可用一根I/O数据线即供电又传输数据,在-10℃--+85℃范围内精度为±
0.5℃,且分辨率较高,重复性和可靠性好。
基于以上分析,方案二完全符合电路设计要求,同时电路简单,操作容易,对DS18B20编程也比较容易,故在本设计中采用方案二。
4、显示模块的选择
采用数码管显示。
数码管亮度高、体积小、重量轻,但其显示信息简单、有限,并且需要较高的驱动能力,功耗高,人机交互功能差,较难控制,在本题目中应用受到很大的限制。
采用液晶显示。
液晶显示功耗低,轻便防震。
由于本题显示信息比较复杂,采用液晶显示界面友好清晰,操作方便,显示信息丰富。
基于以上分析,由于系统要显示的信息较多,加上数码管操作不便,必须反复进行扫描,否则显示亮度就会变暗,故本设计中采用方案二。
综上所述,经方案对比,在实际设计应用中使用AT89C55WD单片机,时钟芯片DS1302,温度传感器DS18B20,和LCD1602液晶等芯片,使电路整体结构简单,功能齐全,性能稳定、可靠,设计合理。
四、各模块电路原理分析及原理图
1、
单片机AT89C55WD模块原理及电路图
单片机是整个硬件系统的核心,它即协调整机工作,又是数据处理器,是软硬件系统连接的桥梁。
AT89C55WD单片机性能好,价格便宜,其片内含有20KBFlash程序存储器,存储器可循环写入/擦除10000次,具有256B内部RAM,32条可编程I/O口线,3个定时器/计数器,具有8个中断源和4个优先级的中断结构,可编程全双工串行通道等功能,因此,我们选用AT89C55WD单片机来满足程序容量大,控制较为复杂的特点,以完成题目的基本要求和发挥部分的要求。
具体原理图如图4-1所示。
图4-1单片机最小系统
2、时钟模块原理及电路图
时钟模块采用时钟芯片DS1302,DS1302是美国Dallas公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31~8的用于临时性存放数据的RAM寄存器。
DS1202具有主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
DS1302的引脚如图4-2:
图4-2DS1302引脚图
VCC1为后备电源VCC2为主电源。
DS1302由VCC1或VCC2两者中的较大者供电。
当VCC2大于VCCI+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
X1、X2为振荡源,外接32.768Hz晶振。
RST是复位/片选线,上电运行时,在VCC≥2.5V之前RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),SCLK为时钟输入端。
DS1302与单片机接口原理图如图4-3:
图4-3DS1302与单片机接口原理图
3、温度采集模块原理及电路图
DS18B20采用3脚PR-35封装,其引脚图如图4-4所示。
图4-4DS18B20引脚图
智能温度传感器DS18B20将温度传感器、A/D传感器、寄存器、接口电路集成在一个芯片中,可实现直接数字化输出和测试,它的测温范围从-55℃~+l25℃,且在-l0℃~+85℃之间温度精度为±
0.5℃,并且转换精度可编程控制。
芯片出厂时为默认12位转换精度。
DS18B20工作在9位、10位、11位和12位模式时的温度分辨依次为0.5℃、0.25℃、0.125℃、0.0625℃。
和DS18B20线连接的微控制器的l/O口如无内部上拉电阻,必须在总线上加一个上拉电阻。
阻值以5K为佳,DS18B20接收到温度转换命令(44H)后开始转换,转换完成后温度以16位带符号扩展的二进制补码形式,存储在scratchpadRAM中的第0、1字节。
在执行读scratchpadRAM命令(OBEH)后,可将这两字节的温度值通过单总线传给主CPU。
DS18B20的接口原理图如图4-5:
图4-5DS18B20与单片机接口原理图
4、显示模块电路原理及电路图
LCD1602是可以显示两行每行显示l6个字符的液晶显示器。
LCD1602采用8位数据传送,通过单片机的并行接口与液晶显示模块直接连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制,完成相应的显示。
使用LCD做数据显示,一旦数据写入LCD,数据就会一直显示在液晶屏上,不必像数码管显示那样要定时扫描才能将数据显示,其显示效果远远超过数码管显示,LCD1602与单片机接口原理图:
图4-6LCD1602与单片机接口原理图
5、键盘模块原理及电路图
本系统有八个按键,操作非常简单人性化,为了提高CPU的工作效率,采用中断工作方式,同时采用中断也有一部分防抖功能,这样通过按键来实现各种功能要求,设计方案原理图如图4-7所示:
图4-7键盘模块原理图
6、闹钟播放音乐和温度过限报警模块原理及电路图
闹铃响和温度过限报警采用单片机编程以音乐的方式实现,并最终以蜂鸣器播放出。
蜂鸣器驱动电路如图4-8:
闹钟采用音乐报警方式,其中音乐播放是本设计的重要创新部分,音乐播放功能没有使用任何音乐芯片,而是采用模拟音乐的频率,产生频率表,用单片机的一个口线输出,驱动蜂鸣器,输出音乐。
闹钟不仅实现每天两个的功能,而且还增加了生日闹钟的功能,采用与实际相近的音乐提醒,跟使我们的实际贴近生活。
在温度模块中,不仅能够实现温度的高精度采集和显示,而且还增加了温度报警功能,能够实时的检测环境温度,当温度超过一定数值,就会发声提示报警。
图4-8蜂鸣器驱动电路
五、系统调试
系统调试分为硬件调试、软件调试和软硬件联调。
电路按模块调试,各模块逐个调试通过后再联调。
1、硬件调试
对单片机及外围电路部分进行硬件调试,此部分硬件调试主要是以检查焊接是否正确,是否有虚焊,焊接引脚是否正确等情况,调试时采用数字外用表来检查。
2.软件调试
本系统的软件系统很大,全部用C51来编写,软件调试比较复杂。
除了语法差错和逻辑差错外,当确认程序没问题时,我们通过PROTES仿真软件来进行仿真和调试。
软件仿真调试无误后,再直接下载到单片机来调试。
采取的是白下到上的调试方法.即单独调试好每—个模块,然后再连接成一个完整的系统调试。
PROTES仿真图如图
图6-1PROTES仿真总图
3.软硬联调
软硬联调使得系统的软件和硬件之间的联系更加紧密,一般是软件编程完毕之后,将程序烧入单片机,从而进行显示。
因此在软硬件都基本调通的情况下系统的软硬件联调难度不是很大。
六、总结
本系统以AT89C55WD为核心部件,利用软件编程,通过键盘控制和液晶显示实现各种功能。
不仅完成了题目的基本功能,而且也完成了部分提高要求,同时还有很大的发挥.现将题目要求指标及系统实际性能列表如下:
基本要求
提高要求
其他要求
实际性能
时钟显示时、分、秒
时钟实现“电子日历”功能。
开机显示功能
实现
时钟有时间调整功能。
增加“语音报时”功能
时间显示有12小时和24小时模式切换
时钟具有闹钟功能
时钟的秒表提供了连续计时功能,能够连续计时三次
时钟具有整体报时功能
时钟具有秒表功能
时钟具有时间存储功能
时钟附带有一个温度计功能,显示精度为0.5度
时钟具有倒计时功能
时钟具有发声倒计时功能
时钟具有温度报警功能
时钟能够提供二个一般闹钟
时钟能够提供一个生日闹钟
时钟提供播放四种不同的音乐功能
时钟提供闹钟的开关功能,并显示开关状态
我们在硬件电路的设计中遇到了很多的问题,蜂鸣器有源与无源的选择,单片机晶振参数的选择,显示电路的选择,各种问题我们都将其克服,同时我们尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。
由于时间和本身知识水平有限,我们认为本系统还有需要改进和提高的地方,例如语音报时尚未实现,硬件电路不够精确稳定,软件程序不够精炼,还需进一步的改进与完善等。
六、参考文献
1.李光飞,李良儿.楼然苗单片机C程序设计实例指导[M].北京:
航空航天大学出版社,2006
2.楼然苗,李光飞.51系列单片机设计实例[M].北京:
航空航天大学出版社,2006
3.张毅刚.单片机原理及应用[M].北京:
高等教育出版社,2003
4.柯节成.简明电子元件器件手册[M}.北京:
高等教育出版社,1991
5.戴佳,戴卫.51单片机C语言应用程序设计实例精讲[M].北京:
电子工业出版社,2007
6.薛永毅,王淑英何希才.新型电源电路应用实例[M].北京:
电子工业出版社,2001
7.赵茂泰.智能仪器原理及应用[M].北京:
电子工业出版社,2006
8.张大明.单片机控制实训指导及综合应用实例[M].北京:
机械工业出版社,2007
9.胡汉才.单片机原理及其接口技术[M].北京:
清华大学出版社,2009
10.孙涵芳.MCS-51196系列单片机原理及应用[M].北京:
航空航天大学出版社,1988
附录
#include<
AT89x51.h>
string.h>
#include<
intrins.h>
#defineLCM_RSP2_0//定义引脚
#defineLCM_RWP2_1
#defineLCM_EP2_2
#defineLCM_DataP0
#defineBusy0x80//用于检测LCM状态字中的Busy标识
#defineucharunsignedchar
ucharid,timecount,dipsmodid;
bitlmcinit_or_not;
//是否需要清屏标志位“1”为需要“0”为不需要
bitflag,sflag;
//flag是时钟冒号闪烁标志,sflag是温度负号显示标志
voidDisp_line1(void);
//显示屏幕第一行
voidDisp_line2(void);
//显示屏幕第二行
voidid_case1_key();
voidDisp_mod1(void);
//显示模式1
voidDisp_mod2(void);
//显示模式2
voidDisp_mod3(void);
//显示模式3
voidDisp_mod4(void);
//显示模式4
voidDisp_mod5(void);
//显示模式5
voidDisp_mod6(void);
//显示模式6
//***********DS1302时间显示定义部分
sbitT_CLK=P1^0;
sbitT_IO=P1^1;
sbitT_RST=P1^2;
sbitACC0=ACC^0;
sbitACC7=ACC^7;
voidSet(uchar,uchar);
//根据选择调整相应项目
voidRTInputByte(uchar);
//输入1Byte
ucharRTOutputByte(void);
//输出1Byte
voidW1302(uchar,uchar);
//向DS1302写入一个字节
ucharR1302(uchar);
//从DS1302读出一个字节
voidSet1302(unsignedchar*);
//设置时间
bitsec,min,hour,year,mon,day,weekk;
//闪烁标志位
unsignedcharinittime[7]={0x00,0x00,0x00,0x01,0x01,0x0b,0x06};
//初始化后设置为:
11年1月1日星期60点0分0秒
//秒分钟小时日月年星期
//*****18B20温度显示定义部
sbitDQ=P3^3;
//18B20接P07口
typedefunsignedcharbyte;
typedefunsignedintword;
Read_Temperature(char,char);
voidmychar(void);
byteow_reset(void);
byteread_byte(void);
voidwrite_byte(charval);
voidadjust_res(charres);
//res分别等于0x1f,0x3f,0x5f温度读数分辨率分别对应
//0.5,0.25,0.125
//*******温度控制部分*********
bittl_flash_flag;
//下限闪烁标志
bitth_flash_flag;
//上限闪烁标志
bittl_flag;
//下限越限标志
bitth_flag;
//上限越限标志
bittl_sign,th_sign;
//温度零下标志0:
零上,1:
零下
chartempid;
voidDisp_Temp(void);
//显示上下限温度
voidSet_TH_Temp(void);
//设置温度上限
voidSet_TL_Temp(void);
//设置温度下限
signedchartl=10,th=45;
voidCompare_Temp(signedcharl,signedcharh);
//比较温度
voidTl_Al(void);
//下限越限报警
voidTh_Al(void);
//上限越限报警
//**********播放音乐************
#defineSYSTEM_OSC11059200//定义晶振频率12000000HZ
#defineSOUND_SPACE4/5//定义普通音符演奏的长度分率,//每4分音符间隔
unsignedintcodeFreTab[12]={262,277,294,311,330,349,369,392,415,440,466,494};
//原始频率表
unsignedcharcodeSignTab[7]={0,2,4,5,7,9,11};
//1~7在频率表中的位置
unsignedcharcodeLengthTab[7]={1,2,4,8,16,32,64};
unsignedcharSound_Temp_TH0,Sound_Temp_TL0;
//音符定时器初值暂存
unsignedcharSound_Temp_TH1,Sound_Temp_TL1;
voidInitialSound(void);
voidPlay(unsignedchar*Sound,unsignedcharSignature,unsignedOctachord,unsignedintSpeed);
//*******1602LCD驱动******************
voidWriteDataLCM(unsignedcharWDLCM);
voidWriteCommandLCM(unsignedcharWCLCM,BuysC);
unsignedcharReadStatusLCM(void);
voidLCMInit(void);
voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);
voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);
voidDelay5Ms(void);
voidDelay20Ms(void);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子综合设计 电子 综合 设计 数字 文档 最终版