数字钟_接口课设报告_8086微机原理与接口技术课程设计

时间:2024.5.8

接口技术基础

实验报告

学院:计算机科学与技术学院

班级:计091

学号:0913022032

姓名:曹恒楼

指导老师:顾 晖

时间:2012/6/16

目  录

数字钟的设计………………………………………………………………………3

设计需求分析与解决方案……………………………………………………3

1.1 设计需求分析…………………………………………………………………………3

1.1.1   题目要求……………………………………………………………………3

1.1.2   根据题目要求提出问题……………………………………………………3

1.2 解决问题方法及思路…………………………………………………………………3

1.2.1   硬件设计选择部分…………………………………………………………3

1.2.2   软件设计分析………………………………………………………………4

硬件设计…………………………………………………………………………5

2.1 选择芯片8255…………………………………………………………………………5

2.1.1   芯片8255 A在本设计中的功能作用………………………………………5

2.1.2   芯片8255 A的功能分析……………………………………………………5

2.1.3   8255 A 方式控制字…………………………………………………………5

2.1.4   8255 A与外设相连的逻辑图………………………………………………6

2.2 选择器件 LED…………………………………………………………………………6

2.2.1   LED在本设计中的作用……………………………………………………6

2.2.2   LED功能分析………………………………………………………………6

2.2.3   LED技术参数………………………………………………………………7

2.3 硬件设计思路及连线图………………………………………………………………7

2.3.1   硬件设计思路………………………………………………………………7

2.3.2   硬件接线原理图、连接图…………………………………………………7

软件设计思路及程序控制流程框图……………………………………… …8

3.1 软件设计思路…………………………………………………………………………8

3.2 程序流程图的相关说明………………………………………………………………9

3.3 程序控制流程框图……………………………………………………………………9

3.4 程序清单(见附录)…………………………………………………………………11

实验环境………………………………………………………………………11

上机调试过程…………………………………………………………………11

5.1 硬件调试………………………………………………………………………………11

5.2 软件调试………………………………………………………………………………13

5.3 软、硬件联立调试……………………………………………………………………13

5.4 调试结果………………………………………………………………………………13

实验运行结果、分析…………………………………………………………15

6.1 实验运行结果与分析…………………………………………………………………15

6.2 问题讨论………………………………………………………………………………15

实验心得………………………………………………………………………16

参考文献………………………………………………………………………17

附录(源代码)……………………………………………………………………17

数字钟的设计

一、设计需求分析与解决方案

1.1  设计需求分析

1.1.1 题目要求

设计一个接口与七段LED显示器,显示一个计时时钟,显示初值为0,每隔一秒改变一次显示值,60s为一分钟,60min为一小时,LED显示器循环显示时、分、秒的动态值。

1.1.2 根据题目要求提出问题

1、选择用于显示时间的显示器;

2、怎样使显示器实现显示时间;

3、如何实现计时功能,是用软件还是硬件实现;

4、选择何种接口芯片以及考虑该接口芯片及LED显示器的技术参数,考虑最大工作电流,需不需要其他辅助芯片等;

5、对设计题目功能的扩展,在设计中加入其他功能;

6、可否用不同的设计方法完成设计,与其他计算机语言设计相比的异同之处。

1.2  解决问题方法及思路

1.2.1 硬件设计选择部分

1、接口芯片的选择

秒位设置完毕后,如何将时间信息传送到外设中,即选择何种芯片用于CPU与外设之间传送信息。接口芯片是微型机系统中实现输入输出的常用器件,是CPU与外设之间的界面,一方面要接收CPU进行输入/输出所发出的一系列信息,另一方面又要与外设交换数据以及一些联络信号等。为增加本设计的灵活性,在接口的选择上要求是可编程的输入/输出接口8255A芯片或8251A芯片。

8255A芯片:它是一种可编程通用并行接口芯片,它有24条可编程的I/O引脚,采用40脚双列直插式封装,单一+5V电源,全部输入/输出均与TTL电平兼容。在8255A中有A、B、C三个并行输入/输出端口,其功能全部由程序设定,每个端口都有自己的特点。A口、B口通常作为独立的I/O端口使用,C口也可以作为一般的I/O端口使用,但当A口、B口作为应答式的I/O端口使用时,C口分别以来为A口、B口提供应答控制信号。如果采用8255A作为计时时钟的输入/输出接口,那么8255A的三个端口设置如下:A口工作与方式0,作为输出口,其PA0~PA6分别与外设的段选码相连,用以确定在何时显示时间的哪一位;B口工作与方式0,作为输出口,其PB0~PB7分别与外设相连,作为位选线;C口用来为A口、B口提供应答控制信号。

