单片机课程综合设计报告_第1页
单片机课程综合设计报告_第2页
单片机课程综合设计报告_第3页
单片机课程综合设计报告_第4页
单片机课程综合设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机原理与应用2013年课程综合设计报告设计题目基于单片机的电热水杯设计院系名称计算机科学与技术专业(班级)计算机科学与技术计本(2)班姓名(学号)指导教师完成时间2013年6月16日课程设计任务书摘要随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中,电子万年历作为一种功能十分强大的日常计时工具,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长、误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间校准等功能,已逐步的出现在我们的日常生活中。

2、一般日常生活中大都使用的是纸质日历。纸质日历显示效果不太好并且使用寿命不长,造成了一定的资源浪费。 针对传统的纸质日历局限性,本论文设计了一款基于单片机的电子万年历系统。本设计以AT89S52单片机为核心,构成系统主控制电路。AT89S52是一种带8K字节闪速可编程可擦除只读存储器的低电压、高性能CMOS 8位为控制器,全部信息用12864液晶显示时间、日期、闹铃及界面的切换由四个独立按键来实现,并可对闹铃开关进行设置。日历能显示阳历和阴历年、月、日以及星期、时、分、秒。如有节气及生日都会有提醒显示的功能。 电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。它集时间、日期、星期等功能

3、于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 关键词:电子万年历;AT89S52;TLC549;12864液晶显示屏1 设计要求与方案1.1 设计要求(1)具有年、月、日、时、分、秒显示和校准功能。(2)闹钟功能,提示时间到后以3分钟每次的频率报警提示用户,直到用户通过按键确定。 1.2 系统基本方案选择和论证 方案一:采用89C51芯片作为硬件核心采用Flash ROM内部只具4KBROM存储空间,由于本设计程序比较长,单片机内部的Flash ROM不够,需要加外部扩展ROM芯片24C016,电路设计较为复杂。同时此单片机也具

4、有89C51的功能,且具有在线编程可能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时。由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二:采用LED数码管动态扫描数码管价格适中,对于显示数字最合适,但不能显示汉字、图形、显示效果比较差,并且采用LED数码管连接时接线多,硬件电路较为复杂。所以在此设计中不采用LED数码管显示。 方案三:采用LCD液晶显示屏液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,所以在此设计中采用FYD12864-040

5、2B液晶显示屏。1.4系统工作原理说明本电路包括基本的时钟电路模块、液晶显示模块、语音报时模块。各功能模块通过控制芯片连接起来,完成本设计要求。电路实现的基本功能是电子万年历。通过液晶LCD12864,可显示年月日、时分秒、等基本信息。增强功能是具备时钟语音报时功能。即每到整点,系统会自动语音报时,报时信息包括日期及时间。 ds1302程序流程框图: 初始化1:小时减一 2:分减一 3:秒减一4:年减一 5:月减一 6:日减一 7:星期减一1:小时加一 2:分加一 3:秒加一4:年加一 5:月加一 6:日加一 7:星期加一 Dnum=?Flag=1?Dnum=? 计算要显示的数据 送到1268

6、4显示图3 ds1302程序流程框图2硬件系统的设计2.1时钟芯片的选择方案 采用DS1302时钟芯片实现时钟。DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区。工作电压2.5V-5.5V范围内,2.5V时耗电小于300nA。按照系统设计功能的要求,初步确定系统由主控模块、时控模块、及显示模块和键盘接口模块共4个模块组成。主控芯片使用51系列AT89S52单片机时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302。采用DS1302作为计时芯片可以做到计时准确。更重要的是DS1302可以在

7、很小电流的后备电源2.5-5.5V电源,再2.5V时耗电小于300nA,而且DS1302可以编程选择多种充电电流来为备电源进行慢速充电,可以保证后备电源基本不耗电,显示模块采用液晶显示屏。2.2单片机主控制模块的设计AT89S52系列单片机是宏品科技生产的单片机,它是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统80C51,但速度快812倍。内部集成MAX810专用复位电路,250K/S即25万次/秒,针对电机控制、强干扰场合。它有高速、高可靠、低功耗、超低价、强抗静电、强抗干扰的功能。AT89S52系列工作电压5.5V 3.5V,工作频率范围0MHz35MHz相当于普通

8、8051的0MHz420MHz。在芯片上,拥有灵巧的8 位CPU 和在系统,可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。2.3单元电路设计2.3.1时钟电路时钟芯片DS1302,控制电路如图4所示: 图4 时钟电路时钟电路采用的是ds1302芯片,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月

