电子日历课程设计报告

上传人:仙*** 文档编号:29496565 上传时间:2021-10-07 格式:DOC 页数:10 大小:860.02KB
收藏 版权申诉 举报 下载
电子日历课程设计报告_第1页
第1页 / 共10页
电子日历课程设计报告_第2页
第2页 / 共10页
电子日历课程设计报告_第3页
第3页 / 共10页
资源描述:

《电子日历课程设计报告》由会员分享,可在线阅读,更多相关《电子日历课程设计报告(10页珍藏版)》请在装配图网上搜索。

1、湖南科技大学信息与电气工程学院单片机课程设计报告题 目: 电子日历 专 业: 电子信息工程 班 级: 2班 姓 名: ABC 学 号: * 指导教师: * 任务书题 目电子日历 时 间安排2012年6月116月22日(第17、18周) 目 的:通过单片机原理与应用这门课的课程设计,学生应能对MCS-51单片机有一个全面的认识,掌握以MCS-51单片机为核心的电子电路的设计方法和应用技术。 1.进一步掌握8279键盘显示电路的编程方法。 2.进一步掌握定时器的使用和编程方法。 3.进一步掌握中断处理程序的编程方法。 要 求:(1) 利用8031作为主控器组成一个电子日历和电子钟。(2) 利用LE

2、D分别显示当前时间和日历。(3) 利用尽可能少的开关实现:校正日历和时间。总体方案实现: 用8031作为主控制器,并采用8279作为辅助芯片,控制键盘、LED数码管等的操作和显示。指导教师评语: 评分等级:( ) 指导教师签名: 2一、课程设计的目的通过单片机原理与应用这门课的课程设计,学生应能对MCS-51单片机有一个全面的认识,掌握以MCS-51单片机为核心的电子电路的设计方法和应用技术。1.进一步掌握8279键盘显示电路的编程方法。 2.进一步掌握定时器的使用和编程方法。 3.进一步掌握中断处理程序的编程方法。 二、实验要求(1) 利用8031作为主控器组成一个电子日历和电子钟。(2)

3、利用LED分别显示当前时间和日历。利用实验机上提供的8279键盘电路,数码显示电路,设计一个电子钟(日历),用小键盘控制电子钟(日历)的启停及初始值的预值。 电子钟做成如下两种格式(按F键两种格式可以切换): XX -XX-XX 由左向右分别为: 时、分、秒 XX -XX-XX 由左向右分别为: 年、月、日 1.C键:清除,显示00-00-00。 2.A键:启动,电子钟(日历)计时。 3.D键:停止,电子钟(日历)停止计时。 4.B键:设置初值:由左向右依次输入预置的时、分、秒(年、月、日)值,同时应具有判断输入错误的能力,若输入有错,则显示: 00-00-00 按B键即可重新输入预置值: 5

4、.F键:实现电子钟和日历的切换。 6.E键:程序退出。三、设计方案的描述本实验采用8031作为主控制器,并采用8279作为辅助芯片,控制键盘、LED数码管等的操作和显示。8279主要特点:(1)、可同时进行键盘扫描及文字显示;(2)、键盘扫描模式(Scanned Keyboard Mode);(3)、传感器扫描模式(Scanned Sensor Mode);(4)、激发输入模式(Strobe Input Entry Mode);(5)、8乘8键盘FIFO(先进先出);(6)、具有接点消除抖动,2键锁定及N键依此读出模式;(7)、双排8位数或双排16位数的显示器;(8)、右边进入或左边进入。16

5、位字节显示存储器。 8031芯片图如下: 8279芯片: 四、硬件原理图硬件原理图如下:PCB图如下:五、基本原理说明8279显示部分按扫描的方式工作。可以显示8或16位LED显示块。8279电路工作原理:1.I/O控制及数据缓冲器数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据;I/O控制线是CPU对8279进行控制的引线。CS是8279的片选信号,CS=0时,8279才被允许读出或写入信息。WR、RD为来自CPU的控制信号。A0用于区别信息特性:A0=1时,表示数据缓冲器输入为指令、输出为状态字;A=0时,输入、输出皆为数据。2.控制与定时寄存器及定时控制控

6、制与定时寄存器用来寄存键盘及显示的工作方式,以及由CPU编程的其它操作方式。这些寄存器一旦接受并锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。定时控制包含基本记数键。首级计数器是一个可编程的N级计数器。N可以231之间由软件编程,以便从外界时钟CLK分频得到内部所需要的100KHZ时钟。然后再经过分频为键盘扫描提供适当的逐行扫描频率和显示扫描时间。3.扫描计数器扫描计数器有两种工作方式。按编码方式工作时,计数器作二进制记数。4位记数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供扫描线;按译码方式工作时,扫描计数器的最低二位被译码后,从SL0SL3输出。

7、因此,SL0SL3提供了4中取1的扫描译码。4.回复缓冲器、键盘去抖及控制来自RL0RL3的8根回复线的回复信号,由回复缓冲器缓冲并锁存。在键盘工作方式中,回复线作为行列式键盘的行列输入线。在逐行列输入时,在逐行列扫描时,回复线用来搜索每一行列中闭合的键。当某一键闭合时,去抖电路被置位,延时等待10ms后,再检验该键是否继续闭和,并将该键的地址和附加的移位、控制状态一起形成键盘数据被送入8279内部FIFO(先进先出)存储器。键盘数据格式如下: D7 D6 D5D4 D3 D2 D1 D0控制 移位 扫描 回复控制和移位(D6、D7)的状态由两个独立的附加开关决定,而扫描(D5、D4、D3)和

