电子时钟日历系统-8258255

上传人:w****1 文档编号:46613573 上传时间:2021-12-14 格式:DOC 页数:65 大小:715KB
收藏 版权申诉 举报 下载
电子时钟日历系统-8258255_第1页
第1页 / 共65页
电子时钟日历系统-8258255_第2页
第2页 / 共65页
电子时钟日历系统-8258255_第3页
第3页 / 共65页
资源描述:

《电子时钟日历系统-8258255》由会员分享,可在线阅读,更多相关《电子时钟日历系统-8258255(65页珍藏版)》请在装配图网上搜索。

1、计算机科学与技术学院硬件课程设计报告姓 名:学 号:专 业: 计算机科学与技术学院班 级: 网络工程11-3班设计题目: 电子时钟万年历成 员:指导教师: 职称: 副教授2013年 12月 22日徐州课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日摘要计时精确的电子时钟日历在我们生活中能处处能见到。钟表的数字化给人们生产生 活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。本次课程设计我们做的是 电子时钟日历,通过使用 LCD液晶显示屏显示时间,脉冲是通过可编程 8253芯片来提供 的,其时间是通过 8255来控制显示的, 4*4 数字键盘将要修改的时间提供给 8255芯片

2、, 然后8255芯片控制LCD液晶显示屏修改显示的时间。流程报告中有以下几个方面:任务 设计与要求、总体方案、硬件设计、软件设计、结论及试验体会。61目 录1设计任务与要求21. 1提出问题21.1.1分析问题 22总体方案22. 1总体方案概述 42. 28253芯片简介 42.3 8255芯片简介 102.4 液晶屏LCD简介 133硬件设计 153.1实物连接图 153.2硬件电路图连接 154软件设计 164. 1原理框图1 64. 2软件设计模块1 74. 3软件设计问题分析1 84. 4体流程图 1 84. 5程序清单与注释204. 6验结果465实验结论及体会 46476参考文献

3、第一章设计任务与要求1.1提出问题本次课程设计,我们主要是可编程定时/计数器芯片8253和并行接口芯片8255A LED显示屏来实现电子日历时钟系统,首先,由定时/计数器芯片8253产生一定 频率的时钟脉冲,将这个时钟脉冲输入到并行接口芯片8255A,再有并行接口芯片8255A处理并输出到LED显示屏实现时钟显示,这样可以实现可视化的电子日 历时钟系统。1.1.1分析问题电子时钟主要是由时钟运算模块和显示模块两大部分组成, 很显然,其中时钟运 算模块要对时间的数值进行操作,并且秒计算到 60时,要自己清零并向分进1; 分计算到60时,要自己清零并向时进1;时计算到24时,要清零,并向天进1,

4、以此类推,再设置年月。这样,才能循环计时。2总体方案2.1总体方案概述本实验采用LCD液晶显示屏作为实验芯片。采用 8255来控制LCD的显示时 间,用8253来定时刷新显示的时间。在本实验中,先采用8253提供一个1秒的脉冲给8255,然后8255在定时 的控制LCD显示屏显示的时间。在修改显示屏的时间,用4*4的数字键盘将要修 改的时间提供给8255,让后再让8255控制LCD显示屏显示的时间。其中,时间 是用24小时制,年月日的形式输出的。其中判断年是否为闰年等等问题是通过 软件的形式进行设计的。F面是本实验的总体方案8253-+- l_L心片提供1秒的脉冲8255-+- l_L心片提供

5、修改的时间4*4数字键盘控制显示的时间LCD显示屏流程图说明:1. 先采用8253提供一个1秒的脉冲给8255,然后8255在定时的控制LCD 显示屏显示的时间2. 用4*4的数字键盘将要修改的时间提供给 8255,让后再让8255控制LCD 显示屏显示的时间。材料清单:LCD液晶显示屏(ST7920A控制芯片)*1,8255芯片*1,8253芯片*1,4*4 键盘*1,导线若干。2.1.1时钟运算模块时钟运算模块的主要功能时对时、分、秒的运算,并把运算出的最终结果存到事先开辟的内存单元里,以便显示模块即时地显示出来。因为8253所能提供的信号的周期时毫秒级的,所以用8253来直接计秒肯定是远

6、远不够的,因此必须采用级联的方式,通过软件的方法在运算模块中设置一 个统计次数的变量,并且这一变量必须事先在内存里开辟存储单元。 信号是8253 的通道产生1秒的脉冲信号。运算模块负责时、分、秒的计算,在程序里,必须 对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时,时加1、分清零。当时加到24时,直接清零。2.1.2显示模块设置LCD显示屏,使LCD显示屏的一到四行分别显示:(1) 第一行显示: 万年日历(2) 第二行显示日期:00/01/01(3) 第三行显示时间:00:00:00(4) 第四行显示星期:星期日2.2 8253芯片简介2.2.1 825