8251A芯片:它是一种可编程通用串行接口芯片,是通用的同步异步接收/发送器,它的作用是把计算机的并行数据转换成串行数据发送出去,把接收到的外部串行数据转换成并行数据送入计算机内部,它可以通过编程选用同步/异步通信方式,它具有独立的发送器和接收器,能够以单工、半双工或全双工方式进行通信,并提供相应的控制信号。

最佳解决方案:如果采用8251A作为计时时钟的输入/输出接口,那么就需要把计算机的并行数据转换成串行数据发送出去,把接收到的外部串行数据转换成并行数据送入计算机内部,这个过程是需要时间的,所以从时间效率方面来说并没有8255A芯片合适;另外,可编程并行接口芯片(8255A)数据传输速度快,虽然使用的通信线多,但是传输距离并不算远,所以在解决接口问题时,采用可编程并行接口芯片8255A是比较合适的。

2、时间显示

为实现计时时钟的显示,可选择共阴极(或共阳极)七段LED上,芯片LCD或LED,表1-1为两种芯片的比较:发光二极管,是由发光二极管排列组成的显示器件,它采用低电压扫描技术,具有耗电少,使用寿命长,成本低,亮度高,故障少,视角大,视角大,可视距离远的特点。

通过分析和对比以及实验室实验条件可知LED显示器要较优于LCD显示器,因此本实验选择LED来实现时间的显示。

3、秒钟设计

秒钟的设计有两种解决方案:硬件实现、软件实现:

(1)硬件分析:可选择8253A芯片,8253A是一种定时准确、使用方便、灵活性大的可编程定时器/计数器,其定时的时间长度可以通过软件来设置,对芯片设置处置初值后,计数器开始工作,微处理器就可以去做其他工作,定时时间到,电路会产生一个信号,向微处理器提出中断请求,告诉处理器定时时间已到。

(2)软件分析:为实现1秒长度的设定,可执行一个循环程序,通过循环次数和循环嵌套的层数来调节计时时间的长短,该方法的优点是不需要专用的硬件,从而成本低,方法简单灵活,使用起来也比较容易。

(3)最佳解决方案:通过以上分析,硬件实现1秒的设定虽然较准确,但用软件来实现可以极大的节约成本,而且通过周密的计算循环的次数和循环嵌套的层数也可以将计时的准确度提高,所以在实现计时时间方面选择软件是比较好的方案。

1.2.2 软件设计分析

1、初始值设置

在程序中的数据段定义秒位数据second,分位数据minute,时位数据hour,初始值都设为00H,并在LED显示器上显示初值。

2、8255初始化

设置8255的工作方式:B口和C口都用于输出,且都工作在方式0。

3、计时过程

从初始值开始显示,当显示了1s时,秒位加1,并判断秒位是否为60,若不是,则直接显示时间;若是,则将秒位置0,分位加1,接着判断分位是否为60,若不是,则直接显示;若是,则将分位置0,时位加1,然后判断时位是否为25,若不是,则直接显示;若是,则将时位置0,日期加1,并判断日期是否加到31,若是,则将日期清零,重新计时。如此循环。

4、1秒时间的设定

执行一个循环程序,通过循环次数和循环嵌套的层数来调节计时时间的长短,该循环次数处定为0100h。

二、硬件设计

2.1  选择芯片8255

2.1.1 芯片8255 A在本设计中的功能作用

8255是并行的I/0接口芯片,内部有三个相互独立的8位数据端口。8255实现了外设与8086之间的数据传输。8255的B口工作于方式0,作为输出口,其PB0~PB7分别与LED数码管显示器的显示器的八段a,b,c,d,e,f,g,dp相连,C口作为输出口,其PC7~PC0与LED数码管显示器的LED0~LED7相连,作为位选。

2.1.2 芯片8255 A的功能分析