8、回复(D2、D1、D0)则是被按键置位的数据。D5、D4、D3来自动扫描计数器,是按下键的行列编码,而(D7D7D7)则来自行/列计数器,它们是根据回复信号而确定的行/列编码。在传感器开关状态矩阵方式中,回复线的内容直接被送往和相应的传感器RAM(即FIFO存储器)。在选通输入方式中,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储5.FIFO/传感器及其状态寄存器FIFO/传感器RAM是一个双重功能的88RAM。在键盘或选通方式工作时,它是FIFO存储器,其输入或读出遵循先入先出的原则。FIFO状态寄存器用于存放FIFO的工作状态。例如,RAM是满还是空;其中存有多少数据;是否

9、操作出错等。当FIFO存储器不空,状态逻辑将产生IRQ=1信号向CPU申请中断。在传感器矩阵方式工作时,这个存储器以是传感器不是存储器。它存放着传感器矩阵中的每一个传感器状态。在此方式中,若检索出传感器的变化,IRQ信号变为高电平,向CPU申请中断。6.显示RAM和显示地址寄存器显示RAM用来存储显示数据。容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA03和OUTB03可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定

10、的显示状态。显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。六、程序流程图七、源程序清单/-8279键盘显示实验(电子秒表)-/*利用实验机上提供的8279键盘电路,数码显示电路,设计一个电子钟(日历),用小键盘控制电子钟(日历)的启停及初始值的预值。 电子钟做成如下两种格式(按F键两种格式可以切换): XX -XX-XX 由左向右分别为: 时、分、秒 XX -XX-XX 由左向右分别为: 年、月、日 1.C键:清除,显示00-00-00. 2.A键:启动,电子钟(日历)计时 3.D键:停止,电子钟(日历)停止计时 4.B键:

11、设置初值:由左向右依次输入预置的时、分、秒(年、月、日)值,同时应具有判断输入错误的能力,若输入有错,则显示: 00-00-00 按B键即可重新输入预置值: 5.F键:实现电子钟和日历的切换 5.E键:程序退出。*/7/-头文件引用-#include#include#include/-宏声明-#define D8279 XBYTE0xF238 /8279 数据口地址#define C8279 XBYTE0xF239 /8279 状态/命令口地址#define uchar unsigned char#define uint unsigned int#define TimeDisp 1#defin

12、e DateDisp 0/-变量定义-uchar idata time = 0,0,0,12; /10毫秒,秒,分,十uchar idata day3 = 18,6,8;uchar idata diss8=0x20,0x20,0,0,0,0,0,0;/显示缓冲区uchar code ledseg = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5E,0x79,0x71, 0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87, 0xFF,0xEF,0xF7,0xFC,0xB9,0

13、xDE,0xF9,0xF1,0x00,0x40;/LED显示常数表bit bdata sbz,wbz,kbz; /定义秒标志、键值合法标志、读键标志bit bdata flag = TimeDisp;/-取键值函数-uchar getkey() uchar key; if(C8279&0x07)=0x00) kbz=0; /无键按下,置标志 else kbz=1; C8279=0x40; /读FIFO RAM命令 key=D8279; key=(key&0x3f); /取键盘数据低6位 return(key); /-显示函数- void disled(d) uchar idata *d;uch

14、ar i;C8279=0x90;for(i=0;i0;i-) do getkey(); /读键盘 while(kbz=0);/无键输入,则再读 if(getkey()9)|(getkey()0)/判断输入是否大于9,小于0 wbz=0; /置非法输入标志 return; else wbz=1; /置合法输入标志 if(i = 6)|(i = 3) i-; dissi-1=getkey(); disp(); /显示输入的字符 else dissi-1=getkey(); disp(); /显示输入的字符 /-时间清零子程序-void cleart() TR1=0; /关计数器time0=0; /

15、10毫秒清零time1=0; /秒清零time2=0; /分钟清零time3=0; /小时清零disms(); /显示毫秒sbz=1; /置秒标志/-设置初值子程序-void sett() getword(); /读数 if(wbz=1) /判断输入合法性 if(flag = 1) time3=(diss7*10+diss6); if(time324)/判断输入小时值 24 time2=(diss4*10+diss3); if(time260)/判断输入分钟数 60 time1=(diss1*10+diss0); if(time160)/判断输入秒值 60 ; else cleart(); /

16、时间清零 else cleart(); /时间清零 else cleart(); /时间清零 else day2=(diss7*10+diss6); if(day232)/判断输入小时值 24 day1=(diss4*10+diss3); if(day113)/判断输入分钟数 60 day0=(diss1*10+diss0); if(day0100)/判断输入秒值 60 ; else cleart(); /时间清零 else cleart(); /时间清零 else cleart(); /时间清零 else cleart(); /时间清零 display();/显示时间/-主程序-void m

17、ain() uint counter = 0;first(); /初始化 while(1) /循环 counter+; if(counter = 10000 ) /flag = !flag; counter = 0; getkey(); /读键盘 if(kbz=1) /判断是否有键输入 switch(getkey() case 0x0c: cleart(); /输入键是C,转CLEART break; case 0x0a: TR1=1; /输入键是A,电子钟计时 break; case 0x0d: TR1=0; /输入键是D,电子钟停止计时 break; case 0x0b: TR1=0; /

18、输入键是B,转SETT sett(); break; case 0x0e: _nop_();/输入键是E, case 0x0f: flag = !flag;break; while(1)/等待回到监控 else if(sbz=1) display();/显示时间 sbz=0;/清标志 10 八、心得体会 通过这次单片机电子日历的课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。这个设计过程中,我们通过在原有的系统进行了改进,使之增添了年、日等的三个显示功能,使之成为一个更加适用,功能更加完备的属于自己的一个日历系统。设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。收获颇多,达到了实验的目的。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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