7、3芯片内部结构CL-KoGA-TEoWCLKiGATE iOCT iCL-KaCHUT jintel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功 能都是兼容的,只是工作的最高计数速率有所差异,例如8253( 2.6MHz),8253-5(5MHz)8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。 每个计数器的输入和输出都决定于设置在控制寄存器 中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端 CLK,一个为门控信号输入端 GATE,另一个为输出端 OUT。每个计数器内部有一个 8位的控制寄

8、存器,还有一个16位的计数初值 寄存器CR、一个计数执行部件 CE和一个输出锁存器OL。执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存器OL用来锁存计数执行部件 CE的内容,从而使 CPU可以对此进行读操作。顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。2.2.2 8253芯片工作原理8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数 脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号 时,计数就成为定时。一、8253内部结构82

9、53芯片有24条引脚,封装在双列直插式陶瓷管壳内。1. 数据总线缓冲器数据总线 缓冲器与 系统总线 连接,8位双向,与CPU交换信息的通道。这是8253与CPU 之间的数据接口,它由8位双向三态 缓冲存储器 构成,是CPU与8253之间交换信息的必经 之路。2. 读/写控制& XNF占端口选J羊A1A0sftj 1 1_ 0 _0迪道00110通道2 i 11挖制I 1读/写控制分别连接系统的 IOR#和IOW#,由CPU控制着访问8253的内部通道。接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。 A1A0 :端口选择信号,由

10、CPU输入。8253内部有3个独 立的通道,加上控制字寄存器,构成8253芯片的4个端口,CPU可对3个通道进行读/写操作 3对控制字寄存器进行写操作。这4个端口地址 由最低2位地址码A1和A0来选择。如表所示。3. 通道选择(1)CS# 片选信号,由CPU输入,低电平有效,通常由 端口地址 的高位地址 译码 形成。(2)RD#、WR# 读/写控制命令,由 CPU输入, 低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。CPU对8253的读/写操作。4. 计数通道02每个计数通道内

11、含1个16位的初值 寄存器、减1计数器和1个16位的(输出) 锁存器。 8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,写入的初值范围为0000H0FFFFH,最大计数值是0000H,代表65536。采用BCD码计数时,写入的初值范围为 00009999,最 大计数值是0000,代表10000。与此计数器相对应,每个通道内设有一个16位计数值 锁存器。必要时可用来锁存计数值。(特别说明:8253计数器的值先减1再判断是否为0,为0就中断了,所以最大初始值为 0,这样减1以后,不为0,所以为最大的,取决于 CF标志

12、位)当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事 件应以脉冲方式从 CLK端输入, 每输入一个计数脉冲,计数器内容减“1 ”,待计数值计到“ 0”。 OUT端将有输出。表示计数次数到。当某个通道用作 定时器时。由CLK输入一定频率的 时钟脉冲。 根据要求定时的时间长短确定所需的计数值。并预置到计数器中, 每输入一个 时钟脉冲,计数器内容减“ 1 ”,待计数值计到“ 0”。OUT将有输出,表示定时时间到。允许从 CLK 输入的时钟频在12MHz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。 而后者是内

13、时钟脉冲 进行减“ 1 ”计数。作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1 ”计数器中。作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:定时系数=需要定时的时间/时钟脉冲周期 设置通道:向方式控制字寄存器端口写入方式 选择控制字,用于确定要设置的通道及工作方式; 计数/定时:向通道写入计数值,启动计数操作; 读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。 计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。计数初值输入存放在初值 寄存器中,计数

14、开始或重装入时被复制到计数器中。锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直 到锁存器值被读取后才能解除锁存状态。5. 方式选择控制字8253的初始化编程就是对其工作方式的确定。具体实现就是在8253上电后,由 CPU向8253的控制寄存器写入一个控制字,就可以规定8253的工作方式、计数值的长度以及计数所用的数制等,另外根据要求将计数值写入8253的相应通道。8253的一个方式控制字只决定一个技术通道的工作模式。二、8253的通道工作方式8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。8253的各种工作方式如下:1. 方式0

15、:计数结束则中断工作方式0被称为计数结束 中断方式。当任一通道被定义为工作方式0时,OUTi输出为低电平;若门控信号 GATE为高电平,当CPU利用输出指令向该通道写入计数值WR#有效时,OUTi仍保持低电平,然后计数器开始减“1 ”计数,直到计数值为“ 0”,此刻OUTi将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUTi端输出的高电平一直维持到下次再写入计数值为止。在工作方式0情况下,门控信号GATE用来控制减“ 1”计数操作是否进行。当GATE=1 时,允许减“ 1”计数;GATE=O时,禁止减“ 1”计数; 计数值将保持 GATE有效时的数 值不变, 待GATE重新有效后,

16、减“ 1 ”计数继续进行。显然,利用工作方式0既可完成计数功能,也可完成定时功能。当用作计数器时,应将要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLKi端输入,由它对计数器进行减“ 1 ”计数,直到计数值为 0,此刻OUTi输出正跳变,表示计数次数到。当用作定时器时,应把根据要求定时的时间和CLKi的周期计算出定时系数,预置到计数器中。从CLKi,输入的应是一定频率的 时钟脉冲,由它对计数器进行减“ 1 ”计数,定 时时间从写入计数值开始,到计数值计到“0”为止,这时 OUTi输出正跳变,表示定时时间到。有一点需要说明,任一通道工作在方式0情况下, 计数器初值一次有效,经过一次