1、8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。三个端口都可以作为输入端口或输出端口。A口有三种工作方式:方式0、方式1和方式2;B口可以工作在方式0或方式1下;C口通常作为联络信号使用。8255的工作只有当片选CS有效时才能进行工作,而控制逻辑端口实现对其他端口的控制。当8255 A工作在方式0时,即基本输入输出方式时,可将三个数据端口划分为四个独立的部分:A口和B口作为两个8位端口,C口的高4位和低4位可以用作两个4位的输入输出口,各个端口都可独立地用作输入或输出。

2、数据总线缓冲器是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的,它可与系统的DB直接相连,实现CPU和8255A之间的信息传送;读写控制器用于管理数据、控制字或状态字的传送,接收来自CPU的地址信息及一些控制信号,然后向A组、B组控制电路发送命令,控制端口数据的传送方向。

2.1.3 8255 A方式控制字

8255A的方式控制字(见图2-1)

                         图2-1  8255A的方式控制字

2.1.4 8255 A 与外设相连的逻辑图

7-3

                                          图2-3    8255与外设相连的逻辑图

PA7~PA0:A口数据信号线;

PB7~PB0:B口数据信号线;

PC7~PC0:C口数据信号线。

2.2  选择器件   LED

2.2.1 LED在本设计中的作用

LED发光二极管(Light-Emitting Diode),在本设计中采用7段数字发光二级管,是作为终端用来显示计时时钟的时、分、秒、毫秒值的。

2.2.2 LED功能分析

LED发光二级管分为共阳极和共阴极两种,共阳就是7段的显示字码共用一个电源的正极,同理共阴就是7段的显示字码共用一个电源的阴极,共阴极数码管原理示意图如下:(见图2-4)

                            图2-4  LED原理图

LED数码管采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。从上图可以看出,要是数码管显示数字,有两个条件:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。

2.2.3 LED技术参数

表2-5    LED共阴极显示管段选码编码表

2.3  硬件设计思路及连线图

2.3.1 硬件设计思路

8086的8位数据线D7~D0与8255的D7~D0相连,地址线经74LS373锁存后其低位A0、A1分别与8255的A0、A1相连,其他地址线经74LS138译码后,其CS0接8255的片选CS引脚,其入口地址为00F0H~00F3H。

8255的A口PA0~PA7分别与逻辑开关的K1~K8相连,其中开关量K7用于判断是否修改时间,K5~K6用于判断修改哪一位,K1~K4为要修改的值;B口作为段选;C口作为位选段码信号。

2.3.2 硬件接线原理图

图2-6 硬件连线原理图

                                                 图2-7    硬件连接图

三、软件设计思路及程序控制流程框图

3.1  软件设计思路

1、初始化8255A,设置其工作方式。

2、设置初值,定义对应十六进制数的七段代码表及其时间区表。

3、显示计时并循环判断,当1秒时间到是则秒位加1计时显示。

4、8255A芯片个端口地址为:控制端口地址:206H

A口地址:200H

B口地址:202H

C口地址:204H

3.2  程序流程图的相关说明

首先对8255A进行初始化,然后开始读取开关量,判断是否要修改时间,若需修改,则判断需修改哪位,随后将该位对应的时间区数据修改为逻辑开关K1~K4对应的值,若不需要修改则继续显示并循环判断,当1秒时间到达时,则秒位加1计时显示。

3.3  程序控制流程框图

图3-1    程序流程图

图3-2中断操作流程图

3.4  程序清单(见附录)

四、实验环境

系统环境:       Win-7系统

软件环境:       Proteus   

五、上机调试过程

5.1  硬件调试

本次课程设计采用的是Proteus集成软件开发环境,把总体分为3大块,第一块就是8086CPU译码电路,如下图5-1,第二块为8255A控制的时间显示电路,如下图5-2,第三块为8255A不可屏蔽中断控制电路,如下图5-3.

在硬件接线连接时,应将8255A的A口与端控制端口相连,用于决定显示值,B口也同段控制端口相连,决定显示值,而C口8位接两个位控制端口,用于决定哪个数码管显示。中断电路与8086CPU译码电路均参照课本先有实验图连接,至此,硬件线路已经接好。

图 5-1 8086CPU译码电路