9、、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。工作电压与单片机的输入电压比较适合。上面是它的一些基本的应用介绍。 2.3.2单片机最小控制系统控制芯片使用AT89S52,控制部分最小系统如图5所示:图5 单片机系统2.3.3液晶显示模块 显示模块使用液晶FYD12864-0402B,电路原理图如图6所示 图6 液晶显示2.3.4液晶FYD12864-0402B概述FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的

10、点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多。2.3.5液晶FYD12864-0402B基本特性(1)低电源电压(VDD:+3.0-+5.5V)(2)显示分辨率:12864点(3)内置汉字字库,提供8192个1616点阵汉字(简繁体可选)(4)内置 128个168点阵字符(5)2MHZ时钟频率(6)显示方式:S

11、TN、半透、正显(7)驱动方式:1/32DUTY,1/5BIAS(8)视角方向:6点(9)背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10(10)通讯方式:串行、并口可选(11)内置DC-DC转换电路,无需外加负压(12)无需片选信号,简化软件设计2.3.6液晶FYD12864-0402B串口接口管脚信号如表1、表2所示:表1 液晶屏管脚管脚号名称LEVEL功能1VSS0V电源地2VDD+5V电源正(3.0V5.5V)3V0-对比度(亮度)调整4CSH/L模组片选端,高电平有效5SIDH/L串行数据输入端6CLKH/L串行同步时钟:上升沿时读取SID数据15PSBLL:串口方式

12、(见注释1)17/RESETH/L复位端,低电平有效(见注释2)19AVDD背光源电压+5V(见注释3)20KVSS背光源负端0V (见注释3)表2 液晶屏管脚功能管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=L,E=HL,DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线

13、10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)(见注释3)20KVSS背光源负端(见注释3)3、课程设计整体电路整体原理图如图7所示:图7 原理图4、课程设计部分程序4.1 main主程序#include #include #include LCD12864.h/液晶显示木块头文件#include ds1302.h/时

14、钟模块头文件#include delay.h/延时模块头文件#include beep.h/报警模块头文件#define uchar unsigned char#define uint unsigned intuchar temp,TNL,almtemp;void main() Set_RTC(); /设置万年历初始时间 delay(500); lcdset(); /液晶显示屏初始化 beepoff(); /关闭蜂鸣器 while(1) TNL=shuju1302(); /读-年-月-日-时-分-秒,并将万年历函数变量返回值送给闹铃变量TNLif(TNL=1) beepon(); /蜂鸣器报警

15、else beepoff();disply1302(); /送液晶显示屏显示 4.2 LCD12864函数#include LCD12864.h#includedelay.h#include #define uchar unsigned charsbit rs = P31;sbit rw = P36;sbit en = P37;void writecommand(uchar command) delay(100); rs=0; rw=0; en=1; P0=command; /液晶数据线P0 en=0; void writedata(uchar date) delay(100); rs=1;

16、rw=0; en=1; P0=date; en=0; void lcdset(void) writecommand(0x30); /基本指令集 writecommand(0x01); /清屏,DDRAM的地址归零 writecommand(0x02); /地址归位 writecommand(0x0c); /显示开,光标关,反白关 writecommand(0x06); /DDRAM地址加1 void display(uchar y, uchar x, uchar *p) switch (y) case 1:writecommand(0x7f+x); break; /液晶第一行 case 2:w

17、ritecommand(0x8f+x); break; /0x90+(x-1) case 3:writecommand(0x87+x); break; case 4:writecommand(0x97+x); break; default:break;while(*p) writedata(*p+); 4.3显示程序#include ds1302.h#include LCD12864.h#includedelay.h#include #include #define uchar unsigned char#define uint unsigned intuchar code yejingtab

18、le=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x03,0x2d;/0-9uchar l_tmpdate7=0, 26, 13, 20, 8, 1, 12;/秒分时日月周年08-05-15 12:00:00/0 1 2 3 4 5 / 秒,分,时,日,月 , 年code uchar write_rtc_address7=0x80,0x82,0x84,0x86,0x88,0x8a,0x8c; /秒分时日月周年 最低位读写位code uchar read_rtc_address7=0x81,0x83,0x85,0x87,0x89,0x8b

