




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要1第一章 总体方案设计11.1 方案比较与选择11.1.1 稳压电路方案的比较与选择:11.1.2 显示电路方案比较与选择:21.1.3 时钟电路方案比较与选择:21.1.4 液晶显示界面方案比较与选择:21.2方案设计31.2.1整体电路组成31.2.2总体电路组成框图3第二章 单元模块设计42.1 各模块理论分析计算及论证42.1.1 电源模块42.1.2 单片机最小系统42.1.3 测频模块52.1.4 测压模块52.1.5 红外接收模块62.1.6 测温模块62.1.7 时钟模块6第三章 系统调试73.1 软件流程图73.2 软件仿真图及原理图83.2.1 Multisim仿真NE555输出周期为0.02s的脉冲83.2.2 Proteus软件仿真测压模块分压的电压8第四章 指标参数及总结94.1 测试指标94.1.1 测试方法与仪器94.1.2 测试数据及测试结果分析10第五章 设计总结10参考文献:11附录:11附录1. 主要元器件清单11附录2. 创新部分11附录3. 主要程序清单1241摘要 本时钟是以AT89S52单片机,ADC0832,NE555,DS18B20,HS38B5 及DS1302时钟芯片为核心的多功能数字钟。它是220V供电,带闹钟、温度、频率、电压显示(按键切换)的24小时制数字钟。还具备电压欠压,过压报警和红外遥控止闹等功能。外接纽扣电池使其掉电长时间后时间不需重新设置;闹钟时间和开关状态掉电保存;经测试,本钟计时准确;功耗低;操作界面友好;操作简便;使用安全,整体性能良好。关键词:AT89S52;ADC0832;NE555;DS18B20;HS38B5;DS1302AbstractThis clock is AT89S52 MCU,ADC0832 , NE555, DS18B20, HS38B5, DS1302 clock chips as the core and the multi-function digital clock. It is 220V power supply, take alarm clock, temperature and frequency and voltage display digital clock 24-hour system. Also have voltage owe pressure, pressure alarm and infrared control stop alarm clock, and other functions. External button battery made its power lost long time does not need to reset; The alarm clock time and switch state power lost preservation; By test, this clock accurate; Low power consumption; User friendly and safely; Simple operation;the overall highperformance.Keywords: AT89S52 MCU;ADC0832;NE555;DS18B20;HS38B5;DS1302第一章 总体方案设计1.1 方案比较与选择1.1.1 稳压电路方案的比较与选择:市电经过变压器变压,整流桥整流,电容滤波后必须稳压成5V的直流电才能给AT89S52单片机供电。且电压波纹越小越好。方案一:直接使用LM7805稳压芯片稳压。此电路简单,方便。但输出电压不是精准的5V直流电压。方案二:先用LM7809稳压芯片稳压,再用LM317构成一个可调电压电路。此方案可输出精准的5V电压且电压波纹极小。比较上述2种方案,方案二电路虽然复杂点但完全符合题目要求,本课题中我们采用方案二。1.1.2 显示电路方案比较与选择:方案一:采用数码管显示,成本低,亮度高,醒目。但在显示较多的项目时,硬件电路复杂,功耗大。方案二:采用12232液晶显示屏,该屏自带字库,驱动程序简单,可以显示2行7.5列汉字(或4行16列字母,数字)。显示信息量大,外形美观。课题中需要显示时间,电压,频率和温度等,要求显示内容丰富。比较上述2种方案,方案二电路简单、显示信息量大、能很好的满足题目要求,我们采用方案二1.1.3 时钟电路方案比较与选择:方案一:使用各种数字逻辑芯片搭建时钟电路。使用简单,但成本高,电路复杂,工作起来不太稳定。方案二:采用DS1302时钟芯片构建时钟电路。电路结构简单,成本低,工作稳定。比较上述两种方案,虽然方案一使用简单,但不能很好的满足题目要求所以我们选择方案二。1.1.4 液晶显示界面方案比较与选择:方案一:采用传统的显示界面。程序编写简单,但显示方式呆板,不利于人机对话。方案二:采用创新的菜单显示界面。设计人性化,便于使用者查看及调整操作。并且我们运用了非法操作报警的工作模式,大大增加了使用寿命。此处我们选择方案二(详见创新部分Page 12附录2.)1.2方案设计1.2.1整体电路组成电路部分主要由变压整流滤波稳压电路,51单片机最小系统电路,NE555输出脉冲电路,AD电路,液晶显示电路等几部分电路及模块组成。1.2.2总体电路组成框图第二章 单元模块设计2.1 各模块理论分析计算及论证2.1.1 电源模块电源部分是先将220V的交流电压变压为9V交流再通过整流桥整流,电容滤波。LM7809稳压芯片稳压成直流大约9V。后端再滤波稳压,利用LM317实现可调式稳压成精准的直流5V。其间对R1,R2的取值式由公式:Vout=1.25*(1+R2/R1)确定。2.1.2 单片机最小系统这部分电路构成单片机最小系统可谓是整个系统的核心。利用最小系统能有效的测量电压,频率,温度;与DS1302时钟芯片及蜂鸣器构成带闹钟的数字钟;与12232液晶够成显示部分;与独立键盘可构成调整部分。2.1.3 测频模块NE555是一个能产生精确定时脉冲的高稳度控制器,其输出驱动电流可达200mA。在多谐振荡器工作方式时,其输出的脉冲占空比由两个外接电阻和一个外接电容确定。这部分电路主要用于测量外部电网电压。电路由用途广泛的NE555电路构成。原理是将外电网的50Hz正弦交流信号(从变压器副端输出)转变为同频率的脉冲信号,然后将脉冲信号发送至单片机的外部中断0口,触发外部中断,触发一次shu+,同时打开定时器0开始计时,基准为两秒。两秒钟到后,停止计时,同时关闭外部中断。此时外电网的频率f=shu/2 (Hz)。通过取平均值,此方法可以准确的测量出外电网频率。2.1.4 测压模块ADC0832为8 位分辨率,最高可达256级的模数转换器;双通道 A/D 转换;输入输出电平与 TTL/CMOS 相兼容;电源供电时输入电压在 05V 之间;工作频率为 250KHZ,转换时间极短,仅为 32S;一般功耗仅为 15mW;此模块的输入电压是变压整流滤波后的电压。电压值大约等于(9*1.414)V。经过两电阻分压后输入CH0脚。保证输入电压在5V以内。通过计算可以得到电网电压。2.1.5 红外接收模块本模块主体采用的是HS38B5红外接收头。此接受头具有远距离接收,灵敏度高,抗干扰性强等特点。我组在多功能时钟上使用红外遥控止闹技术。让使用者更便捷的止闹。其原理是当闹钟响时,HS38B5的数据脚为高电平。使用者把遥控器对准红外接收头按下开关键。HS38B5的数据脚立即变为低电平。单片机通过检测其数据脚的高低电平状态判断是否让蜂鸣器停止发声。2.1.6 测温模块本模块主要采用DS18B20测温芯片构成。单总线的接口方式单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85C 范围内,精度为 0.5C 。在使用中不需要任何外围元件。测量参数可配置 DS18B20 的测量分辨率可通过程序设定 912 位。DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围。2.1.7 时钟模块DS1302是一种高性能、低功耗的实时时钟芯片,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。本模块中也使用了后备电池,保证在不接外接电源的情况下,时间不需重新设置;闹钟时间和开关状态掉电保存。第三章 系统调试3.1 软件流程图电源供电AT89S52测量电压测量频率 NE555ADC08322 AADC0832DS18B20测温按键调节时间闹钟 DS13023.2 软件仿真图及原理图3.2.1 Multisim仿真NE555输出周期为0.02s的脉冲3.2.2 Proteus软件仿真测压模块分压的电压3.2.3 时钟系统原理图第四章 指标参数及总结4.1 测试指标4.1.1 测试方法与仪器检测题目中要求的电压及频率,我们使用的是RIGOL DS5062M双通道数字存储示波器及MASTECH牌万用表。测温则是使用的工具是常州市向阳仪表有限公司生产的温度计。4.1.2 测试数据及测试结果分析 结果分析:电压测量由于采用的是电阻分压AD转换的方法,所以即使产生一点误差乘上比例后将会变大;频率测量则只要在单片机晶振能满足的范围内就能得到比较准确的值。第五章 设计总结经过几天几夜的奋战,我们完成了题目基本要求和发挥要求,但由于知识和硬件资源的限制,个别指标做的不是非常完善。首先,我代表我们小组感谢本次竞赛的主委会和全体评审老师以及给予我们帮助的各位老师和“战友”,谢谢你们给我们一个提高和展现自己的舞台,让我们在以后的人生中更加自信和坚定。通过这次电子设计大赛,让我们感受了实践出成果的喜悦,也深深的体会到理论联系实际的重要性。这次设计竞赛不仅锻炼了我们的动手能力,增强我们的实践意识,还激发了我们的创新思维;不仅提高了我们的团队合作精神,还培养了我们克服困难和吃苦耐劳的精神;所有这些无不激发着我们去不断追求、不断创新。最后再次感谢大赛组委会和我们辛勤的老师!参考文献(1)数字电子技术基础 阎石,王红编 高等教育出版社 2010 11(2)新概念51单片机C语言教程入门提高开发拓展全攻略 郭天祥著 电子工业出版社 2009 12(3)C程序设计 谭浩强主编 清华大学出版社 2009附录:附录1. 主要元器件清单附录2. 创新部分 显示界面的创新我组制作的多功能数字时钟系统的显示界面一改传统做法,采用“菜单”式的人机交流界面,更具人性化设计。(如下图所示)测频模块的创新我组制作的多功能数字时钟系统具有准确测量外电网频率的功能。其方法也与其它传统测量频率的方法有别。我们在此主要是利用NE555输出与其输入信号同频率脉冲的特性和单片机外部中断及内部定时器,采用每计时两秒读出一次平均频率的方法。此法与传统的测频方法相比有成本低,电路结构简单,测量附录3. 主要程序清单-DS1302程序#includeds1302.h#includereg52.h#include1.hsbit SCLK=P37;sbit io=P36;sbit RST=P35;extern uint time_data7;void Write1302(uchar dataa) unsigned char i; SCLK=0; delay(5); for(i=0;i=1; void write_time(unsigned char Cmd,unsigned char dataa) RST=0; SCLK=0; RST=1; delay(5); Write1302(Cmd); Write1302(dataa); SCLK=1; RST=0; unsigned char Read1302(void) unsigned char i,dataa;delay(5); for(i=0;i=1; if(io=1) dataa|=0x80; SCLK=1; delay(5); SCLK=0; delay(5); return dataa; unsigned char read_time(unsigned char Cmd) unsigned char dataa; RST=0; SCLK=0; RST=1; Write1302(Cmd); dataa=Read1302(); SCLK=1; RST=0; return dataa; void star_time()write_time(0x8E,0x00);write_time(0x8C,(11/10)4|(11%10);/ 2011write_time(0x88,(4/10)4|(4%10);/ 4write_time(0x86,(18/10)4|(18%10);/ 18write_time(0x84,(12/10)4|(12%10);/ 12write_time(0x82,(48/10)4|(48%10);/ 48write_time(0x80,(55/10)4)*10;a=read_time(0x83);time_data1=(a&0x0f)+(a&0x70)4)*10;a=read_time(0x85);time_data2=(a&0x0f)+(a&0x30)4)*10;a=read_time(0x87);time_data3=(a&0x0f)+(a&0x30)4)*10;a=read_time(0x89);time_data4=(a&0x0f)+(a&0x10)4)*10;a=read_time(0x8b);time_data5=(a&0x07);a=read_time(0x8d);time_data6=(time_data6/100)*100)+(a&0x0f)+(a&0xf0)4)*10;void restar_time()uchar a;write_time(0x8e,0x00);a=0;a=(time_data6%100)/10;a=a4;a=(a|(time_data6%10)&0xff;write_time(0x8c,a);a=0;a=(a|(time_data5%10)&0x07;write_time(0x8a,a);a=0;a=time_data4/10;a=a4;a=(a|(time_data4%10)&0x1f;write_time(0x88,a);a=0;a=time_data3/10;a=a4;a=(a|(time_data3%10)&0x3f;write_time(0x86,a);a=0;a=time_data2/10;a=a4;a=(a|(time_data2%10)&0x3f;write_time(0x84,a);a=0;a=time_data1/10;a=a4;a=a|(time_data1%10);write_time(0x82,a);a=0;a=time_data0/10;a=a4;a=(a|(time_data0%10)&0x7f;write_time(0x80,a);write_time(0x8e,0x80);-Key程序#includereg52.h#includekey.h#include闹铃.h#includewendu.h#include电压.huchar key=0;sbit bell=P00;void key_in()uchar a;a=P2;a=a4;if(a!=0xf0) bell=0;switch(a)case 0x70:key=1;break;case 0xb0:key=2;break;case 0xd0:key=3;break;case 0xe0:key=4;break; delay1(200);a=P2;a=a4;while(a!=0xf0) bell=1;a=P2;a=a0;x-)for(y=10;y0;y-);/DS18B20复位void dsreset(void)unsigned int i;ds=0;i=93;while(i0)i-;ds=1;i=60;while(i0)i-;/读一位bit tempreadbit(void)unsigned int i;bit dat;ds=1;i+;ds=0;i+;i+;ds=1;i+;i+;dat=ds;i=4;while(i0)i-;return(dat);/读一字节uchar tempread()unsigned char i,j,dat;dat=0;for(i=1;i=8;i+)j=tempreadbit();dat=(j1);return (dat);/写一字节void tempwritebyte(unsigned char dat)unsigned int i;unsigned char j;bit testb;for(j=1;j1;if(testb)ds=0;i+;i+;i+;i+;i+;ds=1;i=6;while(i0)i-;elseds=0;i=8;while(i0)i-;ds=1;i-;i-;/开始温度转换 void tempchange() dsreset();delay1(1);tempwritebyte(0xcc);tempwritebyte(0x44);/读取RAM中的温度uint get_temp() float f_temp; uint temp;unsigned char a,b;dsreset();delay1(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*100;return temp;void wendu_show()uchar code wen_du=摄氏度;uchar a;send_command(0x80);for(a=8;a16;a+)send_data(menu_data2a);send_command(0x90);for(a=0;a6;a+)send_data(shu_jua);for(a=0;a0/*key=4|key=3|key=2|key=1*/)key=0;break;bell_jiance();bao_jin_jian_ce();a=get_temp();shu_ju0=0;shu_ju1=number1a%10000/1000;shu_ju2=number1a%1000/100;shu_ju5=number1a%100/10;wendu_show();-电压及频率测量程序#include电压.h#include1.h#includereg52.h#include主界面.h#includekey.h#include菜单.h#include界面.h#include闹铃.hsbit CS=P33;sbit CLK=P31;sbit DO=P04;sbit DI=P30;extern uchar key;/sbit bell=P00;extern uchar code kaiguan;extern uchar code number110;extern uchar shu_ju;extern uchar code menu_data1;bit baojin=0;uint shu=0;uint shi=0;uchar ReadADC() uchar channel=0; uchar i; uchar Temp=0; channel=3; channel|=3; /channel为011; CS =0; /按照资料进行时序操作 for(i=0;i=1; delay(1); CLK=1; CLK=0; delay(1); CLK=1;for(i=0;i8;i+) /处理读入8位数据 CLK=0;delay(1); Temp=(Temp1)|DO; delay(1); CLK=1; CS=1;return(Temp); /返回转换值uint adc0832_deal()uint d;uchar a,c;d=0;for(c=0;c2420) bao_jin_kong(1);b=1;if(a1980) bao_jin_kong(0);b=1;return(b);void dian_ya_show()uchar a,b;if(baojin=1)b=0;elseb=2;send_command(0x80);for(a=16;a22;a+)send_data(menu_data1a);send_command(0x90);for(a=0;a3;a+)send_data(shu_jua);a=V;send_data(a);send_command(0x95);for(a=b;a=8000)EX0=0;TR0=0;shu=shu/2; shu_ju0=number1shu%100/10;shu_ju1=number1shu%10;shu=0;shi=0;out=0;key_in();if(key0/*key=4|key=3|key=2|key=1*/)EX0=0;TR0=0;key=0;out=1;break;bell_jiance();return(out);void ping_lv_show()uchar a;send_command(0x80);for(a=24;a30;a+)send_data(menu_data1a);send_command(0x90);for(a=0;a2;a+)send_data(shu_jua);a=H;send_data(a);a=z;send_data(a);void ping_lv_kong() bit out=0;while(1)ping_lv_show();out=cepin();if(out=1)break;key_in();if(key=4)key=0;break;bell_jiance(); void jishu() interrupt 0shu+;void jishi() interrupt 1shi+;-菜单一显示并用按键控制菜单函数void main_menu1_show() /-bit out=0;bit jjj=0;bit vvv=0;tiao4:send_command(0x01);menu_show1(); send_command(0x0f);while(1)key_in();watch_time();switch(key)case 1:n-;key=0;break;case 2:n+;key=0;break;case 3:key=0;send_command(0x0c); send_command(0x01); control();goto tiao4; break;case 4:key=0;send_command(0x0c);n=0;out=1;if(out=1)break;jjj=bell_jiance();vvv=bao_jin_jian_ce();/电压报警if(jjj=1|vvv=1)goto tiao4;if(n1)n=1;switch(n)case 1:send_command(0x84);break;case 2:send_command(0x90);break;case 3:send_command(0x94);break;case 4:send_command(0x0c);main_menu2_show();/菜单2显示/void main_menu2_show()uchar x;bit jjj=0;bit vvv=0;tiao3:/n=4;send_command(0x0c);/关光标send_command(0x01);/清屏send_command(0x80);for(x=16;x5)n=5;switch(n)case 4:send_command(0x80);break;case 5:send_command(0x84);break;case 3:send_command(0x0c);main_menu1_show();/时间调试界面/void tiao_time_control() bit out=0;bit jjj=0;bit vvv=1;tiao2:tiao_time_show();send_command(0x0f);while(1)key_in();switch(key)case 1:n-;key=0;break;case 2:n+;key=0;break;case 3:key=0;send_command(0x0c); send_command(0x01); control_1(); goto tiao2; break;case 4:key=0;send_command(0x0c);n=0;restar_time();out=1;if(out=1)break;jjj=bell_jiance();vvv=bao_jin_jian_ce();/电压报警if(jjj=1|vvv=1)goto tiao2;if(n2)n=2;switch(n)case 1:send_command(0x90);break;case 2:send_command(0x94);break;/日期调节控制tiao_time_date_show()/void tiao_time_date_control()bit out=0;bit jjj=0;bit vvv=0;tiao1:send_command(0x0c);/关光标tiao_time_date_show();send_command(0x0f);/开光标while(1)key_in();switch(key)case 1:n-;key=0;break;case 2:n+;key=0;break;case 3:key=0;send_command(0x01); send_command(0x0c);/关光标 change();goto tiao1; break;case 4:key=0;n=0; send_command(0x0c);/关光标 send_command(0x01);/清屏 out=1;if(out=1)break;jjj=bell_jiance();vvv=bao_jin_jian_ce();/电压报警if(jjj=1|vvv=1)goto tiao1;if(n4)n=4;switch(n)case 1:send_command(0x91);delay1(100);send_command(0x90);break;case 2:send_command(0x93);break;case 3:send_command(0x95);break;case 4:send_command(0x97);break; /时钟调节控制/void tiao_time_time_control()bit out=0;bit jjj=0;bit vvv=0;tiao5:send_command(0x0c);/关光标tiao_time_time_show();send_command(0x0f);/开光标n=5;while(1)key_in();switch(key)case 1:n-;key=0;break;case 2:n+;key=0;break;case 3:k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 9 Section A 3a-3c 说课稿2025-2026学年八年级英语下册同步教学(人教版)
- 第7课 设置动画效果教学设计-2025-2026学年小学综合实践活动长春版六年级上册-长春版
- 一年级道德与法治上册 第三单元 我爱我家 第10课《爱心伴我长大》说课稿 鄂教版
- 13 万里一线牵 (教案)部编版道德与法治三年级下册
- 《角》(教学设计)-2024-2025学年四年级数学上册人教版
- 第6课 奔向光明-亮度传感器的应用和条件控制教学设计-2025-2026学年初中信息技术粤教清华版九年级下册-粤教清华版
- 2025年幼儿发展与健康知识考试题库
- 金融市场概述教学设计-2025-2026学年中职专业课-财政与金融基础知识-财经类-财经商贸大类
- 1古诗三首《四时田园杂兴(其三十一)》教学设计-2024-2025学年统编版语文五年级下册
- Module 6 Unit 3 说课稿 2025-2026学年外研版英语八年级下册
- 加油、加气、充电综合站项目可行性研究报告
- 塔机拆卸合同范本
- 2024-2025学年广东省深圳市南山区四年级(下)期末数学试卷
- 《煤矿安全规程(2025版)》知识培训
- 2025秋数学(新)人教五年级(上)第1课时 小数乘整数
- 《数字技术应用基础模块》技工中职全套教学课件
- 房屋拆除专项施工方案(3篇)
- AutoCAD电气工程制图 课件 项目1 低压配电柜的绘制与识图
- 红河州公开遴选公务员试题及答案
- 2024年全国工会财务知识大赛备赛试题库500(含答案)
- 消防技术装备培训课件
评论
0/150
提交评论