17、计数或定时后如果需要继续完成计数或定时功能,必须重新写入计数器的初值。2. 方式1 :单脉冲发生器工作方式1被称作可编程单脉冲发生器。进入这种工作方式,CPU装入计数值n后OUTi输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“ 1 ”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。与此同时, OUTi输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”, OUTi输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式I所能输出单脉冲的宽度为 CLKi周期的n倍。如果在减“1”计数过程中, GATE由高电平跳变为低电乎,这并

18、不影响计数过程, 仍继续计数;但若重新遇到GATE的上升沿,则从初值开始重新计数,其效果会使输出的单脉冲加宽,如教材图9-22(b)中的第2个单脉冲。这种工作方式下,计数值也是一次有效,每输入一次计数值,只产生一个负极性单脉 冲。3. 方式2 :速率波发生器工作方式2被称作速率波发生器。进入这种工作方式,OUTi输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUTi保持为高电平不变;待计数值减到“ 1 ”和“ 0”之间,OUTi将输出宽度为一个 CLKi周期的负脉冲,计数值为“ 0”时,自动重新 装入计数初值n,实现循环计数,OUTi将输出一定频率的负脉冲序列,其脉冲宽度固定

19、为一个CLKi周期,重复周期为CLKi周期的n倍。如果在减“ 1”计数过程中,GATE变为无效(输入0电平),则暂停减“ 1”计数,待GATE 恢复有效后,从初值 n开始重新计数。这样会改变输出脉冲的速率。如果在操作过程中要求改变输出脉冲的速率,CPU可在任何时候,重新写人新的计数值,它不会影响正在进行的减“ 1”计数过程,而是从下一个计数操作用期开始按新的计 数值改变输出脉冲的速率。4. 方式3 :方波发生器工作方式3被称作方波发生器。任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1: 1的方波。装入计数值后,OUTi立即跳变为高电平。如果1 ”计数,OUTi保持为

20、高电平,若 n为偶数,则当计 一直保持到计数值为“ 0”,系统才自动重新置入计进入工作方式3, OUTi输出低电平, 当GATE为高电平,则立即开始减“数值减到n/2时,OUTi跳变为低电平, 数值n ,实现循环计数。这时 OUTi端输出的周期为n x CLKi周期, 输出周期为n x CLKi周期,占空比为占空比为1:1的方波序列;(n+1)/2)/( n-1)/2)的近似方波序列。若n为奇数,则OUTi端如果在操作过程中,GATE变为无效,则暂停减“ 1 ”计数过程,直到 GATE再次有效,重新从初值n开始减“ I”计数。如果要求改变输出方波的速率,则CPU可在任何时候重新装入新的计数初值

21、n ,并从下一个计数操作周期开始改变输出方波的速率。这种工作方式下,当计数值计到“ 0”后,系统将自动重新装入计数值n,但并不开始计数,一定要等到由GATE端引入的正跳沿,才会开始进行减“1 ”计数, 因此这是一种完全由GATE端引入的触发信号控制下的计数或定时功能。如果由CLKi输入的是一定频率的时钟脉冲,那么可完成定时功能,定时时间从GATE上升沿开始,到OUTi端输出负脉冲结束。如果从CLKi端输入的是要求计数的事件,则可完成计数功能,计数过程从GATE上如果需要改变计数初值, 不影响正在进行的操作过程,从上述各工作方式可看出,升沿开始,到OUTi输出负脉冲结束。GATE可由外部电路或控

22、制现场产生,故硬件触发方 式由此而得名。CPU可在任何时候用输出指令装入新的计数初值m,它将而是到下一个计数操作周期才会按新的计数值进行操作。GATE作为各通道的门控信号,对于各种不同的工作方式,它所起的作用各不相同。在 8253的应用中,必须正确使用GATE信号,才能保证各通道的正常操作。7.读取计数器的当前值直接读计数器:输出 锁存器在非锁存状态会跟随计数器计数的变化而变化,直接读 计数器是从锁存器得到计数器的当前值。但由于计数器处于工作状态,读出值不一定能稳定。先锁存再读取:通过方式选择控制字对指定通道(SC1、SC0)的计数值锁入锁存器(RL1RL0=00),锁存器一旦锁存了当前计数值

23、,就不再随计数器变化直到被读取。读计 数器通道(有锁存器)。2.3 8255芯片简介2.3.1 8255引脚图解llIQnu.b/uR r II-FK355 弓 ijjir151.町l-s-8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由 软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的 3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C 口。由于8255可编程,所以必须

24、具有逻辑控制部分,因而 8255内部结构分为3个部分:与CPU连接部分、与外设连接 部分、控制部分。1 )与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为 8根D0D7。由于8255具有3 个通道A、B、C,所以只要两根 地址线就能寻址A、B、C 口及控制寄存器,故地址线为两 根A0A1。此外CPU要对8255进行读、写与 片选操作,所以控制线为片选、复位、读、 写信号。各信号的 引脚编号如下:(1) 数据总线DB :编号为DOD7,用于8255与CPU传送8位数据。(2) 地址总线AB :编号为A0A1,用于选择A、B、C 口与控制寄存器。(3) 控制总线CB :片选信号