图 5-2 数码管显示电路

图 5-3 中断控制电路

5.2  软件调试

在软件部分,程序分为三个部分:8255A初始化部分,读入初值、循环操作部分,显示出数字量部分。

5.3  联立调试

软件和硬件分别调试完毕后,进行联机调试,出现了新的问题:显示在LED数码管上的数字不停跳跃,变幻不定,数值显示不稳定,控制不好。

要解决这个问题,我问了几个同学,分别进行修改,刚开始采用6位,改了好久总是控制显示的不好,要么奇数位显示要么偶数位显示,修改了延时操作,又增加了清屏操作,但是数码管还是显示不好。所以最后决定用两个4位数码管显示,增加毫秒位,这样在软件设计时没有出现显示问题,除此之外,每个数字显示后的延时是利用延时子程序的循环次数来控制的,为了使数字编码显示得清楚,应该通过调试,确定延时子程序的循环次数。在本设计中,循环次数设为16(10h)次。

5.4  调试结果

调试后编码结果正确,显示清楚,稳定,且可通过按键进行清零,及校时操作。

图 5-4-1 程序运行效果

图 5-4-2 清零操作

图 5-4-3 校时操作

六、实验运行结果、分析

6.1  实验运行结果与分析

结果:当程序开始全速运行时,LED显示器上显示“00 00 00 00”,一秒后变为“00 00 01”这样每隔一秒秒位加1,显示“ 00 00 59”的后一秒显示为“00 01 00”,显示“23 59 59”的后一秒显示为“ 00 00 00”。

三个按键分别用于实现复位清零、分钟加一、小时加一的系列校时操作,按下复位后,数码管显示初值,加一即在原来基础上进行。

分析:将8255A的 A口(PA0-PA7)作为输出用,A口(PA0-PA7)作为输出用(送段选码),B口(PB0-PB7)作为输出用(送段选码),C口作为输出用(送位选码)。程序首先从8255A的A口读取初始值,并进行显示时间,若按键有中断则响应中断操作。在8255A的B口送段选码,C口送位选码后在LED显示器上显示时间;若中断操作为分钟加一或小时加一,则将对应的值经段码表转换及程序转换后在B口(PB0-PB7)输出作为段选码,在C口输出位选码后在LED显示器上显示时间。然后程序判断之前设置的一秒的时间常量有没有到,若一秒时间到,则将时间加一后接着显示。

6.2  问题讨论

该试验一开始较简单仅显示分秒,没有出现什么问题,后来加上时日和毫秒以及按键后致使程序变得复杂,条件跳转超出范围而调用子程序又有错,后来终于使用JMP指令完成了程序,结果达到了要求但程序太繁杂条理不清,然后自己又将程序进行一些优化,把多余的操作删掉后,终使程序较为理想。

七、实验心得

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下的是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

这次实验我选择的题目有是数字钟,因为一开始感觉并不是很难,所以就想一个人独自完成本次的课程设计,刚开始我的想法是硬件主要利用两个芯片,8255和8253,利用8253的通道0实现计时单元,同时利用软件进行计数,而时间显示则采用6个7段数码管分别显示时、分、秒,并采用动态扫描方式来实现。但我依着这个总体设计想法做了两天后,硬件也连接好了,代码也写好了,但是数码管总是显示的不对,然后又花了一天的时间去调代码,可是最后还是没调出来,主要就是对数码管的控制不好,用8255的C口PC0~PC6来分别控制六个数码管,但是总是显示的不对,请同学帮看看后,也没有得到很好的解决。所以我立刻改了方案,利用软件计数,同时用8255的C口控制8个7段数码管,多出的两位用来增加毫秒的显示功能,同时利用不可屏蔽中断NMI实现始终的复位、校时的功能,当然这样的设计也不是一帆风顺的,主要的困难来自对程序的理解,例如始终的两位,逢十就要向十位进一,余数用作个位的显示,同时每100ms要向秒进1,每逢60s要向分进1,每逢60min要向小时进1,而一天只有24小时,整个过程要用软件进行控制,其实是有难度的,还涉及到内存的存取原理,低位高位的转换等等,都是需要我一个人去解决的,功夫不负有心人,经过我的摸索以及向同学的一些请教,我最终对实验的原理有了清晰的认识。虽然主要芯片就是用了8255,但是在那么短的时间内能够完成设计既定的功能,我对这个结果还是很满意的。

