本科毕业设计-万年历单片机—课程设计.doc

上传人:教**** 文档编号:88944799 上传时间:2023-05-04 格式:DOC 页数:17 大小:314.50KB
返回 下载 相关 举报
本科毕业设计-万年历单片机—课程设计.doc_第1页
第1页 / 共17页
本科毕业设计-万年历单片机—课程设计.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《本科毕业设计-万年历单片机—课程设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计-万年历单片机—课程设计.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 课程设计任务书题 目:万年历显示模块设计初始条件:具备电子电路的设计知识和能力;具备单片机系统的设计方法;具备单片机软件编程技术;熟悉单片机常用软件的使用;要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、了解并参与万年历电路的设计2、对万年历显示部分进行计算机仿真3、设计万年历显示电路4、具备时间、日期及星期的切换显示功能5、完成符合学校要求的设计说明书时间安排: 设计时间2周,其中3天原理设计,3天仿真,3天电路调试,1天答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要 单片计算机即单片微型计算机。由RAM ,ROM,CPU构成,

2、定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。本次课程设计包括AT89C51单片机最小系统包括复位和时钟电路及供电系统、LCD液晶显示电路。利用相关设计软件进行原理图设计即利用Keil软件编程以及Proteus软件仿真来巩固单片机应用、模拟电路、数字电路课程及学会各种工程软件的使用。 关键字:单片机 AT89C51 DS1302 目 录1设计方案选择11.1控制部分的方案选择11.2 显示模块选择方案和论证11.3时

3、钟芯片的选择方案和论证12系统的硬件设计与实现12.1 电路设计框图12.2 系统硬件概述22. 3 主要单元电路的器件22.3.1单片机主控制模块22.3.2时钟电路模块的设计32.3.3显示模块的设计5 2.3.4 实时时钟电路设计5 2.3.5 功能按钮设计63 整体电路图7 参考文献7附件101设计方案选择1. 1控制部分的方案选择采用51系列的89C51单片机,89C51单片机有丰富的中断源和时基,方便本实验的设计。它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O口功能也比较强大,方便使用。用89C51单片机做控制器最有特色的就是它的可编程音频处理,

4、可完成语音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。1.2 显示模块选择方案和论证方案一:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形、显示多样,清晰可见,所以在此设计中采用LCD液晶显示屏。所以采用了液晶显示屏作为显示。1.3时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月

5、、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。综上各方案所述,对此次作品的方案选定: 采用AT89C51作为主控制系统;DS1302提供时钟;液晶显示屏作为显示。2系统的硬件设计与实现2.1 电路设计框图按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键盘接口模块共4个模块组成,电路系统构成框图如图3-1所示。主控芯片使用51系列AT89C51单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DSl302。采用DSl302作为主要计时芯片,可以做到计时准