25、、复位信号RST、写信号、读信号。当 CPU要对8255 进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对 8255 进行读或写数据的操作。2)与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所 以8255可以用24根线与外设连接,若进行开关量控制,则 8255可同时控制24路开关。各通 道的引脚编号如下:(1) A 口:编号为PA0PA7 ,用于8255向外设输入输出8位并行数据。(2) B 口:编号为PBOPB7,用于8255向外设输入输出8位并行数据。(3) C 口:编号为PCOPC7,用于8255向外设输

26、入输出8位并行数据,当8255工作 于应答I/O方式时,C 口用于应答信号的通信。3)控制器8255将3个通道分为两组, 即PA0PA7与PC4PC7组成 A组,PBOPB7与PCO PC3组成B组。如图7.5所示,相应的控制器也分为 A组控制器与B组控制器,各组控制器 的作用如下:(1) A组控制器:控制A 口与上C 口的输入与输出。(2) B组控制器:控制B 口与下C 口的输入与输出。2.3.2 8255的命令字D7D6 D5D4D3D2D1 DOD7 :特征位 D6D5:A 组方式00=方式0 , 0仁方式1 , 1X=方式2D4 : A 口 0=输出,1 =输入 D3 : C 口 C7

27、C4 0=输出,1 =输入D2:B组方式0=方式0 , 仁方式1D1: B 口 0=输出,1 =输入 D0:C 口 C3C0 0=输出,1 =输入D7位为“ 1 ”时,为方式选择控制字的标识位。D6、D5位决定A端口的工作方式。D4位决定A端口工作在输入还是输出方式。D3位决定C端口高4位PC7PC4是作为输入端口,还是作为输出端口。D2位用来选择B端口的工作方式。D1位决定B端口作为输入还是输出端口。DO位决定C端口低4位PC3PC0作出为输入,还是输。2.3.3 8255 工作方式3种工作方式可用软件编程对控制口设置来指定。三种基本的工作方式为:方式0-基本的输入输出,方式1 选通输入输出

28、方式,方式2 双向传送方式。1)工作方式0(基本输入输出方式)功能:方式0不使用联络信号,也不使用中断, A 口和B 口可定义为输入或输出口, C 口分成两个部分(高四位和低四位),C 口的两个部分也可分别定义为输入或输出。 在方式0 , 所有口输出均有锁存,输入只有缓冲,无锁存,C 口还具有按位将其各位清 0或置1的功能。常用于与外设无条件的数据传送或接收外设的数据。2)工作方式1(选通输入输出方式)A 口借用C 口的一些信号线用作控制和状态信号,组成A组,B 口借用C 口的一些信号线用作控制和状态信号,组成B组。在方式1下,C 口的某些位被占用。方式1的输出:当A 口工作于方式1且用作输出

29、口时,C 口的PC7线用作输出缓冲器满 OBF信号,PC6用作外设收到数据后的响应信号 ACK ,PC3用作中断请求输出信号线 INTR。当B 口工作于方式I且用作输出口时,C 口的PC1线用作输出缓冲器满 OBF信号,PC2 用作外设收到数据后的响应信号ACK , PC0用作中断请求输出信号线 INTR。3)工作方式2(双向输入输出方式)功能:方式2是A组独有的工作方式。外设既能在A 口的8条引线上发送数据,又能接收数据。此方式也是借用 C 口的5条信号线作控制和状态线,A 口的输入和输出均带有锁存。2.4液晶屏LCD2.4.1工作原理简单的来说,屏幕能显示的基本原理就是在两块平行板之间填充

30、 液晶材料, 通过电压来改变液晶材料内部分子的排在列状况, 以达到遮光和透光的目的来显 示深浅不一,错落有致的图象,而且只要在两块平板间再加上三元色的滤光层, 就可实现显示彩色图象。认识了它的结构和原理,了解了它的技术和工艺特点,才能在选购时有的放矢,在应用和维护时更加科学合理。液晶是一种有机复合物,由长棒状的分子构成。在自然状态下, 这些棒状分子的长轴大致平行。LCD第一个特点是必须将液晶灌入两个列有细槽的平面之间才能正常工作。 这两个平面上的槽互相垂直 (90度相交),也就是说,若一个平面上的分子 南北向排列,则另一平面上的分子东西向排列,而位于两个平面之间的分子被强迫进入一种90度扭转的

31、状态。由于光线顺着分子的排列方向传播,所以光线经过液晶时也被扭转90度。但当液晶上加一个电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。LCD的第二个特点是它依赖极化滤光片和光线本身,自然光线是朝四面八方随机发散的,极化滤光片实际是一系列越来越细的平行线。这些线形成一张网,阻断不与这些线平行的所有光线,极化滤光片的线正好与第一个垂直,所以能完全阻断那些已经极化的光线。只有两个滤光片的线完全平行,或者光线本身已扭转到与第二个极化滤光片相匹配,光线才得以穿透。LCD正是由这样两个相互垂直的极化滤光片构成,所以在正常情况下应该阻断所有 试图穿透的光线。但是,由于两个滤光片之间充满了