总之,通过这次课程设计,我更加清晰的认识了计算机中常用接口电路及8255A的应用和设计技术,也认识到了理论知识对应用技术的指导性作用。通过实践,我进一步加深了对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题、解决问题的能力得到了一定的提高。我也更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识。

在实验过程中,我也遇到了一些困难,但是我通过及时请教同学,查询相关资料,及时解决了问题,但仍有不足之处,我将会在今后学习中更加努力。

八、参考文献

[1] 顾晖,梁惺彦等.微机原理与接口技术.北京:电子工业出版社,2011.8

[2] 沈美明,温冬婵.IBM-PC汇编语言程序设计(第2版). 北京:清华大学出版社,2001

附录(源代码):

IO1  EQU       200H

IO2  EQU       400H                 

              

CODE     SEGMENT     'CODE'

    ASSUME       CS:CODE

START:MOV  ES,AX

       MOV      SI,2H*4                ;不可屏蔽中断NMI向量设置

       MOV      AX,OFFSET UPDATETIME ;偏移地址

       MOV      ES:[SI], UPDATETIME        

       MOV      AX, SEG  UPDATETIME   ;段地址

    MOV      ES:[SI+2],AX 

       MOV      AL,10001001B             ;显示8255A初始化,A,B,C三端口均工作在方式0,基本输出

       MOV      DX,IO1+6

       OUT       DX,AL

       MOV      AL,10000000B             ;控制器8255A初始化,C端口输出

       MOV      DX,IO2+6

       OUT       DX,AL 

LOP1:  CALL     TIMEDISPLAY            ;调用时间显示器

       CALL     TIMESET                    ;调用设置时间

       JMP        LOP1

             

      MOV      AH,4CH

       INT        21H

TIMESET      PROC                          ;设置时间显示器

       PUSH     DX

       PUSH     CX

       PUSH     BX

       PUSH     AX

       PUSH     SI

       PUSH     DI

       PUSHF

       LEA        DI,TIMEOUT

       MOV      DX,WORD PTR[DI]            ;取计时器分钟

       MOV      CX,WORD PTR[DI+2]  ;取计时器秒钟

       MOV      BX,WORD PTR[DI+4]  ;取计时器分钟

       MOV      AX,WORD PTR[DI+6] ;取计时器秒钟

       XCHG    AH,AL                  ;由于内存关系,高低位交换

       XCHG    BH,BL

       XCHG    CH,CL                  ;由于内存关系,高低位交换

       XCHG    DH,DL

       CMP       AL,9                     ;毫秒100进1,与9相比,如果相等则加一后向高位进一;否则直接加一

       JNZ        NEXT2

       MOV      AL,-1                    ;因为都要加一,所以要显示0这里给-1值

       CMP       AH,9

       JNZ        NEXT3

       MOV      AH,-1

       CMP       BL,9

       JNZ        NEXT4

       MOV      BL,-1

       CMP       BH,5                     ;秒60进1

       JNZ        NEXT5

       MOV      BH,-1

       CMP       CL,9

       JNZ        NEXT6

       MOV      CL,-1

       CMP       CH,5                     ;分60进1

       JNZ        NEXT7

       MOV      CH,-1

       CMP       DL,9

       JNZ        NEXT8

       MOV      DL,-1

       CMP       DH,2                    ;24小时

       JNZ        NEXT9

       MOV      DH,-1       

 NEXT9:INC        DH                ;加1操作

 NEXT8:INC        DL

 NEXT7:INC        CH

 NEXT6:INC        CL

 NEXT5:INC        BH

 NEXT4:INC        BL

 NEXT3:INC        AH

 NEXT2:INC        AL

       XCHG    AH,AL                  ;由于内存关系,高低位交换

       XCHG    BH,BL

       XCHG    CH,CL                  ;由于内存关系,高低位交换

       XCHG    DH,DL

       MOV      WORD PTR[DI],DX            ;取计时器分钟

       MOV      WORD PTR[DI+2],CX  ;取计时器秒钟

       MOV      WORD PTR[DI+4],BX  ;取计时器分钟

       MOV      WORD PTR[DI+6],AX ;取计时器秒钟

       POPF

       POP        DI

       POP        SI

       POP        AX

       POP        BX

       POP        CX

       POP        DX

       RET 

