单片机8279电子日历课程设计报告

上传人:M****1 文档编号:500785850 上传时间:2022-12-15 格式:DOC 页数:10 大小:860KB
返回 下载 相关 举报
单片机8279电子日历课程设计报告_第1页
第1页 / 共10页
单片机8279电子日历课程设计报告_第2页
第2页 / 共10页
单片机8279电子日历课程设计报告_第3页
第3页 / 共10页
单片机8279电子日历课程设计报告_第4页
第4页 / 共10页
单片机8279电子日历课程设计报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机8279电子日历课程设计报告》由会员分享,可在线阅读,更多相关《单片机8279电子日历课程设计报告(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数码管等的操作和显示。指导教师评语: 评分等级:( ) 指导教师签名: 1一、课程设计的目的通过单片机原理与应用这门课的课程设计,学生应能对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键:程序退出。*/0/-头文件引用-#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,0xDE,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 kb

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

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号