32、扭曲液晶,所以在光线穿出第一个滤光若为液晶加一个片后,会被液晶分子扭转 90度,最后从第二个滤光片中穿出。另一方面, 电压,分子又会重新排列并完全平行,使光线不再扭转,所以正好被第二个滤光片挡住。总之,加电将光线阻断,不加电则使光线射出。当然,也可以改变LCD中的液晶排列,使光线在加电时射出,而不加电时被阻断。但由于液晶屏幕几乎总是亮着的,所以只有”加电将光线阻。a 石匝 floDP(a)典型的七段式LED器件(b)共阳极LED (c)共阴极LED技术参数对比度LCD制造时选用的控制IC、滤光片和定向膜等 配件,与面板的对比度有关, 对一般用户而言,对比度能够达到350:1就足够了,但在专业领

33、域这样的对比度 平还不能满足用户的需求。相对 CRT显示器轻易达到500: 1甚至更高的对比度 而言,只有高档液晶显示器才能达到这样如此程度。市场上 三星、华硕、LG等 一线品牌如今LCD显示器均可以达到1000: 1对比度这一级别,但是由于对比度 很难通过仪器准确测量,所以挑的时候还是要自己亲自去看才行。亮度LCD是 一种介于固态与液态之间的物质,本身是不能发光的,需借助要额外 的光源才行。因此,灯管数目关系着液晶显示器亮度。 最早的液晶显示器只有上 下两个灯管,发展到现在,普及型的最低也是四灯,高端的是六灯。四灯管设计 分为三种摆放形式:一种是四个边各有一个灯管,但缺点是中间会出现黑影,解

34、 决的方法就是由上到下四个灯管平排列的方式, 最后一种是“ U型的摆放形式, 其实是两灯变相产生的两根灯管。 六灯管设计实际使用的是三根灯管,厂商将三 根灯管都弯成“ U型,然后平行放置,以达到六根灯管的效果。响应时间响应时间指的是液晶显示器对于输入 信号的反应速度,也就是液晶由暗转亮 或由亮转暗的反应时间(亮度从10%-90%或者90%-10%勺时间),通常是以 毫秒(mS为单位。要说清这一点我们还要从人眼对动态图像的感知谈起。人眼 存在“视觉残留”的现象,高速运动的画面在人脑中会形成短暂的印象。动画片、 电影等一直到现在最新的游戏正是应用了视觉残留的原理,让一系列渐变的图像在人眼前快速连续

35、显示,便形成动态的影像。人能够接受的画面显示速度一般为 每秒24张,这也是电影每秒24帧播放速度的由来,如果显示速度低于这一标准, 人就会明显感到画面的停顿和不适。 按照这一指标计算,每张画面显示的时间需 要小于40ms这样,对于液晶显示器来说,响应时间 40ms就成了一道坎,高于 40ms的显示器便会出现明显的画面闪烁现象,让人感觉眼花。要是想让图像画 面达到不闪的程度,则就最好要达到每秒 60帧的速度。可视角度LCD的视角度是一个让人头疼的问题,当背部光源通过偏极片、液晶和取向 层之后,输出的光线便具有了方向性。也就是说大多数光都是从屏幕中垂直射出 来的,所以从某一个较大的角度观看液晶显示

36、器时,便不能看到原本的颜色,甚 至只能看到全白或全黑。为了解决这个问题,制造厂商们也着手开发广角技术,到目前为止有三种比较流行的技术,分别是:TN+FILM IPS(IN-PLANE -SWITCHIN 和 MVA(MULTI-DOMAIN VERTICAL alignMENT)区别LEDLED是发光二极管Light Emitting Diode的英文缩写。LED应用可分为两大类:一是 LED单管应用,包括背光源LED红外线LED等;另外就是LED显示屏,中国在LED基础材料制造方面与国际还存在着一定的 差距,但就LED显示屏而言,中国的设计和生产技术水平基本与国际同步。LED显示屏是由发光二

37、极管排列组成的一显示器件。它采用低电压扫描驱 动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离 远等特点。LCD显示器的原文是Liquid Crystal Display,取每字的第一个字母组成,中文多称液晶平面显示器或液晶显示器。其工作原理就是利用液晶的物 理特性:通电时排列变得有序,使光线容易通过;不通电时排列混乱,阻止光线 通过,说简单点就是让液晶如闸门般地阻隔或让光线穿透。LCD的好处有:与CRT显示器相比,LCD的优点主要包括零辐射、低功耗、散热小、体积小、图像 还原精确、字符显示锐利等。3硬件设计3.1实物连接图本实验采用可编程芯片8255,8253作为实验芯

38、片。用LCD液晶显示屏来显示时间,用4*4键盘来修改时间。本实验的试验箱硬件电路图连接如下:3.2硬件电路图连接线路连接:4软件设计4.1原理流程图因为我负责时间及键盘的编写,所以流程图只列下面两个,其他不在多余赘 述。上述流程图是对万年历中“时”加一的流程图,年月日以及分秒与之类似,不在重复“时”减一流程图上述流程图是对万年历中“时”减一的流程图,年月日以及分秒与之类似,不在重复4.1.2键盘原理流程图4.2软件模块实现主体功能:1) LCD显示屏上显示的时间是与现实时间是一致的。2) 可通过4*4数字键盘来修改LCD显示屏上的时间。3) 8255实现键盘扫描判断键是否按下4) 8253加入