TIMESET      ENDP

TIMEDISPLAY     PROC                   ;调用时间显示器

       PUSH     CX

       PUSH     BX

       PUSH     AX

       PUSH     SI

       PUSH     DI

       PUSHF

       MOV      CL,77H                 ;01110111循环右移

       MOV      CH,0

       LEA        SI,TIMEOUT

       MOV      DI,SI

       ADD       DI,4

DISP2:    MOV      AL,CL                  ;输出位码

       MOV      DX,IO2+4

       OUT       DX,AL

       

       MOV      BX,OFFSET LEDTAB  ;输出A段码

       MOV      AL,[SI]

       XLAT

       MOV      DX,IO2

       OUT       DX,AL

       

       MOV      BX,OFFSET LEDTAB  ;输出B段码

       MOV      AL,[DI]

       XLAT

       MOV      DX,IO2+2

       OUT       DX,AL

       CALL     DISPLAY                     ;延时

       MOV      AL,0H                  ;清空A端口的内容

       MOV      DX,IO2

       OUT       DX,AL 

       MOV      AL,0H                  ;清空B端口的内容

       MOV      DX,IO2+2

       OUT       DX,AL

       

       INC        DI

       INC        SI

       ROR       CL,1

       INC        CH

       CMP       CH,4

       JZ           NEXTTIME

       JMP        DISP2

NEXTTIME:  POPF

       POP        DI

       POP        SI

       POP        AX

       POP        BX

       POP        CX  

       RET

TIMEDISPLAY     ENDP

DISPLAY       PROC                          ;延时

       PUSH     CX

       PUSH     BX

       MOV      BX,10H

D1:  MOV      CX,0FH

D2:  LOOP     D2

       DEC       BX

       JNZ        D1

       POP        BX

       POP        CX

       RET

DISPLAY       ENDP

    

UPDATETIME      PROC

       CLI

       PUSH     DX

       PUSH     CX

       PUSH     AX

       PUSH     SI

       PUSHF

       MOV      DX,IO1+4                   

       IN          AL,DX

       CMP       AL,11111110B        ;清零

       JZ           A5

       CMP       AL,11111101B        ;分钟加1

       JZ           A4

       CMP       AL,11111011B        ;小时加1

       JZ           A3

       JMP        NEXTOUT

A5:  LEA        DI,TIMEOUT

       MOV      AX,0

       MOV      WORD PTR[DI],0        ;取计时器分钟

       MOV      WORD PTR[DI+2],0     ;取计时器秒钟

       MOV      WORD PTR[DI+4],0     ;取计时器分钟

       MOV      WORD PTR[DI+6],0     ;取计时器秒钟     

       JMP        NEXTOUT

A4:  LEA        DI,TIMEOUT

       MOV      DX,WORD PTR[DI]            ;取计时器分钟

       MOV      CX,WORD PTR[DI+2]  ;取计时器秒钟

       XCHG    CH,CL                  ;由于内存关系,高低位交换

       XCHG    DH,DL

       CMP       CL,9

       JNZ        N6

       MOV      CL,-1

       CMP       CH,5

       JNZ        N7

       MOV      CH,-1

       CMP       DL,9

       JNZ        N8

       MOV      DL,-1

       CMP       DH,2

       JNZ        N9

       MOV      DH,-1       

N9:  INC        DH

N8:  INC        DL

N7:  INC        CH

N6:  INC        CL

       XCHG    CH,CL                  ;由于内存关系,高低位交换

       XCHG    DH,DL

       MOV      WORD PTR[DI],DX            ;取计时器分钟

       MOV      WORD PTR[DI+2],CX  ;取计时器秒钟

       JMP        NEXTOUT

A3:  LEA        DI,TIMEOUT

       MOV      DX,WORD PTR[DI]            ;取计时器分钟

       XCHG    DH,DL

       CMP       DL,9

       JNZ        X8

       MOV      DL,-1

       CMP       DH,2

       JNZ        X9

       MOV      DH,-1       

X9:  INC        DH

