具有记忆功能的电子时钟.docx
- 文档编号:23887592
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:66
- 大小:528.48KB
具有记忆功能的电子时钟.docx
《具有记忆功能的电子时钟.docx》由会员分享,可在线阅读,更多相关《具有记忆功能的电子时钟.docx(66页珍藏版)》请在冰豆网上搜索。
具有记忆功能的电子时钟
合肥学院
计算机科学与技术系
微机原理与接口技术
课程设计报告
2009~2010学年第一学期
课程
微机原理与接口技术
课程设计名称
具有记忆功能的电子时钟
学生姓名
张利利
学号
0704012005
专业班级
计本
(2)班
指导教师
龙夏、何立新老师
2010年3月
一、题义分析及解决方案
1、题意需求分析
根据本设计给定的内容和要求可知:
本实验要使用可编程的输入、输出接口8279A芯片来驱动一个八位的LED数码管显示器,本实验中LED驱动采用动态扫描方式显示,共用到八个数码管显示器,在显示的过程中是逐个点亮的,分别用来显示时钟的:
时位-分位-秒位。
显示的初值设置为:
23:
59:
59,每隔一秒,显示值改变一次。
其中一秒的控制可以通过循环执行扫描子程序来实现的。
在显示的过程中,通过键盘的设置可以进行时间的调整和暂停计数。
本实验中由于要实现断电存储功能故还需用到存储芯片AT24C02,它与CPU之间的通信时通过接口8255A芯片实现的,通过对SCL和SDA引脚与8255A的PC0和PC1引脚相连实现对电压的拉高、拉低,从而实现计时时钟的定时存储。
当断电重新启动后,电子时钟要求能够按照断电前的时间继续计数。
根据要求提出以下问题:
(1)如何实现LED的动态扫描显示
(2)8279A如何工作
(3)1S如何控制
(4)存储芯片如何存储数据
2、解决问题的思路及方法
1)硬件部分
本实验采用8279A芯片、LED发光二极管、十六进制小键盘、8255A芯片、AT24C02存储芯片,由于8279A芯片的输出电流与LED不匹配,需采用74L240驱动电流。
8279芯片是一通用可编程键盘显示接口器件,可以实现对键盘/显示器的自动扫描,以减轻CPU负担。
与LED数码管、驱动器、按键可组成一个最基本键盘显示系统。
具有显示稳定,程序简单,不会出现误动作等特点。
AT24C02是记忆芯片,不能与CPU直接相连,要通过接口8255A芯片与CPU实现通信。
2)软件部分
初始值设置:
在程序的数据段中定义秒、分、时的初值,并在LED上显示。
计时:
上电后,数码管显示起始时间为23:
59:
59,通过键盘按键实现输入,当显示了1s时,秒位加1,并判断秒位是否为60,若不是,则直接显示时间;若是,则将秒位置0,分位加1,接着判断分位是否为60,若不是,则直接显示;若是,则将分位置0,时位加1,然后判断时位是否为24,若不是,则直接显示;若是,则将所有时间清零,重新计时。
如此循环。
1秒时间的设定:
本设计使用软件方法实现时钟的各位数值形成和计时控制,其一秒长度可通过执行一个循环程序,通过循环次数和循环嵌套的层数来调节计时时间的长短。
时间修改:
在小键盘上,A键定义为置电子时钟初值键,B键位暂停或起始键,D、E、F分别为修改时、分、秒的相应两位。
时间的存储:
本设计中每一秒对数据进行一次存储,在程序刚开始调用读数据子程序读出存储时间,若无存储时间则从初值23-59-59计时。
二、硬件设计
1、选择芯片
(1)8259A
1)8279A在本设计中的作用:
在本设计中8279A芯片控制键盘输入和LED显示。
2)8279A的功能分析:
1、8279A主要特性
8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。
可与任何8位机接口。
8279A芯片包括键盘输入和显示输出两个部分。
若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。
8279可编程键盘显示器接口芯片具有动态显示驱动电路简单、不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点.当今已成为设计计算机应用系统,特别是实时性较高的测控系统的首选器件之一。
2、8279A的内部结构(如图2-1)
图2-18279A的内部结构
图中,IRQ:
中断请求输出线,DB0~DB7:
双向数据总路线(传送命令、数据、状态)。
/RD、/WR:
读写控制输入端。
RESET:
复位输入端;CLK;时钟输入端
:
片选。
C和/D(A0):
片内寄存器选址。
OUTA0~A1、OUTB0~B3:
8位显示输出端,/BD:
熄灭显示输出端,SL0~SL3:
公用扫描输出线。
RL0~RL7:
键盘回馈输入线。
SHIFT:
抵挡键输入线。
CNTL/STB:
控制/选通输入线。
另外,8279的键盘接口部分内部有一个8×8位先进先出的堆栈(FIFO),用来存放键盘输入代码,显示器接口部分内部有一个16×8位显示RAM,用来显示段数据,能为16位LED显示器(或其它显示器)提供多路扫描接口。
3、8279A的引脚信号和功能
8279可编程键盘显示器接口芯片具有动态显示驱动电路不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。
8279是可编程的键盘/显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。
该芯片能自动消抖并具有双键锁定保护功能。
显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。
4、8279的命令字及其格式
8279有三种工作方式:
键盘工作方式、显示工作方式和传感器工作方式
键盘工作方式:
双键互锁和N键轮回。
双键互锁是指当有两个以上按键同时按下时,只能识别最后一个被释放的按键,并把其键值送入内部FIFORAM中。
N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFORAM中。
显示工作方式:
是指CPU输入至8279内部FIFORAM的数据的输出格式,有8个字符左端入口显示、16个字符左端入口显示、8个字符右端入口显示、16个字符右端入口显示四种方式。
传感器方式:
是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。
选择不同的工作方式均是通过CPU对8279送入命令来进行控制。
8279共有8种命令,命令寄存器为8位,其中D7~D5为命令特征位,D4~D0为命令的控制位。
CPU对8279写入的命令数据为命令字,读出的数据为状态字。
8279共有八条命令,其功能及命令字格式分述如下。
(1)键盘/显示方式设置命令字
命令格式:
D7D6D5D4D3D2D1D0
000DDKKK
其中:
D7、D6、D5=000为方式设置命令特征位。
DD(D4、D3):
用来设定显示方式,如表2-1所示。
D4
D3
显示方式
0
0
8个字符显示,左端入口
0
1
16个字符显示,左端入口
1
0
8个字符显示,右端入口
1
0
16个字符显示,右入口
表2-1显示方式选择
所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。
KKK(D2、D1、D0):
用来设定七种键盘/显示扫描方式,如表2-2所示。
D2
D1
D0
键盘/显示扫描方式
0
0
0
编码扫描键盘,双键锁定
0
0
1
译码扫描键盘,双键锁定
0
1
0
编码扫描键盘,N键轮回
0
1
1
译码扫描键盘,N键轮回
1
0
0
编码扫描传感器矩阵
1
0
1
译码扫描传感器矩阵
1
1
0
选通输入,编码显示扫描
1
1
1
选通输入,译码显示扫描
表2-2键盘/显示扫描方式
(2)时钟编程命令
命令格式:
D7D6D5D4D3D2D1D0
001PPPPP
其中:
D7、D6、D5=001为时钟命令特征位。
PPPPP(D4、D3、D2、D1、D0)用来设定外部输入CLK时钟脉冲的分频系数N。
N取值范围为2~31。
如CLK输入时钟频率为2MHZ,PPPPP应被置为10100(N=20),才可获得8279内部要求的100KHZ的时钟频率。
(3)读FIFO/传感器RAM命令
命令格式:
D7D6D5D4D3D2D1D0
010AIXAAA
其中:
D7、D6、D5=010为读FIFO/传感器RAM命令特征位。
该命令字只在传感器方式时使用。
在CPU读传感器RAM之前,必须用这条命令来设定所读传感器RAM中的地址。
AAA(D2、D1、D0)为传感器RAM中的八个字节地址。
AI(D4)为自动增量特征位。
当AI=1时,每次读出传感器RAM后地址自动加1使地址指向下一个存储单元。
这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。
在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。
(4)读显示RAM命令
命令格式:
D7D6D5D4D3D2D1D0
011AIAAAA
其中:
D7、D6、D5=011为读显示RAM命令字的特征位。
该命令字用来设定将要读出的显示RAM地址。
AAAA(D3、D2、D1、D0)用来寻址显示RAM中的存储单元。
由于位显示RAM中有16个字节单元,故需要4位寻址。
AI(D4)为自动增量特征位。
AI=1时,每次读出后地址自动加1,指向下一地址。
(5)写显示RAM命令
命令格式:
D7D6D5D4D3D2D1D0
100AIAAAA
其中:
D7、D6、D5=100为写显示RAM命令字的特征位。
在写显示RAM之前用这个命令字来设定将要写入的显示RAM地址。
AAAA(D3、D2、D1、D0)为将要写入的显示RAM中的存储单元地址。
AI(D4)为自动增量特征位。
AI=1时,每次写入后地址自动加1,指向下一次写入地址。
(6)显示禁止写入/消隐命令
命令格式:
D7D6D5D4D3D2D1D0
101XIW/AIW/BBL/ABL/B
其中:
D7、D6、D5=101为显示禁止写入/消隐命令特征位。
IW/A、IW/B(D3、D2)为A、B组显示RAM写入屏蔽位。
当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。
因此,从CPU写入显示器RAM数据时,不会影响A的显示。
这种情况通常在采用双4位显示器时使用。
因为两个四位显示器是相互独立的。
为了给其中一个四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。
BL/A、BL/B(D1、D0)为消隐设置位。
用于对两组显示输出消隐。
若BL=1,对应组的显示输出被消隐。
当BL=0,则恢复显示。
(7)清除命令
命令格式:
D7D6D5D4D3D2D1D0
110CDCDCDCFCA
其中:
D7、D6、D5=110为清除命令特征位。
清除显示RAM方式如表2-3所示。
D4
D3
D2
清除方式
1
0
×
将全部显示RAM清为00H
1
1
0
将全部显示RAM置为20H,A组输出0010,B组输出0000
1
1
1
将全部显示RAM置为FFH
0
×
×
D0=0不清除,D0=1按上述方法清除
表2-3显示RAM清除方式
CF(D1)用来置空FIFO存储器,当CF=1时,执行清除命令后,FIFORAM被置空,使INT输出线复位。
同时,传感器RAM的读出地址也被置为0。
CA(D0)为总清的特征位。
它兼有CD和CF的联合效能。
在CF=1时,对显示的清除方式由D3、D2的编码决定。
显示RAM清除时间约需160us。
在此期间状态字的最高位Du=1,表示显示无效。
CPU不能向显示RAM写入数据。
(8)结束中断/错误方式设置命令
命令格式:
D7D6D5D4D3D2D1D0
111EXXXX
其中:
D7、D6、D5=111为该命令的特征位。
此命令有两种不同的作用。
①作为结束中断命令。
在传感器工作方式中使用。
每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻辑,使INT变高,向CPU请求中断,并且禁止写入传感器RAM。
此时,若传感器RAM读出地址的自动递增特性没有置位(AI=0),则中断请求INT在CPU第一次从传感器RAM读出数据时就被清除。
若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除INT,而必须通过给8279写入结束中断/错误方式设置命令才能使INT变低。
因此,在传感器工作方式中,此命令用来结束传感器RAM的中断请求。
②作为特定错误方式设置命令。
在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。
这种方式的特点是:
在8279的消抖周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和禁止写入FIFORAM。
上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。
因此,写入命令字时唯一的要求是使数据选择信号A0=1。
5、8279的状态字及其格式
8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFORAM中的字符数和有无错误发生。
其格式为:
D7D6D5D4D3D2D1D0
DUS/EOUFNNN
其中:
Du(D7)为显示无效特征位。
当Du=1表示显示无效。
当显示RAM由于清除显示或全清命令尚未完成时,Du=1,此时不能对显示RAM写入。
S/E(D6)为传感器信号结束/错误特征位。
该特征位在读出FIFO状态字时被读出。
而在执行CF=1的清除命令时被复位。
当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个传感器信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下错误。
O、U(D5、D4)为超出、不足错误特征位。
对FIFORAM的操作可能出现两种错误:
超出或不足。
当FIFORAM已经充满时,其它的键盘数据还企图写入FIFORAM,则出现超出错误,超出错误特征位O(D5)置1;当FIFORAM已经置空时,CPU还企图读出,则出现不足错误,不足错误特征位U(D4)置1。
F(D3)表示FIFORAM中是否已满标志,若F=1表示已满。
NNN(D2、D1、D0)表示FIFORAM中的字符数据个数。
6、数据输入/输出格式
对8279输入/输出数据不仅要先确定数据地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。
(1)键盘扫描方式数据输入格式
键盘的行号、列号及控制键格式如下:
控制键CNTL、SHIFT为单独的开关键。
CNTL与其它键连用作特殊命令键,SHIFT可作上、下挡控制键。
(2)传感器方式数据输入格式
此种方式8位输入数据为RL0~RL7的状态。
格式如下:
D7D6D5D4D3D2D1D0
RL7
RL6
RL5
RL4
RL3
RL2
RL1
RL0
3)8279A的技术参数
8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFORAM中的字符数和有无错误发生。
其格式为:
D7D6D5D4D3D2D1D0
DUS/EOUFNNN
其中:
Du(D7)为显示无效特征位。
当Du=1表示显示无效。
当显示RAM由于清除显示或全清命令尚未完成时,Du=1,此时不能对显示RAM写入。
S/E(D6)为传感器信号结束/错误特征位。
该特征位在读出FIFO状态字时被读出。
而在执行CF=1的清除命令时被复位。
当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个传感器信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下错误。
O、U(D5、D4)为超出、不足错误特征位。
对FIFORAM的操作可能出现两种错误:
超出或不足。
当FIFORAM已经充满时,其它的键盘数据还企图写入FIFORAM,则出现超出错误,超出错误特征位O(D5)置1;当FIFORAM已经置空时,CPU还企图读出,则出现不足错误,不足错误特征位U(D4)置1。
F(D3)表示FIFORAM中是否已满标志,若F=1表示已满。
NNN(D2、D1、D0)表示FIFORAM中的字符数据个数。
2、选择芯片
(2)74LS138译码器
1)74LS138译码器在本设计中的作用
扫描计数器采用编码工作方式
2)74LS138译码器的功能分析
74LS138是3/8译码器,即对3个输入信号进行译码。
得到8个输出状态。
G1,G2A,G2B,为数据允许输出端,G2A,G2B低电平有效。
G1高电平有效。
A,B,C为译码信号输出端,Y0~Y7为译码输出端,低电平有效。
图2-274LS138管脚图图2-374LS138功能表
3)74LS138译码器的技术参数
电源电压:
7V
输入电压:
7V
工作环境温度:
0~70℃
贮存温度:
-65~150℃
3、选择芯片(3)74LS240
1)74LS240译码器在本设计中的作用
本设计实验中主要是为增加LED的驱动电流
2)74LS240译码器的功能分析
74LS240TTL八反相三态缓冲器/线驱动器
引出端符号:
1A,2A:
输入端
/1G,/2G:
三态允许端(低电平有效)
1Y~8Y:
输出端
逻辑图:
图2-474LS240译码器逻辑图
3)74LS240译码器的技术参数
电源电压:
7V
输入电压:
5.5V
输出高阻态时高电平电压:
5.5V
工作环境温度:
0~70℃
存储温度:
-65~150℃
4、选择芯片(4)小键盘
1)小键盘在本设计中的作用
本设计中,小键盘用于输入二进制数字。
2)小键盘的功能分析
通常使用的键盘是矩阵结构的。
对于4×4=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。
如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。
如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。
矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。
第0列第1列第2列第3列
第0行
第1行
第2行
第3行
图2-5键盘矩阵图
行扫描法识别按键的原理如下:
先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。
这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。
如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。
此后,再将第1行接低电平,检测是否有变为低电平的列线。
如此重复地扫描,直到最后一行。
在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。
实际应用中,一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。
为此,先使所有行线为低,然后检查列线。
这时如果列线有一位为0,则说明必有键被按下,采用扫描法可进一步确定按键的具体位置。
5、选择芯片(5)LED
1)LED在本设计中的作用
LED为发光二极管(Light-EmittingDiode),在本设计中采用7段数字发光二级管,做为终端显示,主要是作为动态显示计时的秒个位、秒十位、分个位、分十位、时个位、时十位的值。
2)LED的功能分析
LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。
将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。
有段选码和位选码确定数字1~8的输出并在延时程序中保持复位。
它是一种当外加电压超过额定电压时发生击穿,并因此而产生可见光的器件。
这种数码管是有7段或8段笔画显示器组成一个字符而形成的。
图2-6LED数码管内部结构
dp
g
f
e
d
c
b
a
显示数码
二进制编码
0
0
1
1
1
1
1
1
0
3FH
0
0
0
0
0
0
1
1
1
O6H
0
1
0
1
1
0
1
1
2
5BH
0
1
0
0
1
1
1
1
3
4FH
0
1
1
0
0
1
1
0
4
66H
0
1
1
0
1
1
0
1
5
6DH
0
1
1
1
1
1
0
1
6
7DH
0
0
0
0
0
1
1
1
7
07H
0
1
1
1
1
1
1
1
8
7FH
0
1
1
0
1
1
1
1
9
6FH
表2-4LED显示管段选码编码表
(1)静态:
数码管显示过程持续得到信号,与数码管接口的I/O口线为专用。
特点是无闪烁,元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。
(2)动态:
数码管显示过程轮流得到信号,与各数码管接口的I/O口线为共用。
特点是有闪烁,元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂(有多个LED时尤为突出)。
3)LED的技术参数
消耗功率PM=150mW
最大工作电流IFM=100mA
正常工作电流IF=40mA
正向压降VF≤1.8V
燃亮电压为5V
共阴极LED的PM=300mW,IFM=200mA,IF=60mA,VF≤1.8V,VR≥5V,发红光。
发光颜色有:
红色光、黄色光、绿色光、红外光等。
发光二极管应用电路有四种,即直流驱动电路、交流驱动电路、脉冲驱动电路、变色发光驱动电路。
PCW
IF
Vr
Ir
If
^P
对应型号
散射颜色
BT235-2
70
25
5
≥1.5
≤2.5
200
SEL-10
红色
BT1441529
100
40
5
≥0.5
≤2.5
565
绿色
BT1341529
100
40
5
≥0.5
≤2.5
585
蓝色
表2-5LED技术参数
6、选择芯片(6)8255A
1)8255A在本设计中的作用
作为对AT24C02芯片进行操作的主要部件,负责向存储器AT24C02发送操作指令实现相关功能。
例如:
初始化AT24C02、定时传送显示器的时间等,和8086系统传送数据信息等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 具有 记忆 功能 电子 时钟