6、确。更重要的是,DSl302可以在很小电流的后备电源(2.55.5V电源,在2.5V时耗电小于300 nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。 显示模块采用普通的液晶显示屏,键输入采用查询法实现调整功能。AT89C51主控制模 块DS1302时钟模块LCD数码管动态扫描显示模块键盘模块图3-1 电路设计框图2.2 系统硬件概述本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰

7、年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由液晶显示屏对数字的显示。2.3 主要单元电路的器件2.3.1单片机主控制模块AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。1. 内部结构按功能分为8部

8、分:CUP,程序存储器,数据存储器,时钟电路,串行口,并行I/O口,中断系统,定时/计数器。2. 控制引脚XTAL1和XTAL2:时钟引脚,外接晶体引线端。当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。RST/:RST是复位信号输入端,是备用电源输入端。当RST输入端保持2个机器周期以上高电平时,单片机完成复位初始化操作。当主电源发生故障而突然下降到一定低电压或断电时,第2功能将为片内RAM提供电源以保护片内RAM中的信息不丢失。ALE/PROG:地址锁存允许信号输入端。在存取外存储器时,用于锁存低8位地址信号。当单片机正常工作后,ALE

9、端就周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号。此引脚的第2功能PROG是对片内带有4K字节EPROM的8751固外程序时,作为编程脉冲输入端。:程序存储器允许输出端。当片外程序存储器的读选通信号,低电平有效。CPU从外部程序存储器取指令时,信号会自动产生负脉冲,作为外部程序存储器的选通信号。/:程序存储器地址允许输入端。当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令;当/为低电平时,CPU只执行片外程序存储器指令。3. I/O口引脚P0.0P0.7:P0口8位双向I/O口;P1.0P1.7:P1口8位准双向I/O口;

10、P2.0P2.7:P2口8位准双向I/O口;P3.0P3.7:P3口8位准双向I/O口。4. 片外总线结构分为三部分:数据总线 Data Bus(DB),地址总线 Address Bus (AB),控制总线 Control Bus(CB)。2.3.2时钟电路模块的设计(1)时钟芯片DS1302引脚及功能特点图3-2示出DS1302的引脚排列,其中为后备电源,为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由或两者中的较大者供电。当大于+0.2V时,给DS1302供电。当小于时,DS1302由供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把R

11、ST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。Vcc1X1X2GNDVcc2SCLKI/O12348765、图3-2 DS1302引脚排列 (2) 时钟芯片D

12、S1302的工作原理:DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲。表3-1为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开

13、始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。表3-1 DS1302的控制字格式 RAM RD 1 A4 A3 A2 A1 A0 / CK /WR(3) 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 2. 3. 3显示模块的设计方案一:采用8段数码管虽经济实惠,但操作比液晶显示来说略显繁琐。方案二:液晶显示方式。液晶显示效果

14、出众,可以运用菜单项来方便操作,比较简单,所以,最后选择液晶显示方案。显示电路图如图2.2所示。 图2.2 液晶显示电路2.3.4 实时时钟电路设计图2.3是 DS1302与单片机的连接,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。图2.3 DS1302时钟电路2. 3. 5 功能按钮设计当按钮被按下时,该按钮对应的I/O口被拉为低电平

15、,松开时按钮对应的I/O口由内部的上拉电阻将该I/O拉为高电平,如图2.5所示: 图2.5 键盘电路设计 3 整体电路图4 心得体会对于本次课程设计结合上学期所学习的单片机的基础知识,将硬件和软件的知识全都联系起来,硬件方面有电路的连接和芯片的选取,软件方面有程序的设计和编写。本次课程设计是我遇到的较难的课程设计,是以前没有接触过如此复杂的硬件电路以及软件编程,在软、硬件设计和调试中遇到了不少的困难,在同学的帮助才逐一克服了难题,学习到了不少的专业知识。在整个设计过程之前,我已经在网上找了相关方面的资料,万事开始难,一开始不知道从哪里下手。后来慢慢学会分析系统,将系统模块化,各个模块可以在软件

16、或者硬件上实现。在确保各个模块的硬件电路和与之相搭配的程序能够正常工作后在把它们组成一个系统。在今后的日子里,我会进一步加强自己的动手能力,丰富自己的知识面,不过总的来说这次单片机课设还是让我学到非常多的东西,也增加了我的动手机会,希望自己以后更加严格的要求自己,做到更好。 参考文献1 谢自美. 电子线路设计实验测试(第三版).武汉:华中科技大学出版社2 李群芳. 单片微型计算机与接口技术(第3版).电子工业出版社,20083 刘教瑜. 单片机原理及应用.武汉理工大学出版社,20114 张东亮. 单片机原理与应用.人民邮电出版社,20095 郭天祥. 51单片机C语言教程.电子工业出版社附件万

17、年历源程序#include#include#include#define uint unsigned int#define uchar unsigned char/*LCD*sbit LCDRS=P20; /LCD数据/命令选择端sbit LCDRW=P21;sbit LCDEN=P22; /LCD使能新号端sbit Q=P13;/*DS1302*sbit IO=P10;/1302数据线sbit SCLK=P11; /1302时钟线sbit RST=P12; /复位uint num=0;uchar *week=SUN,*,MON,TUS,WEN,THU,FRI,SAT;uchar Date=D

18、ate: 2000-00-00 ;uchar Date116=SSS ;uchar Time=Time: *00:00-00* ;uchar date_time7; /从ds1302读取的当前日期时间/=延时=void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*向1302写数据*void write_ds1302(uchar dat)uchar i;for(i=0;i= 1;/*从1302读数据*uchar read_ds1302()uchar i,b=0x00;for(i=0;i8;i+)b |= _crol_(uchar)

19、IO,i);SCLK=1;delay(1);SCLK=0;return b/16*10+b%16; /与BCD码转换/*从指定位置读数据*uchar read_data(uchar addr)uchar dat;RST=0;SCLK=0;RST=1;write_ds1302(addr);dat=read_ds1302();SCLK=1;RST=0;return dat;/*读取当前日期时间*void read_date_time()uchar i,addr=0x81;for(i=0;i7;i+)date_timei=read_data(addr);addr+=2;/-LCD写指令-void l

20、cd_write_com(uchar com)LCDRS=0; /RS为0时,写指令,RS为1时,写数据P0=com;delay(5);LCDEN=1;delay(5);LCDEN=0;/-LCD写数据-void lcd_write_data(uchar dat)LCDRS=1;P0=dat;delay(5);LCDEN=1;delay(5);LCDEN=0;/-LCD初始化-void lcd_init()LCDEN=0;lcd_write_com(0x38); /LCD显示模式设置lcd_write_com(0x0c); /LCD显示开/关及光标设置lcd_write_com(0x06);

21、/当写一个字符后地址指针加1,且光标加1lcd_write_com(0x01); /显示清屏/-设置液晶显示位置-void set_lcd_pos(uchar p)lcd_write_com(p | 0x80);/-液晶显示程序-void lcd_print(uchar p,uchar *s)set_lcd_pos(p);for(num=0;num16;num+)lcd_write_data(snum);delay(10);/-日期时间转换-void format_datetime(uchar d,uchar *p)p0=d/10+0;p1=d%10+0;/-主程序-void main()ui

22、nt k=0;LCDRW=0;lcd_init();read_date_time();format_datetime(date_time6,Date+8); /年月日format_datetime(date_time4,Date+11);format_datetime(date_time3,Date+14);strcpy(Date1,weekdate_time5);format_datetime(date_time2,Time+7); /时间转换format_datetime(date_time1,Time+10);format_datetime(date_time0,Time+13);lcd

23、_print(0x00,Date);while(1)read_date_time();format_datetime(date_time6,Date+8); /年月日format_datetime(date_time4,Date+11);format_datetime(date_time3,Date+14);strcpy(Date1,weekdate_time5);format_datetime(date_time2,Time+7); /时间转换format_datetime(date_time1,Time+10);format_datetime(date_time0,Time+13);if( Q=0)k=k+1; switch(k%3) case 0: lcd_print(0x00,Date); break;case 1: lcd_print(0x00,Time); break;case 2: lcd_print(0x00,Date1); break; 本科生课程设计成绩评定表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日14

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