39、1m脉冲5v电压实现脉冲送入 82554.3软件设计中的问题分析软件在设计过程中主要问题就是键盘扫描以及如何加时间、键盘很好的加减时间、月份的30 31或更特殊的时间的设定。怎样通过编程 8255,来接收8253 的脉冲,判断脉冲,进而刷新显示的时间;其次就是通过4*4数字键盘的输入给 8255芯片,然后使得LCD显示屏上的时间更变。4.4主体流程图(如下图)8253-+- l_L心片编程实现提供1秒的脉冲82554*4键盘-H- l_L心片提供修改的时刷新时间改时间LCD液晶显示2系统模块详细设计与调试1在主程序中要分别对8254和8255初始化编程。具体如下:8254控制字:MOV DX,

40、PORT_8253;写入控制字,0通道,方式2MOV AL,OO11O1O1BOUT DX,ALMOV DX,PORT_0MOV AL,00HOUT DX,ALMOV AL,10HOUT DX,ALMOV DX,PORT_8253;1通道,方式3;8255初始化MOV AL,01110111BOUT DX,ALMOV DX,PORT_1MOV AL,00HOUT DX,ALMOV AL,10HOUT DX,AL8255控制字:MOV DX,PORT_8255MOV AL,80HOUT DX,AL4.5程序清单与注释PORT_AEQC288HPORT_BEQC289HPORT_CEQC28AHP

41、ORT_8255EQC28BHPORT_0EQC280HPORT_1EQC281HPORT_2EQC282HPORT_8253EQC283HDATASEGMENT;01 2 3 4567TABLE1DB77H,7BH,7DH,7EH,0B7H,0BBH,0BDH,0BEH;89 A BC DEFDB0D7H,0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEHHZ_SEC02 DW0A3B0HHZ_SEC01 DW0A3B0HHZ_MIN02 DW0A3B0HHZ_MIN01 DW0A3B0HHZ_HOU02 DW0A3B0HHZ_HOU01 DW0A3B0HHZ_TIM DW

42、0A1C3HHZ_SYM DW0A1C3HHZ_YEAR02 DW0A3B0HHZ_YEAR01 DW0A3B0HHZ_MON02 DW0A3B1HHZ_MON01 DW0A3B0HHZ_DAY02 DW0A3B1HHZ_DAY01 DW0A3B0H HZ_DATE DW0A3AFH HZ_WEEK DW0A3B6H HZ_WEEK0DW0D0C7H;字体星HZ_WEEK0DW0C6DAH;字体期HZ_X DW0A1EFH;符号HZ_WDW0CDF2H;字体万HZ_N DW0C4EAH;字体年HZ_R DW0C8D5H;字体日HZ_L DW0C0FAH;字体历HZ_ADRDB?DATAENDS

43、STACK1SEGMENSTACKDW50 DUP0)TOP_STAABELWORDSTACK1ENDSCODESEGMENTASSUMCSCODEDSDATASTART:MOVAXSTACK1MOVSS AXLEA SPTOP_STACMOVAXDATAmovdsaxMOVDXPORT_8255 ;8255 初始化MOVAL,80HOUTDXALCALLCLEAR;LCD青除CALLFUCTION_A ;日期显示;8253的编程MOVDXPORT_8253MOVAL,00110101B;写入控制字,0通道,方式2OUTDXALMOVDXPORT_0MOVAL,00HOUTDXALMOVAL,

44、10HOUTDXALMOVDXPORT_8253MOVAL,01110111B;1 通道,方式 3OUTDXALMOVDXPORT_1MOVAL,00HOUTDXAL MOVAL,10H OUTDXALMAIN:LP:MOVDXPORT_C;检测B口是否有1秒脉冲TEST DX10HJNZ LPTEST DX00HINC HZ_SEC02;判断是否有键按下MOVDXPORT_8255 MOVAL,10001010B OUTDXALMOVDXPORT_AMOVAL,00HOUTDXALJNZ LP;秒的个位加一;A 口输出,B口输入,C口低四位输出,高四位输入;A 口为行,向所有的行输出0MOV

45、DXPORT_BRET_TO_1:MOVAL,0FEHMOVCL ALNEXT_ROW_1:MOVDXPORT_AOUTDXALMOVDXPORT_BIN AL DXANDAL,0FHCMPAL,0FH;判断是否有键按下JNEJP_1CMPCL0EFHJE FUCROLCL01MOVAL, CLJMPNEXT_ROW_1JP_1: CALLJP;时间的进位FUC:CALLFUCTION 00CALLFUCTION_01 CALLFUCTION_02 CALLFUCTION_A JMPMAIN;日期的进位;星期的进位;日期显示FUCTION_00PROCCMAHZ_SEC02,0A3BAHJE

