1、倒计时数字钟综述合肥学院计算机科学与技术系课程设计报告20082009学年第一学期课程 微型计算机原理与接口技术 课程设计名称倒计时数字钟学生姓名杨和平学号 0604031040专业班级网络工程(1)班指导教师 张向东 教 授 2009年 2月倒计时数字钟一. 题义分析及解决方案:用STAR ES598PCI单板开发机设计一个与七段LED显示器,显示一个倒计时时钟,显示初值为60分00秒,每隔一秒改变一次显示值,60秒为一分钟,LED显示器显示分、秒的动态值。1. 题义需求分析:根据题意设计一个接口和七段LED显示器,本设计能显示一个具有固定初值的倒计时钟,能每隔固定时间间隔(1s),动态刷新
2、显示值,并且能用LED显示器显示分秒的动态值,需要解决如下问题:1) 选择怎样的接口问题2)初值的设置和输入问题3)计数值与显示码的转换及动态值显示问题4)相关芯片与译码器的选择问题2解决问题方法及思路:1).硬件部分:选择8279芯片和七段LED显示器与键盘相连,8279的扫描输出信号经译码器译码,三根输出线Y0Y7作为矩阵键盘的行扫描信号,返回信号RL0RL7与矩阵键盘的8个列输出信号相连接,扫描输出信号经另一译码器产生的8个输出信号作为8个显示器的宣统信号,即位选信号,轮流刷新8个显示器。2).软件部分:根据题义要求,可以设立一个段码表,用来数字09的段码,根据这些段码可以判定LED显示
3、器选用的共阳极还是共阴极方式;同时还要设置一个显示缓冲区以动态刷新的方式,显示四位数字表示的时间,设置好8279的工作方式,运行显示程序,将缓冲区中的数字通过LED显示器显示出来,待四个数字都显示出来后,保持一秒钟的显示,然后显示下一个时间值;为了达到倒计时时钟显示,还要设定一个修改缓冲区是在内存中,由键盘键入的初值就存在这里,修改时间值仍然是在内存的缓冲区中修改,然后将这个修改后的时间值送到8279的FIFO RAM中显示出来。二 硬件选择分析1、选择芯片82791)8279在本设计中的作用:8279是专用键盘、数码管显示接口芯片,它可以自动维持7段显示器的刷新,不需要主机的干预,并且可以同
4、时完成矩阵键盘的扫描,延时去抖和键码识别等功能。8279通过扫描输出信号确定键盘矩阵的行,返回信号确定矩阵的列,确定数字后,通过译码器获得8个显示器的选通信号,即位选通信号。2)芯片8279的功能分析:A. 8279的内部结构框图如下所示:(1)数据缓冲器它连接内、外总线,暂时CPU与8279芯片之间传送的命令、数据或状态。(2)I/O控制它用于控制信息的流向及区分信息的特征。CS=1时,由RO或WR控制从8279读出或向8279写入;A0=0时,选中数据寄存器,输入/输出均为数据。A0=1时,选中命令、状态寄存器,输入时位命令,输出时位状态。(3)控制与定时寄存器它用来寄存键盘和显示的工作方
5、式,以及由CPU编程的其他操作方式,并通过译码产生相应的控制信号,完成规定的控制功能。 图2_1:8279的内部结构框图 (4)定时控制它对外部时钟信号CLK分频至内部所需要的100kHz时钟。(5)扫描计数器它可根据编程命令按编码或译码方式工作。编码方式:4位计数器按二进制计数,计数状态从扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供16个扫描信号。译码方式:扫描计数器最低两位被译码后从SL0SL3输出,可直接作为键盘和显示器扫描信号。此时键盘矩阵为48,显示字符为4位。(6)键盘去抖与控制键盘去抖电路:在键盘扫描方式中,当有键闭合时,按命令指定方式去抖动后读入键值。控制电路
6、:按命令指定方式控制去抖电路的工作过程,以及对返回信号进行处理。(7)返回缓冲器它锁存来自RL0RL7的回复信号,在键盘扫描方式中,返回线与键盘矩阵列线相连,在逐行扫描时搜寻一行中闭合键所在的列。当有键闭合时,经去抖动后经行、列编码和附近的移位、控制状态一起形成键盘数据送至FIFO存储器,供CPU读取。表2_1:键盘数据格式 D7 D6 D5 D4 D3 D2 D1 D0CNTLSHIFTSL2SL1SL0R2 R1R0控制移位行编码列编码其中,控制和移位由两个独立的附加开关决定;SL2 SL1 SL0为按下键的行编码,来自扫描计数器的低3位;R2 R1 R0是根据返回信号确定的列编码。(8)
7、FIFO RAM它是一个88RAM,在键盘输入方式时遵循先入先出(FIFO)原则。(9)FIFO RAM的状态寄存器它用来存放FIFO RAM的状态,例如RAM空、满等。当工作在键盘方式FIFO存储器不空时,将产生IRQ1信号向CPU申请中断。(10) 显示RAM、显示地址寄存器显示RAM用来存储显示数据。容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为A、B两组,OUTA03和OUTB03可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示RAM中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定
8、的显示状态。显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。 (11)显示寄存器它存放显示内容。在显示过程中它与显示扫描配合,轮流从显示RAM中读出显示信息并依次驱动被选中的显示器件,循环不断地刷新显示字符编码,使显示器件呈现稳定的显示字符。8位显示寄存器分为A、B两组,OUTA03和OUTB03可以单独送树,显示4个字符也可以组成一个8位字符。(12)显示地址寄存器它寄存读/写显示RAM地址,即对应显示字符从哪一位开始。它由命令设定,并可设置成每次读出或写入之后自动加1。B芯片8279是一种具有40条引脚的双列直插式芯片,它
9、的外部引脚如下图所示:CS(片选):输入线,当CS=0时8279被选中,允许CPU对其读、写,否则被禁止。 D0D7(数据总线):双向、三态总线,和系统数据总线相连;用于CPU和8279间的数据/命令传递。A0:地址线,进行片内端口选择。为0时,选中数据寄存器;为1时选中命令/状态寄存器。RD、WR(读、写信号):输入线。低电平有效,来自CPU的控制信号,控制8279的读、写操作。CLK:系统时钟,为8279芯片提供内部定时。RESET:复位线,高电平时复位8279到:16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为31。IRQ(中断请求):输出线。高电平有效。 图2_2: 外
10、部引脚图 在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复高电平。在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。SL0SL3:扫描线,用来扫描键盘或显示器,可编程设定为编码输出或译码输出。RL0RL7:返回线,用作键盘矩阵列线的返回信号输入。SHIFT:移位信号,高电平有效,是键盘数据的D6位,用于扩充键的控制功能,如作为上、下档功能键。CNTL:控制线,高电平有效,键盘工作方式时,是键盘数据的D7位,用于扩充键的控制功能控制功能键。OUTA0 OUTA3,OUTB
11、0OUTB3:A组、B组显示信号输出线,与扫描线SL0SL3同步,实现分时数据显示,即刷新各位显示字符。两组可独立使用,也可合并使用。BD(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。C8279的工作过程通过确定其方式字/命令字来实现。当A0=1时,CPU向8279芯片写入命令。(1) 设置键盘/显示方式表2_2: 设置命令字 D7 D6 D5 D4 D3 D2 D1 D0000DDKKK其中: D7、D6、D5=000方式设置命令特征位。 DD(D4、D3):来设定显示方式,其定义如下: 00:8个字符显示,左入口 01:16个字符显示,左入口 10:8
12、个字符显示,右入口 11:16个字符显示,右入口所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。 KKK(D2、 D1、 D0):用来设定七种键盘、显示工作方式: 000 编码扫描键盘,双键锁定 001 译码扫描键盘,双键锁定 010 编码扫描键盘,N键轮回 011 译码扫描键盘,N键轮回 100 编码扫描传感器矩阵 101 译码扫描传感器矩阵 110 选通输入,编码显示扫描 111 选通输入,译码显示扫描 双键锁定与N键轮回是多键按下时的两种不同
13、的保护方式。双键锁定为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N键轮回为N键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入FIFO RAM中。(2) 设置程序时钟命令 表2_3:命令格式 D7 D6 D5 D4 D3 D2 D1 D0001PPPPP其中:D7、D6、D5=001为时钟命令特征位。PPPPP( D4、D3、D2、D1、D0)用来设定外部输入CLK端的时钟进行分频的分频数N。N取值为231。例如外部时钟频率为2MHZ,PPPPP被置为10100(N=20)
14、,则对输入的外部时钟20分频,以获得8279内部要求的100KMZ的基本频率。(3) 读FIFO/传感器RAM命令 表2_4:命令格式 D7 D6 D5 D4 D3 D2 D1 D0010AIXAAA其中:D7D6D5 =010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时使用。在CPU读传感器RAM之前,必须使用这条命令来设定传感器RAM中的8个地址(每个地址一个字节)。 AAA(D2、D1、D0)为传感器RAM中的八个字节地址。 AI(D4)为自动增量特征位。当AI=1时,每次读出传感器RAM后地址自动加1使地址指针指向下一个存储单元。这样,下一个数据便从下一个地址读出,而
15、不必重新设置读FIFO/传感器RAM命令。在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不需使用此命令。(4) 读显示RAM命令 表2_5:命令格式 D7 D6 D5 D4 D3 D2 D1 D0011AIAAAA其中:D7D6D5 =011为读显示RAM命令字的特征位。该命令用来设定将要读出的显示RAM地址。AAAA(D3、D2、D1、D0)用来寻址显示RAM命令字的特征位。由位显示RAM中有16个字节单元故需要4位寻址。AI(D4)为自动增量特征位。当AI=1时,每次读出后地址自动加1指向下一地址。(5) 写显示RAM命令 表2_6:命令格式 D7 D6 D5 D4 D3 D2
16、 D1 D0100AIAAAA其中:D7D6D5 =100为写显示RAM命令字的特征位。在写显示器RAM之前用该命令用来设定将要写入的显示RAM地址。AAAA(D3、D2、D1、D0)为将要写入的存储单元地址,AI(D4)为自动增量特征位。当AI=1时,每次写入后地址自动加1指向下一次写入地址。(6) 显示禁止写入/消隐命令特征位 表2_7:命令格式 D7 D6 D5 D4 D3 D2 D1 D0101 XIWAIWBIWCIWD其中:D7D6D5 =101为显示禁止写入/消隐命令特征位。IWA、IWB(D3、D2)为A、B组显示RAM写入屏蔽位。由于显示寄存器分成A、B两组,可以单独送数,故
17、用两位来分别屏蔽。当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用双4位显示器时使用。因为两个双四位显示器是相互独立的。为了给其中一个双四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。IWC、IWD(D1、D0)为消隐显示位。用于对两组显示输出消隐。若BL=1时,对应组的显示输出被消隐。当BL=0时,则恢复显示。(7) 清除命令 表2_8: 命令格式 D7 D6 D5 D4 D3 D2 D1 D0110CDCDCDCFCA其中: D7D6D5 =110清除命令特征位。 CDCDCD(D4
18、D3D2)用来设定清除显示RAM方式。共有四种消除方式,见表6-10-1。 CF(D1)用来置空FIFO存储器,当=1时,执行清除命令后,FIFO RAM被置空,使中断输出线复位。同时,传感器RAM的读出地址也被置0。 CA(D0)为总清的特征位。它兼有CD和CF的联合效能。在CD=1时,对显示的清除方式由D3、D2的编码决定。 清除显示RAM约需160S。在此期间FIFO状态时的最高位DU=1,表示显示无效。CPU不能向显示RAM写入数据。(8) 结束中断/错误方式设置命令 表2_9:命令格式 D7 D6 D5 D4 D3 D2 D1 D0111 EXXXX其中: D7D6D5 =111为该
19、命令的特征位。此命令有两种不同的作用: 作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路将其状态写入传感器RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。此时,若传感器RAM读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结束中断/错误方式设置命令才能使IRQ变低。因此在传感器工作方式中,此命令用来结束传感器RAM的中断请求。 作为特定错误方式设置命令。在8279已被
20、设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消颤周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和阻止写入FIFO RAM。 上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号A0=1。8279芯片的状态字主要用于键盘和选通工作方式,以指示FIFO RAM中的字符数和有无错误发生。表2_10:键盘和选通工作方式格式 D7 D6
21、 D5 D4 D3 D2 D1 D0DUS/E0 UFNNN其中: DU( D7)为显示无效特征位。当DU=1表示显示无效。当显示RAM由于清除显示或全清命令尚未完成时,DU=1。D6(S/E):在键盘工作方式中为特殊错误方式标志位。S/E=1表示出现多键同时按下的错误。D5(0):超出标志位,当向已满的FIFO RAM中写入,致使FIFO RAM中的字符个数n8而产生重叠时,0被置为1。D4(U):“空”标志位,当FIFO RAM中的字符个数n=0时,U被置为1。D3(F):“满”标志位,当FIFO RAM中的字符个数n=8时,F被置为1。D2D1D0(NNN):表示FIFO RAM中有n个
22、字符待取走。2选择器件LED:1)芯片在本设计中的作用:LED发光二极管在本设计中采用7段数字发光二极管,作为终端显示。显示时间的分秒。2)LED的功能分析:物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。有段选码和位选码确定数字18的输出
23、并在延时程序中保持复位。它是一种当外加电压超过额定电压时发生击穿,并因此而产生可见光的器件。这种数码管是有7段或8段笔画显示器组成一个字符而形成的。如下图: 图2_3: LED内部结构 图2_4:LED显示表2_11:LED显示管段选码编码表数字dpgfedcba二进制编码011000000C0h111111001F9h210100100A4h310110000B0h41001100199h51001001092h61000001082h711111000F8h81000000080h91001000090h3)LED的技术参数分析LED发光二极管的压降一般为1.5-2.0V,其工作电流一般取
24、10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。 由于8255A的最大驱动电流为4.0mA,而LED的工作电流一般为10-20mA,所以需要加一个驱动器74LS244。3矩阵键盘:1)矩阵键盘在本设计中的作用:矩阵键盘在工作时,是按照行线和列线交叉点的电平值来识别按键的,由人手按动键盘。当键释放后,该键就有效。矩阵键盘将0F这16哥键按行和列排列成矩阵形式。对于mn哥键的键盘,只需要m+n位I/O端口,我们的实验采用的是44键盘。2)矩阵键盘的功能分析:在矩阵键盘中,通过行列交叉点上的电平值来识别按键,而行列线通过键盘数据格式确定,键盘数据格式如下: 表2_12:键
25、盘数据格式 D7 D6 D5 D4 D3 D2 D1 D0CNTLSSHIFTSL2SL1SL0R2R1R0控制移位行编码列编码其中,控制和移位由两个独立的附加开关决定;SL2 SL1 SL0为按下键的行编码,来自扫描计数器的低三位,R2 R1 R0是根据返回信号确定的列编码。通常使用的键盘是矩阵结构的。对于44=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。 图2_5:44
26、键盘矩阵图行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。实际应用中,一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。为此,先使所
27、有行线为低,然后检查列线。这时如果列线有一位为0,则说明必有键被按下, 采用扫描法可进一步确定按键的具体位置。474LS240芯片:1 ) 74LS240译码器在本设计中的作用本设计实验中主要是为增加LED的驱动电流2 ) 74LS240译码器的功能分析74LS240 TTL 八反相三态缓冲器/线驱动器引出端符号: 1A,2A 输入端 , 三态允许端(低电平有效) 1Y8Y 输出端 图2_6:逻辑图 表2_13:功能表输入输出AYLLHLHXHLZ3 ) 74LS240译码器的技术参数 极限值: 电源电压 - 7V 输入电压 - 5.5V 输出高阻态时高电平电压 - 5.5V 工作环境温度 -
28、 070 存储温度 -65150 574LS138芯片:1) 74LS138在本设计中的作用:将SL0SL2锁确定的信号经译码器译为矩阵键盘的行选择线。2) 74LS138 的功能分析:74LS138是3/8译码器,即对3哥输入信号进行译码,得到8个输出状态。其引脚功能图如下所示: 表2_14:真值表 图2_6 引脚图G1 G2A G2B为数据输出端,G2A G2B为低电平有效,G1高电平有效,A、B、C为译码器输入出端,Y0Y7为译码输出端,低电平有效。真值表如下所示:3) 74LS138的技术参数:极限值 电源电压-7V 输入电压-7V 工作环境温度 -070 贮存温度-65150 三硬件总逻辑图及其说明图3_1:硬件总逻辑图上图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1