X8:  INC        DL

       XCHG    DH,DL

       MOV      WORD    PTR[DI],DX   ;取计时器分钟

NEXTOUT:POPF

       POP        SI

       POP        AX

       POP        CX

       POP        DX

       STI

       IRET

UPDATETIME      ENDP         

TIMEOUT      DB         0,0,0,0,0,0,0,0              ;初值显示小时分钟,秒毫秒     

LEDTAB        DB         3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH     ;段码表

       CODE     ENDS

END START                            

更多相关推荐:
微机原理与接口技术课程设计报告

微机原理与接口设计报告学院:信息科学与工程学院班级:学号:姓名:指导老师:完成时间:20xx年06月24号一、设计目的1、了解交通灯管理的基本工作原理。2、熟练掌握8255A可编程并行接口芯片的接口编程方法,掌…

微机原理与接口技术课程设计实验报告-交通灯控制系统

《微机原理与接口技术》课程设计报告交通灯控制系统班级:学号:姓名:指导教师:成绩:xxxx年x月x日目录1、课程设计的目的和要求32、系统的主要功能、作用及主要性能指标13、总体设计13.1基本工作原理13.2…

微机原理课程设计报告

科技学院课程设计报告20xx20xx年度第一学期名称微机原理与接口技术题目院系动力系自动化专业班级08K2学号学生姓名指导教师设计周数1周成绩日期20xx年1月7日微机原理及应用课程设计任务书一目的与要求1通过...

微机原理与接口技术课程设计(带实验心得)

福建农林大学计算机与信息学院信息工程类课程设计报告课程名称课程设计题目姓名系专业年级学号指导教师职称数字信号处理课程设计时域采样定理演示的实现电子信息工程系电子信息工程20xx谢秀娟讲师20xx年1月5日1福建...

微机原理与接口技术课程设计报告

微机接口技术课程设计设计报告题目实时钟显示与定时控制设计专业班级学号姓名指导老师设计时间20xx年6月19日到20xx年6月25号1设计任务说明通过本课程设计综合应用接口技术各汇编语言程序设计技术在PC机上实现...

微机原理与接口技术课程设计报告

课程设计报告微机原理与接口技术项目名称十进制数计算器的设计与实现专业名称计算机科学与技术交通信息工程学生姓名李俊20xx24020xx1教师姓名马荣贵月日一项目名称及要求31项目名称32项目要求3二项目背景及设...

微机原理与接口技术课程设计报告

微机应用系统设计与综合实验设计报告专业班级设计者学号指导教师时间116目录一系统设计要求311设计目的312设计内容313设计要求3二系统总体设计方案421设计思想422系统组成423工作原理说明4三系统硬件设...

微机原理课程设计报告---抢答器的设计123

微机原理及接口技术课程设计报告小组成员20xx年06月23日1设计目的1了解竞赛抢答器的设计原理和方法2掌握定时计数器并行接口芯片和中断控制的工作原理与使用方法2所用元器件180X86系列微机一台2定时计数器并...

微机原理与接口技术课程设计

安阳师范学院微机原理与接口技术课程设计报告书课题名交通灯控制系统班级11级自动化2班学号1111020xx姓名刘晨阳指导教师李彬安阳师范学院目录1设计目的32设计内容33设计要求34设计原理与硬件电路45程序流...

微机原理及应用课程设计报告

微机原理及应用课程设计设计题目基于PC机串行通信的点到点文件传输系统专业计算机科学与技术班级计104学生D指导教师学期目录目录1一实验目的3二实验内容及要求3三课设基本思想3四程序流程图以及程序设计5一程序流程...

微机原理课程设计报告

中南大学微机原理课程设计报告微机应用系统设计与综合实验课程设计报告学院信息科学与工程学院班级自动化1106学号0909113126姓名张甜甜指导老师李志民瞿年清20xx1230中南大学微机原理课程设计报告目录目...

微机原理课程设计报告

沈阳工程学院课程设计课程设计题目简单电子钟设计系别信息工程系班级学生姓名学号指导教师职称起止日期20xx年11月20日起至20xx年11月25日止沈阳工程学院课程设计任务书课程设计题目简单电子钟设计系别信息工程...

微机原理与接口技术课程设计报告(28篇)