46、TIM_NEXT_01 RETTIM_NEXT_01:INC HZ_SEC01;判断是否为十,是跳转到秒进位子程序 秒的十位加一MOVHZ_SEC02,0A3B0H ;个位置零CMPHZ_SEC01,0A3B6HJE TIM_NEXT_02RETTIM_NEXT_02:INC HZ_MIN02MOHZ_SEC01,0A3B0HCMPHZ_MIN02,0A3BAHJE TIM_NEXT_03RETTIM_NEXT_03:INC HZ_MIN01MOHZ_MIN02,0A3B0HCMPHZ_MIN01,0A3B6HJE TIM_NEXT_04RETTIM_NEXT_04:INC HZ_HOU02M

47、OVHZ_MIN01,0A3B0HCMPHZ_HOU01,0A3B2H;判断是否为六,是跳转;分的个位加一;判断是否为十,是跳转;分的十位加一;判断是否大于六,是跳转;时的十位加一;判断是否为二,是跳转JE TIM_NEXT_05JMPTIM_NEXT_07TIM_NEXT_05:CMPHZ_HOU02,0A3B4H ;判断时的个位是否为四,是跳转JE TIM_NEXT_06JMPTIM_NEXT_07TIM_NEXT_06:MOVHZ_HOU01,0A3B0HMOVHZ_HOU02,0A3B0HINC HZ_DAY02INC HZ_WEEK RETTIM_NEXT_07: CMFHZ_HOU

48、02,0A3BAH JE TIM_NEXT_08 RETTIM_NEXT_08:INC HZ_HOU01 MOHZ_HOU02,0A3B0H RETFUCTION_00ENDPFUCTION_01PROC CALLCMP_MON CALLMON_COUNT CALLYEAR_WALK RETFUCTION_01ENDPCMP_MONROC CMPHZ_MON01,0A3B0H JE MON01_EQU_0 JMPMON01_EQU_1MON01_EQU_0: CMAHZ_MON02,0A3B1H JE GO_TO_31CMAHZ_MON02,0A3B2H JE GO_TO_2MON CMAHZ

49、_MON02,0A3B3H JE GO_TO_31CMAHZ_MON02,0A3B4H JE GO_TO_30CMAHZ_MON02,0A3B5H JE GO_TO_31CMAHZ_MON02,0A3B6H JE GO_TO_30CMAHZ_MON02,0A3B7H JE GO_TO_31CMAHZ_MON02,0A3B8H JE GO_TO_31CMAHZ_MON02,0A3B9H JE GO_TO_30;日期加一;星期加一;判断时的个位是否为十,是跳转;(个位为十)十位加一,个位置零;判断是否是个位的月份;一月;二月;三月;四月;五月;六月;七月;八月;九月MON01 EQU 1:CMPH

50、Z_MON02,0A3B0HJE GO_TO_31CMPHZ_MON02,0A3B1HJE GO_TO_30CMPHZ_MON02,0A3B2HJE GO_TO_31;十月;十一月;十二月;31天的子程序GO_TO_31:CALLCOUNT_31JMPTO_ENDGO_TO_30:CALLCOUNT_30;30天的子程序JMPTO_ENDGO_TO_2MON:CALL MON_2_COUNT ;二月的子程序JMPTO_ENDTO_END:RETCMP_MONNDPCOUNT_28PROCCMPHZ_DAY01,0A3B2HJE NEXT_28_01JMPNEXT_28_03NEXT_28_01

51、:CMAHZ_DAY02,0A3B9HJE NEXT_28_02JMPNEXT_28_03NEXT_28_02:MOVHZ_DAY01,0A3B0HMOVHZ_DAY02,0A3B1HINC HZ_MON02NEXT_28_03:CMAHZ_DAY02,0A3BAHJE NEXT_28_04RETNEXT_28_04:MOVHZ_DAY02,0A3B0HINC HZ_DAY01RETCOUNT_28ENDPCOUNT_2ROCCMAHZ_DAY01,0A3B2H;判断天十位是否为2,是跳转;判断天个位是否为9,是跳转;月加一;判断天十位是否为2,是跳转JE NEXT_29_01JMPNEXT_

52、29_03 NEXT_29_01:CMFHZ_DAY02,0A3BAHJE NEXT_29_02JMPNEXT_29_03NEXT_29_02:MOVHZ_DAY01,0A3B0HMOVHZ_DAY02,0A3B1HINC HZ_MON02NEXT_29_03:CMPHZ_DAY02,0A3BAHJE NEXT_29_04RETNEXT_29_04:MOHZ_DAY02,0A3B0HINC HZ_DAY01 RETCOUNT_29ENDPC0UNT_3R0CCMPHZ_DAY01,0A3B3HJE NEXT_30_01JMPNEXT_30_03NEXT_30_01:CMPHZ_DAY02,0A

