欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于TPCUSB实验系统的时钟系统设计.doc

    • 资源ID:2388219       资源大小:412KB        全文页数:26页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于TPCUSB实验系统的时钟系统设计.doc

    基于TPC-USB实验系统的时钟系统设计目录第一部分 概论2第二部分 硬件设计21.硬件基础22. 硬件设计32.1 基于TPC-USB实验系统总线与时钟系统的连接32.2可编程计数/定时器825352.2.1 8253主要特性52.2.2 8253的内部结构和引脚52.2.3 8253的工作方式62.3可编程并行I/O接口8255A72.3.1 可编程并行输入输出接口8255A 的结构72.3.2 8255A有三种基本的工作方式92.4 LED七段显示器92.4.1 共阳极LED显示器102.4.2 共阴极LED显示器102.4.3 多位数字静态显示及其接口102.4.4 多位数字动态显示及其接口102.5 硬件测试10第三部分 软件设计113.1 8253、8255、8259的初始化113.1.1 8253的初始化113.1.28255的初始化123.1.2.1设置8255的方式字123.1.38259的初始化133.1.3.1 设置8259的方式字133.2 时钟程序设计143.3程序清单16第四部分 系统测试与性能分析234.1系统测试234.2性能分析25第五部分 系统展望25第六部分 实验过程中的问题与解决方法25第七部分 实验感想及对课程的建议26第一部分 概论随着计算机使用的日益普及,计算机已成为了人们日常生活中不可分割的一部分。而时钟,不仅早已是人们日常生活的必需品,更是计算机系统核心运行中作为中流砥柱的其中一部分。这点在分时操作系统中尤为体现。微机系统常需要为处理机和外设提供时间标记,或对外部事件进行技术。例如系统的程序切换,向外设定是周期性地输出控制信号,外部事件发生次数达到规定值后产生中断,以及统计外部事件发生的次数等,因此,需要解决系统的定时问题。定时的本质就是计数。只要把若干小片计时单元累加起来,就可获得一段时间。而微机系统中的定时分为两类:一类是计算机本身运行的时间基准内部定时,是计算机每种操作按照严格的时间节拍执行;另一类是外部设备实现某种功能时,在外设与CPU之间,或外设与外设之间的时间配合外部定时。前者,已由CPU硬件结构确定,有固定的时许关系,无法修改;后者,由于外设或被控对象的任务不同,功能各异,没有一定的模式,需要用户自己设定。而用户在考虑外设和CPU连接时,不能脱离计算机的定时要求,应以计算机的时序关系作为一句,设计外部定时机构,以满足计算机的时序要求,进行时序配合。至于在一个过程控制中,用户可以按照各个控制对象的性质和规律独立进行设计各自的定时关系。本文基于TPC-USB试验系统,通过可编程计数/定时器8253、可编程并行I/O接口8255A及LED七段显示器进行具有可取当前系统时间、可自定义时间并运行及显示功能的时钟系统设计。经实验验证,该设计方案是完全可行的。第二部分 硬件设计1. 硬件基础1.1 TPC-USB实验系统简介 TPC-USB通用微机接口实验系统是清华大学计算机系研制,清华大学科教仪器厂生产的学生实验系统。该系统由一块USB总线接口模块、一个扩展实验台及软件集成实验环境组成。USB总线接口模块直接通过USB总线电缆与PC机相连,模块与实验台之间由一条50芯扁平电缆连接。 (1)50芯总线信号插座及总线信号插孔50芯总线信号插座在实验台左上方,总线插座信号安排如上表。各总线信号采用“自锁紧”插孔在标有“总线”的区域引出,有数据线D0-D7、地址线A19-A0、I/O读写信号IOR IOW、存储器读写信号 MEMR MEMW、中断请求 IRQ、DMA申请DRQ、DMA回答DACK、AEN 等。(2)时钟电路 如下图所示,输出1MHZ、2MHZ两种信号,供定时器/计数器、A/D转换器、串行接口实验使用。2. 硬件设计2.1 基于TPC-USB实验系统总线与时钟系统的连接基于TPC-USB实验系统总线与时钟系统的连接入下图2.1:8253芯片8255芯片图2.1:系统连接框图(1)如图2.1所示,频率为1MHZ的脉冲输入经过8253通道0的CLK1,变成频率为100HZ的方波由OUT0输入,再将OUT0输出的脉冲由CLK1输送给8253的通道1,最后由OUT1输出1个每秒产生一个长度为1/100秒长度的低电平的脉冲信号;再将这个信号经过反相输入到TPC-USB实验系统的中断口IRQ3,从而实现每秒送出一个中断信号给CPU,CPU实现计时功能。CPU经由8255芯片将时间信息输送到7段数码管显示。(2)主要信号线连接论述:D0D7:TPC-USB实验系统上的D0D7是8088上的数据线,用来传送数据;而8255、8253是I/O芯片,它们的数据线是用于CPU与芯片间传送数据的,因此可以把8255、8253上的数据线直接与TPC-USB实验系统上的D0D7相连。RD与WR:8255、8253芯片对于CPU来说是I/O设备,要使8255、8253芯片上的RD和WR信号有效,必须使CPU的I/O与WR、RD同时有效,而PC/XT总线上的IOR和IOW是I/O读和I/O写,所以只要把8255、8253芯片上的WR、RD分别与PC/XT总线上的IOR和IOW直接相连就可以了。当CPU执行外设写操作时,WR有效;当CPU执行外设读操作时,RD有效。CLK:TPC-USB实验系统上提供了1MHZ和2MHZ的时钟,因此,只需把TPC-USB系统板上的1MHZ直接连接到8253的CLK0信号.A0、A1:A0、A1是8255、8253芯片的控制/与端口选择,分时复用。用来区分当前读/写的是控制端口还是其他端口(8255为A、B、C口地址;8253则为选择3个通道中的一个)。将A0、A1直接与8255、8253芯片相连,通过改变A0、A1的值可以实现片内选。PA0PA6:PA0PA6是8255 端口A的口,与7段数码管的ag直接相连,输送时间信息.PC0、PC1:PC0、PC1是8255端口C的口,与7段数码管的s1、s2直接相连,其中s1、s2是7段数码管的端口,系统通过C口输送信息到s1、s2选通数码管工作.GATE0、GATE1:门控输入信号控制计数器工作(允许/禁止计数,启动/停止计数),可分成电平控制和上升沿控制两种类型。用于系统要求门控信号总为高,因此直接与5V相连CLK1-OUT0:由于系统要求获得1HZ的中断频率,TPC-USB只能提供1MHZ的脉冲信号,而8253的初始字最大为65563,不能满足要求.因此需把1MHZ的脉冲信号降频来满足8253对输入频率的要求.因此先将1MHZ经过8253通道0降频后由OUT0输出到通道1的CLK1,因此直接将CLK1连接到OUT0上。OUT1-非门:由8253通道1产生的1MHZ的脉冲信号通过中断IRQ3引起系统中断程序实现时钟功能。IRQ3当有高电平时就向CPU发出个中断请求,而通道1产生的脉冲信号为每秒由OUT1发出个长度为0.01秒的低电平;因此需要通过非门将信号转换成高电平。2.2可编程计数/定时器82532.2.1 8253主要特性 有3个独立的16位计数器/定时器,即3个独立通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数 计数脉冲可以是系统脉冲,也可以是外部事件 触发方式可以是软禁啊出发或硬件触发2.2.2 8253的内部结构和引脚8253为24脚,双列直插式芯片。其引脚排列与内部结构如图所示。和8255A一样,其内部有一个三态数据缓冲器,以保证未选中时内部数据线和系统数据总线是“脱开”的。三个计数器在使用时是独立的。每一个计数器对外有三个引脚:CLK为计数脉冲输入,GATE为门控信号(允许禁止计数),OUT为输出信号。每一个计数器占用一个IO端口地址,加上控制字口,一片8253共占用4个IO端口地址。和8255A一样,8253也设置了两个用于端口寻址的引脚A1和A0。这两个信号与片选信号、CPu读写信号相配合,实现对8253内部端口的操作。CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号控制计数器工作(允许/禁止计数,启动/停止计数),可分成电平控制和上升沿控制两种类型OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号2.2.3 8253的工作方式     8253共有6种工作方式,下面分别说明每一种方式的要点。 2.2.3.1 方式0计数到终点输出变为高电平     当将某计数器设置成方式0后,其输出OUT变低电平,装入初值后,仍保持低电平。门控为高电平开始计数。每来一个计数脉冲CLK,计数器的值减1,当计数到达终点即计数器的值变为0时,OUT变为高电平。在计数期间可用门控信号暂停计数(即门控为低电平时,计数暂停)。  输出端OUT由低变高可以用来作为中断请求信号,也可作为查询信号,也可直接去控制某个操作,如让某个开关动作。   2.2.3.2方式1可编程单稳    所谓单稳,是指这样的电路,它有两种状态,但只能稳定在一种状态。在一定的外界作用下,它能从这一种状态进入到另一种状态,但经过一定时间后,又自动恢复到原来的状态。 这个时间参数一般是由外加电阻、电容的值决定的。8253的方式1就是模拟单稳电路,其处于非稳定状态的时间可通过程序进行设置。   一旦8253的某计数器被设置成方式1后,其OUT变高电平,装入初值后,仍保持高电平,等待门控上升沿到来。门控为电平高后的第一个CLK下降沿时0UT变低电平,初值又被重新装入一次,并开始计数,每来一个计数脉冲,计数器的值减1。当减到0时OUT变高电平。此后门控的上升沿可再次启动此过程。 门控上升沿的到来使得OUT开始输出负脉冲(这种现象叫触发),其宽度为CLK的周期乘以预置值。如果在负脉冲期间,即计数未到达终点,GATE再来一个上升沿,则再次赋初值,重新开始计数。 2.2.3.3 方式2分频脉冲发生器(分频器)     方式2用来对输入脉冲(即计数脉冲CLK)N分频(N为预置的初值),在输出信号周期中低电平的时间为一个CLK周期。    设置此方式后,OUT变高电平,装入初值后便自动开始计数,减到1时OUT变低电平。经过一个CLK周期,OUT恢复高电平,且计数器又自动装入初值,重新开始计数。如此循环下去。如图623所示是工作在方式2的示意图。在上述过程中GATE应一直保持高电平。若GATE变低电平将禁止计数,并使输出为高电平。在GATE再次变高电平时,计数器将重新装入预置的初值,并开始计数。2.2.3.4 方式3方波发生器 方式3类似于方式2,输出是周期性的。不同的是方式3输出方波。如果预置的初值N为偶数,则输出周期中高电平和低电平的宽度相等;如果N为奇数,则输出周期中高电平比低电平多一个CLK周期的时间,当N相当大时,也可认为是方波。当然,一般采用方式3时,置初值为偶数。   设置成方式3后,OUT变高电平,装入初值后便自动开始计数。如初值为偶数,每个CLK使计数器减2,计到终点改变电平。如初值为奇数,则输出为高电平时第一个CLK使计数器减1,随后每个CLK使计数器减2;输出为低电平时第一个CLK使计数器减3,随后每个CLK使计数器减2。每当计数到终点都会改变电平,初值又被重新装入,并开始计数。如此循环下去,如图624所示。和方式2一样,GATE变低可暂停计数。 2.2.3.5 方式4软件触发选通   设置成方式4后,OUT变高电平,写入计数值后自动开始计数(所以称之为软件触发),计数到终点输出一个CLK周期的低电平脉冲。GATE变低可暂停计数,用GATE的上升沿可重新赋初值,并开始计数。   2.2.3.6 方式5硬件触发选通   设置成该方式后,OUT变高电平,写入计数值后需等待GATE上升沿的到来才开始计数(所以称之为硬件触发)。计数到终点也输出一个CLK周期的低电平脉冲。计数过程中不受GATE电平的影响。此后,用GATE的上升沿可重新赋初值,并开始计数。  在本时钟系统设计中,分别使用了8253的方式3和方式2作为系统工作的方式。2.3可编程并行I/O接口8255A2.3.1 可编程并行输入输出接口8255A 的结构    Intel 8255A是一种可编程并行输入输出接口。所谓并行,是指数据的各位同时传送。 8255A只支持字节数据的并行传送。 8255A为40引脚、双列直插封装。其引脚排列及内部结构示意图如图所示。由图可看出,它由数据端口、组控制电路、数据总线缓冲器、读写控制逻辑等组成。 2.3.1.1数据端口     8255A有3个8位数据端口:端口A、端口B和端口c,分别简称为A口、B口和C口。它们对外的引线分别是PA7PA0、PB7PB0和PC7PC0。每一个端口都可由程序设定为输入或输出。c口可分成两个4位的端口:c高4位口(Pc7PC4)和c低4位口(PC3PC0)。 2.3.1.2 A组、B组控制电路 在8255A内部,3个端口分成两组来管理。A口及c高4位口为A组,B口及c低4位 口为B组。两组分别设有控制电路,控制电路根据“控制字”进行相应的控制。   2.3.1.3 数据总线缓冲器   这是一个8位三态双向缓冲器,作为8255A与系统总线的接口。对于和系统数据总线直接相连的接口芯片来说,一般都应具有三态缓冲器,以保证在芯片未被选中时和系统总线处于“脱开”状态。数据总线缓冲器还有抑制噪音、增强驱动能力的功能。   2.3.1.4 读写控制逻辑   该电路根据CPU读、写等有关信号对8255A内部进行读、写控制,用于管理所有的数据、控制字和状态字的传送。对8255A进行控制的信号有:   CS(上划线)片选信号,低电平有效。为低时,8255A被选中。   RD(上划线)读信号,低电平有效。该信号为低且CS(上划线)有效时,8255A送指定端口的数据或状态至CPU。   WR(上划线)写信号,低电平有效。该信号为低且CS(上划线)有效时,将数据总线上的数据写到指定的数据端口或控制字寄存器。   RESET复位信号,高电平有效。该信号用来清除所有的内部寄存器,并将A口、B口和c口均置成输入状态。     A1、A0端口寻址信号。8255A含有3个数据端口和一个控制字端口,需要有两个输 入端来进行端口选择,这就是A1和A0。    一般情况下,A1和A0分别接系统地址总线的最低两位(A1和A0)。但在8086系统中由于地址的最低位A0兼作低8位的数据传送控制信号,不能再参与8255A内部端口的寻址,所以端口寻址引脚Al、A0一般接系统地址总线的A2和A1。当确定了端口寻址引脚的接法,8255A的各个端口的地址也就确定下来。一片8255A要占用4个IO端口地址,A口的地址可作为其他端口地址的基准,因此A口的地址被称为基地址(简称基址)。和存储器芯片片选信号的产生相类似,8255A的片选信号由用于片内端口寻址以外的地址(高位地址)译码产生。2.3.2 8255A有三种基本的工作方式:  2.3.2.1方式0   方式0为基本的输入输出方式,传送数据时不需要联络信号。A口、B口和c口(或C高4位口及c低4位口)均可独立设置成方式0输入口或方式0输出口。   2.3.2.2方式1   方式l为选通输入输出方式,即需要进行联络的输入输出。A组、B组的8位口(A口或B口)可被设置为方式1输人口或方式1输出口,而这时要用相应C口的3根线作联络线。   2.3.2.3 方式2   方式2为双向传送。该方式要使用c口的5根线作联络线。由于c口只有8根线,因 此只能有一组使用方式2确定为A组。当A组被设置成方式2时,A口被设置成双向端口,即既可以输入数据,也可以输出数据,c口的5根线被指定为联络线。   2.3.2.4 方式1、2用到的联络信号   当将8255A设置为方式1或方式2时,要使用c口中的一些线传输联络信号。这些信 号可归结为五种(方式1仅使用其中的三种):   (1)STB(上划线)(Strobe)     选通,输入信号,由外设提供,低电平有效。该信号将外设提供的数据送人端口的输入缓冲器。   (2)IBF(Input Buffer Full)   输入缓冲器满,输出信号,高电平有效。该信号有效表示来自外设的数据已经进入输入缓冲器,但CPIJ尚未取走,外设暂时不要送新的数据。       (3)OBF(上划线)(Output Buffer Full)   输出缓冲器满,输出信号,低电平有效。为低时表示CPU已把数据送到指定端口,该端口外围引线上的数据有效,外设可以利用了。   (4)ACK(上划线)(Acknowledge)   来自外设的回答,输入信号。为低时表示输出的数据已被外设接收,CPU可以输出下一个数据。     (5)INTR     中断请求,送往CPU。输入和输出都可以引起中断。对于输入,外设的数据进入输入缓冲器后8255A产生INTR,请求CPU取走数据;对于输出,当外设利用完输出缓冲器中的数据之后会发出一个回答信号ACK(上划线),8255A在ACK(上划线)后沿的作用下产生INTR,请求CPU输出下一个数据。本时钟系统设计中选用8255A作为8位LED接口电路,端口方式A和B都工作于方式0,端口B作为8个显示器共用的字型码输出线。端口A提供位选码,任何时候只有一位输出0,即低电平,经反相,只有一个显示器阳极高电平,只有一个显示器能显示其代码。2.4 LED七段显示器七段显示器是有七段LED适当地排列并封装在一起而构成的。在常用的七段显示器内,各个LED可按共阳极或共阴极连接。他们分别用不同的驱动电路来驱动。2.4.1 共阳极LED显示器对于共阳极显示器,其段驱动电路的输出位低电平时,改段的LED导通并点亮,段驱动电路应能吸收额定的段导通电流。2.4.2 共阴极LED显示器在共阴极显示器情况下,其段驱动电路的输出为高电平时,该段的LED导通并点亮,段驱动电路能供给额定的段导通电流。2.4.3 多位数字静态显示及其接口在多为数字静态显示系统中,每位数字显示器分别都应有各自的锁存、译码和驱动器。用它们分别缩唇每位待显数字的BCD码,经各自的译码器将4位BCD数码变换为7位段码,供段驱动电路去连续地驱动相应数字显示器的每个显示段。2.4.4 多位数字动态显示及其接口由软件译码、硬件驱动:选用8255A作为8位LED接口电路,端口方式A和B都工作于方式0,端口B作为8个显示器共用的字型码输出线。端口A提供位选码,任何时候只有一位输出0,即低电平,经反相,只有一个显示器阳极高电平,只有一个显示器能显示其代码。由硬件译码、驱动:各数字显示器公用一个公共的锁存、译码和驱动器。在锁存器仲,待显数字的BCD数码经译码驱动器,驱动各个数字显示器并联着的每个显示段。能被驱动点亮的数字显示器,能分显示出相应的BCD数码,取决于其相应的公共极被选通本时钟系统设计选用多位数字动态显示的软件译码、硬件驱动方式。2.5 硬件测试硬件测试主要有两种:静态测试和动态测试。Ø 静态测试:查看硬件的连接是否正确Ø 动态测试:测试系统的时钟显示功能第三部分 软件设计在软件设计中我们要实现7段数码管的显示时间信息,CPU与接口之间可按查询方式或中断方式进行数据传送,本设计采用中断方式。CPU与时钟系统之间用中断方式来交互.通过硬件中断,实现时钟的计时功能.每次中断就秒数增1.主程序将时间信息送到寄存器,将寄存器作为显示子程序的程序入口,通过压栈保护寄存器内容,循环调用子程序输出时间信息到7段数码管.通过DOS功能调用,监视键盘输入,选择相应的功能.3.1 8253、8255、8259的初始化3.1.1 8253的初始化时钟系统最基本的要求就是时间变化的正确时钟系统的,要能准确的反映时间的变化,系统要及时的处理计时到达的信号.因此我们的时钟系统采用的是中断方式.8253有6种工作方式,通过比较8253芯片的方式2输出的信号经过非门后能满足中断方式的要求。时钟的正确性,对于方式确定好后, 8253的初始化字的选择是至关重要。由于TPC-USB系统只能提供1MHZ的脉冲, 系统要求中断频率为每秒1次,即是要求初始化字为1000000,远大于8253初始字的范围(065553)。因此我们将使用8253的通道0(工作于方式3)与通道1(工作于方式2)。3.1.1.1 设置8253方式选择控制字对于通道0,采用的是方式3:方波频率发生器。选择通道0,D7D6=00;采用16位读写,D5D411;选择工作方式3,D3D2D1=011;初始字采用2进制,D0=0。即D7D00011011036H初始化代码:MOV AL,36HMOV DX,283HOUT DX,AL对于通道1,采用的是方式2:频率发生器。选择通道0,D7D6=01;采用16位读写,D5D411;选择工作方式2,D3D2D1=010;初始字采用2进制,D0=0。即D7D00111010074H初始化代码:MOV AL,74 H MOV DX,283H OUT DX,AL3.1.1.2 设置初始化字基于本时钟系统与实验环境的客观要求,我们需要将1MHZ的脉冲信号转换成1HZ的脉冲信号。因此我们对通道0的初始字置为100002710H,代码为:MOV AX,2710HMOV DX,280HOUT DX,ALMOV AL,AHOUT DX,AL通道1的初始字置为10064H,代码为:MOV AX,64HMOV DX,281HOUT DX,ALMOV AL,AHOUT DX,AL3.1.2 8255的初始化由于本时钟系统是通过7段数码管显示时间信息,不需要8255芯片控制,只需要有信号到,就直接输送到数码管,所以可以用8255芯片的方式0直接输送信号到7段数码管.所以8255的初始化相对比较简单。3.1.2.1设置8255的方式字本系统使用8255工作在方式0只完成简单的并行输入输出。故8255的初始化为最高3位是100,A、C低4位口负责输出,故D4、D3、D0为0,其他位置任意。我们设置为80H代码为:MOV AL,80HMOV DX,288HOUT DX,AL3.1.3 8259的初始化3.1.3.1 设置8259的方式字在本系统中,由于TPC-USB实验环境集成了8259芯片并已初始化。TPC-USB实验板上,固定的接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。只需要在程序中设置中断矢量,代码为:MOV AX,SEG INT_TIMERMOV DS,AXLEA DX,INT_TIMERMOV AX,250BHINT 21HIN AL,21HAND AL,0F7HOUT 21H,AL3.2 时钟程序设计本系统在8253芯片保证计时准确的前提下,通过8253芯片发送的信号进入中断处理程序,实现时钟的准确性。在程序运行过程中,可以从键盘接收指令,从而实现功能的多样化。系统的主程序流程图,见图 3.21开始设置中断调用INIT子程序Started=1显示HOUR:MINUTEMODE=1CLKSTOP=ESC显示SECONDMODE=1CLKSTOP=ESC循环显示HOUR:MINUTE循环显示HOUR:MINUTE返回初始界面NYYNN图3.21 主程序流程图中断处理程序采用比较的方式实现时钟计时功能与时钟的数制(逢60进1归0或逢24归0),中断程序流程图见图 3.22关闭中断SECOND+Second<60Second=0Minute+minute<60Minute=0hour+Hour<24退出中断开中断NNN图3.22 中断程序流程图3.3 程序清单;=;8253时钟程序;功能:;1.显示当前系统时间 2.自定义时间 3.可用作秒表;原理:;利用8253的方式3(作用为降频)、方式2(等于频率发生器)产生每秒1次中断信号;实现计时功能,利用8255并行口输出时间信息到7段LED灯显示;=;=;数据段;=DATA SEGMENTIO8255A EQU 28AH ;8255 C口IO8255B EQU 28BH ;8255控制口IO8255C EQU 288H ;8255 A口CHAN1 EQU 280H;8253通道0CHAN2 EQU 281H;8253通道1CONTR EQU 283H;8253控制口LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H;段码MESG1 DB 0DH,0AH,0AH,0AH,'1->Clock Mode(Default:Local Computer)',0DH,0AH DB '2->Set Time',0DH,0AH DB 'ESC->Exit',0DH,0AH,'$'MESG2 DB 'Input Hour(00-23;q to Exit):','$'MESG3 DB 0AH,0DH,'Input Minute(00-59;q to Exit):','$'MESGERR DB 0DH,0AH,'Input Error!',0DH,0AH,'Input Again:','$'MAX DB 0COUNTER DB 0BUFF DB 4 DUP(4,?,0,?)STARTED DB 0 ;判断是否已初始化.SETTIME DB 0 ;判断是否已设置过时间MODE DB 0HOUR DB 00SECOND DB 00MINUTE DB 00TMP DB 0;返回程序界面控制字 AL=1BH则返回DATA ENDS;=; 代码段;=CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,CS;设置中断MOV DS,AXMOV AX,SEG INT_TIMERMOV DS,AXLEA DX,INT_TIMERMOV AX,250BH;中断矢量为0BHINT 21HIN AL,21HAND AL,0F7H;开中断IRQ3OUT 21H,ALMOV AX,DATAMOV DS,AXSTARTCLOCK:CALL INTERFACEMOV TMP,0CMP STARTED,1;检查程序是否已初始化,是则跳过JE RECCALL INIT;初始化程序MOV STARTED,1 ;设置为已初始化REC:MOV MODE,0 MOV BL,HOUR;显示HOUR:MINUTECALL DISPTIME;DISPTIME子程序,入口为BLCMP TMP,1BHJE STARTCLOCKMOV BL,MINUTECALL DISPTIMECMP TMP,1BHJE STARTCLOCKMOV BL,0AAH ;送入BL0AAH,使LED灯全黑CALL DISPTIMECMP TMP,1BHJE STARTCLOCKCMP MODE,1;MODE=1则跳转显示SECONDJE DISPSECJMP RECDISPSEC:MOV MODE,0;MODE=0,不跳转MOV BL,SECOND;显示SECONDCALL DISPTIMECMP TMP,1BHJE STARTCLOCKCMP MODE,1;跳转至显示HOUR:MINUTEJE RECJMP DISPSECEXIT:MOV AH,4CH;程序结束,返回DOSINT 21H;=;子程序,初始界面;=INTERFACE PROCBEGINCLK:LEA DX,MESG1;初始个比较友好的界面MOV AH,09HINT 21HMOV AH,07H;无回显输入,功能选择INT 21HCMP AL,'1'JE JMPOUTCMP AL,'2'JE SETTINGCMP AL,1BHJNE EXIT JMP BEGINCLKSETTING:;设置时间LEA DX,MESG2MOV AH,09HINT 21HMOV MAX,23H;限制输入范围CALL GETINPUTCMP AH,'q'JE BEGINCLKMOV HOUR,AL;得到输入的小时LEA DX,MESG3MOV AH,09HINT 21HMOV MAX,59HCALL GETINPUTCMP AH,'q'JE BEGINCLKMOV MINUTE,AL;得到输入的分钟MOV SETTIME,1JMPOUT:RETINTERFACE ENDP;=;子程序;功能为输出7段LED显示 BL为入口;=DISPTIME PROCMOV CX,0F0H;设置时延RECYCLE:MOV AL,0;灭灯MOV DX,IO8255AOUT DX,ALPUSH CXPUSH BXMOV CL,BL;以下显示个位数AND CL,0FH ;屏蔽高4位,BL为要显示的数的个位数MOV CH,0LEA SI,LED ;置LED数码表偏移地址为SIADD SI,CX ;求出对应的LED数码MOV AL,BYTE PTR SIMOV DX,IO8255C ;自8255A的口输出OUT DX,ALMOV AL,1 ;使相应的数码管亮MOV DX,IO8255AOUT DX,ALMOV CX,3000DELAY3:LOOP DELAY3MOV AL,0;以下显示十位数MOV DX,IO8255AOUT DX,ALPOP BXMOV CL,BL ;BL为要显示的数SHR CL,4 ;BL为要显示的数的十位数MOV CH,0LEA SI,LED ;置LED数码表偏移地址为SIADD SI,CX ;求出对应的LED段码MOV AL,BYTE PTR SIMOV DX,IO8255C ;自8255A的口输出OUT DX,ALMOV AL,2 ;使相应的数码管亮MOV DX,IO8255AOUT DX,ALMOV DX,0FFH;有键按下则置位MODE、TMPMOV AH,06;无则循环显示INT 21HJE DISPENDMOV MODE,01MOV TMP,ALDISPEND:POP CXLOOP RECYCLERETDISPTIME ENDP;=

    注意事项

    本文(基于TPCUSB实验系统的时钟系统设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开