19、,0x8d; uchar l_tmpdisplay17;uchar naoling6=0x31,0x33,0x30,0x32,0x37,0x38;/闹铃设置数组-设置时间为13时27分-13时28分闹铃响/*DS1302的操作程序*/void Write_Ds1302_Byte(uchar temp) unsigned char i; for (i=0;i=1; /右移一位 SCK=1; _nop_(); void Write_Ds1302( uchar address,uchar dat ) RST=0;_nop_(); SCK=0;_nop_(); RST=1; _nop_(); /启动

20、Write_Ds1302_Byte(address);/发送地址 Write_Ds1302_Byte(dat);/发送数据 RST=0; /恢复uchar Read_Ds1302 ( uchar address ) uchar i,temp=0x00; RST=0;_nop_(); SCK=0;_nop_(); RST=1;_nop_(); Write_Ds1302_Byte(address); for (i=0;i=1; /右移一位 if(SDA) temp|=0x80;/每次传输低字节 SCK=1; _nop_();_nop_(); RST=0;_nop_();/以下为DS1302复位的稳

21、定时间 RST=0;SCK=0;_nop_();SCK=1;_nop_();SDA=0;_nop_();SDA=1;_nop_();return (temp);/返回void Set_RTC(void)/设定 日历uchar i,*p,tmp;for(i=0;i7;i+) /BCD处理tmp=l_tmpdatei/10;l_tmpdatei=l_tmpdatei%10;l_tmpdatei=l_tmpdatei+tmp*16; /经处理后数组l_tmpdate中的数据为BCD码形式 Write_Ds1302(0x8E,0X00); p=write_rtc_address;/传地址 for(i=

22、0;i7;i+)/7次写入 秒分时日月周年 Write_Ds1302(*p,l_tmpdatei); p+; Write_Ds1302(0x8E,0x80);void Read_RTC()/读取 日历 uchar i,*p; p=read_rtc_address; /地址传递 for(i=0;i7;i+)/分7次读取 秒分时日月周年 l_tmpdatei=Read_Ds1302(*p); p+; uchar shuju1302() uchar flag;Read_RTC(); l_tmpdisplay8=l_tmpdate6/16; /年显示数据处理l_tmpdisplay9=l_tmpdat

23、e6&0x0f;l_tmpdisplay10=10;l_tmpdisplay11=l_tmpdate4/16;/月显示数据处理l_tmpdisplay12=l_tmpdate4&0x0f;l_tmpdisplay13=10;l_tmpdisplay14=l_tmpdate3/16; /日显示数据处理l_tmpdisplay15=l_tmpdate3&0x0f; l_tmpdisplay0=l_tmpdate2/16;/时显示数据处理l_tmpdisplay1=l_tmpdate2&0x0f;l_tmpdisplay2=10; l_tmpdisplay3=l_tmpdate1/16;/分显示数据

24、处理l_tmpdisplay4=l_tmpdate1&0x0f;l_tmpdisplay5=10;l_tmpdisplay6=l_tmpdate0/16;/秒显示数据处理l_tmpdisplay7=l_tmpdate0&0x0f;if(yejingtablel_tmpdisplay0=naoling0)&(yejingtablel_tmpdisplay1=naoling1)&(yejingtablel_tmpdisplay3=naoling3)&(yejingtablel_tmpdisplay4=naoling4) flag=1; if(yejingtablel_tmpdisplay0=nao

25、ling0)&(yejingtablel_tmpdisplay1=naoling1)&(yejingtablel_tmpdisplay3=naoling3)&(yejingtablel_tmpdisplay4=naoling5) flag=0; return(flag); void disply1302() writecommand(0x89);writedata(yejingtablel_tmpdisplay0); /时送显示writedata(yejingtablel_tmpdisplay1);display(3,3,时);writedata(yejingtablel_tmpdisplay

26、3); /分送显示writedata(yejingtablel_tmpdisplay4);display(3,5,分);writedata(yejingtablel_tmpdisplay6); /秒送显示writedata(yejingtablel_tmpdisplay7);display(3,7,秒);writecommand(0x91);writedata(0x32);/2writedata(0x30);/0writedata(yejingtablel_tmpdisplay8); /年送显示writedata(yejingtablel_tmpdisplay9);display(2,4,年);writedata(yejingtablel_tmpdisplay11); /月送显示writedata(yejingtablel_tmpdisplay12);display(2,6,月);writedata(yejingtablel_tmpdisplay14); /日送显示wri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论