53、3B1HJE NEXT_30_02JMPNEXT_30_03NEXT_30_02:MOVHZ_DAY01,0A3B0HMOVHZ_DAY02,0A3B1HINC HZ_MON02NEXT_30_03:CMPHZ_DAY02,0A3BAHJE NEXT_30_04RETNEXT_30_04:MOVHZ_DAY02,0A3B0HINC HZ_DAY01 RETCOUNT_30ENDPCOUNT_3PROCCMPHZ_DAY01,0A3B3H;判断天个位是否为A,是跳转;月加一;判断天十位是否为3,是跳转;判断天个位是否为1,是跳转;月加一;判断天十位是否为3,是跳转JE NEXT_31_01JMP

54、NEXT_31_03NEXT_31_01:CMFHZ_DAY02,0A3B2HJE NEXT_31_02JMPNEXT_31_03NEXT_31_02:MOVHZ_DAY01,0A3B0HMOVHZ_DAY02,0A3B1HINC HZ_MON02RETNEXT_31_03:CMPHZ_DAY02,0A3BAHJE NEXT_31_04RETNEXT_31_04:M0HZ_DAY02,0A3B0HINC HZ_DAY01RETCOUNT 3ENDP;判断天个位是否为2,是跳转;置天数为01;月份加一;个位是否为十,是跳转;个位置零,十位加一MON_2_COUNROCMOVAX HZ_YEAR0

55、1;判断是否是闰年ANDAX01HMOVCX0AHMULCXMOVBXHZ_YEAR02ANDBX01HADDAX BXMOVDX00HMOVBX04HDIV BXCMPDX0JE GO_TO_29JMPGO_TO_28GO_TO_29:CALLCOUNT_29;29天的子程序GO_TO_28:CALLCOUNT_28MON_2_COUNTJDPYEAR_PANDUANROCMOVAX HZ_YEAR01MOVCXOAHMULCXADDAXHZ_YEAR02MOVDXOOHMOVBX04HDIV BXCMPDXO RETYEAR_PANDUANDPMON_COUNPROCCMPHZ_MON01

56、,0A3B1H ;判断月的十位是否为一 JE MON_NEXT_01JMPMON_NEXT_03MON_NEXT_01:CMAHZ_MON02,0A3B3HJE MON_NEXT_02JMPMON_NEXT_03MON_NEXT_02:MOHZ_MON01,0A3B0HMOHZ_MON02,0A3B1HINC HZ_YEAR02RETMON_NEXT_03:CMPHZ_MON02,0A3BAHJE MON_NEXT_04RETMON_NEXT_04:MOHZ_MON02,0A3B0HINC HZ_MON01RETMON_COUNNDPYEAR_WALKROCCMPHZ_YEAR02,0A3BA

57、HJE YEAR_NEXT_01RETYEAR_NEXT_01:MOHZ_YEAR02,0A3B0HINC HZ_YEAR01RETYEAR_WALKNDPFUCTION_02PROCCMFHZ_WEEK,0A3B8H;是否大于7,大于跳转JE WEEK_NEXT01JMPWEEK_ENDWEEK_NEXT01:MOVHZ_WEEK,0A3B1H;置一JMPWEEK_ENDWEEK_END:RETFUCTION_02ENDPFUCTION_APROC;万年历显示80H87HLEA BXHZ_XMOVBYTEPTRHZ_ADR,81HCALLLCD_DISPMOVBYTEPTRHZ_ADR,86

58、HCALLLCD_DISPLEA BXHZ_WMOVBYTEPTRHZ_ADR,82HCALLLCD_DISPLEA BXHZ_NMOVBYTEPTRHZ_ADR,83HCALLLCD_DISPLEA BXHZ_RMOVBYTEPTRHZ_ADR,84HCALLLCD_DISPLEA BXHZ_LMOVBYTEPTRHZ_ADR,85HCALLLCD_DISP;日期显示,第二行90H97HLEA BXHZ_DATEMOVBYTEPTRHZ_ADR,92HCALLLCD_DISPMOVBYTEPTRHZ_ADR,95HCALLLCD_DISPLEA BXHZ_DAY02MOVBYTEPTRHZ_

59、ADR,97HCALLLCD_DISPLEA BXHZ_DAY01MOVBYTEPTRHZ_ADR,96HCALLLCD_DISPLEA BXHZ_MON02MOVBYTEPTRHZ_ADR,94H CALLLCD_DISPLEA BXHZ_MON01MOVBYTEPTRHZ_ADR,93H CALLLCD_DISPLEA BXHZ_YEAR02MOVBYTEPTRHZ_ADR,91H CALLLCD_DISPLEA BXHZ_YEAR01MOVBYTEPTRHZ_ADR,90H CALLLCD_DISP;时间显示,第三行888FLEA BXHZ_TIMMOVBYTEPTRHZ_ADR,8AHCALLLCD_DISPMOVBYTEPTRHZ_ADR,8DH CALLLCD_DISPLEA BXHZ_SEC02MOVBYTEPTRHZ_ADR,8FH CALLLCD_DISPLEA BXHZ_S

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