




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机与接口课程设计报告智能抢答器2010年1月 11日目录1、课程设计目的及要求32、系统功能43、总体设计43.1 基本工作原理43.1.1 中断优先级管理器8259A控制字要求43.1.2 可编程并行接口接口芯片8255A控制字要求43.1.3 可编程定时器计数器8253控制字要求43.2 硬件总体设计53.2.1 系统总成方案53.2.2 内存单元编址53.2.3 键盘、扬声器及显示功能的定义53.3 软件总体设计64、硬件设计94.1所使用芯片功能94.1.1可编程并行输入/输出接口芯片8255A94.1.2 可编程定时器/计数器8253/8254104.1.3 中断优先级管理器825
2、9A124.2 系统所选用各芯片的工作方式144.2.1 中断优先级管理器8259A的工作方式144.2.2 可编程并行接口接口芯片8255A的工作方式144.2.3 可编程定时器计数器8253的工作方式154.3 系统所选用各芯片的连接154.3.1 各芯片与CPU的连接154.3.2各芯片之间的连接和与外设的连接155、软件设计156、调试过程187、系统操作说明198、总结199、参考文献20一、课程设计目的及要求 目的:掌握微机系统的开发步骤;掌握8255A、数码管的用法;掌握汇编程序的设计。因此,本次设计要求对微机原理的理论知识,8255A,8253,键盘显示区的工作方式、工作原理熟
3、练掌握。设计要求: 1. 1-8号选手中先按下按键者,LED数码管显示其选手号码(后按下无效),且60S倒计时开始,计时结束进行声光报警提示。 2. 由裁判掌握,若回答正确,该选手对应绿灯亮,否则红灯亮。 3. 回答正确时,计分牌加10分,不正确减10分(满分100分)。 4. 选手号码及选手分数用LED数码管显示。 二、系统功能一个具有8路抢答的抢答器,利用并行接口和开关键。逻辑开关K0-K7代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替)。三、总体设计3.1 基本工作原理主持人按开始键,绿灯亮后,选手才可抢答
4、,否则违规。若抢答成功,LED显示器显示选手号码,黄灯亮,扬声器鸣叫;若抢答违规(主持人示按开始键),LED显示器显示违规选手号码,红灯亮,扬声器报警。 3.1.1 中断优先级管理器8259A控制字要求芯片控制字:采用边沿触发,单片8259,要写入ICW4控制字中断类型码控制字:设置IR0IR7的中断类型码依次为08H、09H、0FH方式控制字:优先级设置方式为全嵌套方式即固定优先级方式,主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在8086系统上。 3.1.2 可编程并行接口接口芯片8255A控制字要求A口工作在方式0,做为输入端口用于连接选手按键(PA7PA0依次
5、对应按键18);B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7PB0依次对应连接LED显示器的h、g、f、e、d、c、b、a七段数码管管脚);C口也必须工作在方式0,高4 位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。 3.1.3 可编程定时器计数器8253控制字要求通道0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为4000。通道1:操作
6、类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为3000。通道2:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。3.2 硬件总体设计3.2.1 系统总成方案该竞赛抢答器所要器件:中断优先级管理器8259A、可编程并行接口接口芯片8255、可编程定时器计数器8253,三个一样的驱动器,黄、红、绿三个发光二极管,十三个电阻,一个8输入与非门,一个非门,一个扬声器,一个LED显示器,10个按键。 3.2.2 内存单元编址 1. 中断优先级管理器8259A的端口地址为20H、21H2. 可编程并行接口
7、接口芯片8255A的端口地址为80H、81H、82H、83H3. 可编程定时器计数器8253的端口地址为40H、41H、42H、43H 3.2.3 键盘、扬声器及显示功能的定义10个按键中,一个开始键一个复位键,另外8个用做8位选手的抢答按键。扬声器用与黄、红、绿三个发光二极管配合使用,黄灯亮扬声器鸣叫表示抢答成功,红灯亮扬声报警表示抢答违规报警,绿灯亮扬声器不鸣则表示主持人已按下开始键。LED显示器显示的内容与选手号对应,抢答成功或违规都要显示。 1. 硬件原理框图按键设置8 2 5 5CPU8 2 5 4LED显 示 模 块声光报警8259 cpu 图1 2. 原理连线图 图2PC4PC5
8、D7D0 8255 PB7PB0CSA0A1 PC3PC0RD WR驱动器1驱动器2与非门按键1按键2按键8按键3按键7按键6按键5按键4+5VPC0PB0PB7PC1PC2PC3红灯绿灯黄灯8段LED显示器+5V开始键复位键扬声器PA7PA0D7D0IR0IR4IR5D7D08259WRRDINTACSA0INT(20H21H)IR2IR6IR7IR3IR1INT(80H83H)IORIOW(40H43H)A1D7D0 RDWRA0A1 INTA INTR8086 RD WRGATE0D7D0 OUT0 CLK1 GATE1 OUT1 8253CS GATE2A0 CLK0A1 CLK1 C
9、LK2+5V驱动器31MHz3.3 软件总体设计 1. 主程序流程图:检测复位键是否弹起关闭LED显示器、指示灯将标志位清零,使IF=1开入中断结束检测复位键是否按下开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下 检测开始键是否弹起关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断置标志位值为FFH使IF=1开放中断点亮绿灯关闭LED显示器检测开始键是否弹起检测开始键是否按下 设置抢答键中断向量并使IF置1开放中断对8259A、8255、8253进行初始化设置LED字形码初值、标志初值开始检测复位键
10、是否按下置标志位值为FFH使IF=1开放中断点亮绿灯关闭LED显示器检测开始键是否弹起检测开始键是否按下 设置抢答键中断向量并使IF置1开放中断对8259A、8255、8253进行初始化设置LED字形码初值、标志初值开始开始设置LED字形码初值、标志初值对8259A、8255、8253进行初始化设置抢答键中断向量并使IF置1开放中断检测开始键是否按下 NY检测开始键是否弹起N Y关闭LED显示器点亮绿灯置标志位值为FFH使IF=1开放中断检测复位键是否按下N YN Y 图3 图4开始保护现场,将各寄存器值压入堆栈将本次中断压入堆栈中,并置IF=0关闭中断设置循环次数为8次将AL中的值逻辑右移1
11、位从8255的A端口获取选手按键信息,并将其值取反判断CX是否为0或ZF是否为1获取选手号码,并将值传给AX通过XLAT指令将选手号转换成LED显示相应的字形码将转换好的字形码值传给8255的B端口判断标志位是否为FFH置8253 通道2计数值将黄灯点亮,抢答成功,扬声器鸣叫置8253 通道2计数值将红灯点亮,抢答违规,扬声器报警给8259发中断结束命令中断返回NYYN2. 子程序流程图4、 硬件设计4.1所使用芯片功能 4.1.1可编程并行输入/输出接口芯片8255A 8255A具有三个独立的输入/输出端口,每个端口的并行数据宽度为8位。三个端口分别为A端口,B端口,C端口,可分别与不同的外
12、设进行数据交换,也可联合使用,在中断方式下实现CPU与外设间的数据传递。8255A提供方式0,方式1,方式2三种工作方式供选择。 1. 8255A的内部结构包括以下几个部分: 并行输入/输出端口,它有三个输入/输出端口,每个端口8位,都可选择为输入或输出。A端口有一阁位数据输出锁存/缓冲器和一个8位数据输入锁存器;B端口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器;C端口有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器。通常A端口和B端口作为输入/输出数据端口,C端口常作为控制或状态信息的端口,它可分为两个4位端口。在与外设数据传送中需要联络控制线时,C端口分别与A,B端口配合
13、使用,此时,C端口作控制信号输出和状态信号输入。8位内部数据总线A组端口A(8)A组端口C上半部(4)A组控制部件B组控制部件数据总线缓冲器读/写控制部件B组端口C下半部(4)B组端口B(8) 图5(1) A组和B组控制电路,8255A内部的三个端口可分为两组:A组由A口和C口高4位组成;B组由B口和C口低4位组成。A组和B组分别有自己的控制电路,即A组和B组控制电路。其功能:负责接受来自读写控制的逻辑的各种命令,以及来自数字总线的控制字,从而决定A组和B组的工作方式,还可根据CPU的命令对C端口的每一位实现“复位”或“置位”。(2) 读/写控制逻辑,这是8255A内部完成读/写控制功能的部件
14、。它与6条输入控制线相连,负责接收CPU输入的地址信号和读/写,复位控制信号,转变成各种命令发向A组和B组控制电路。(3) 数据总线缓冲器,这是一个8位双向三态缓冲器,它是8255A与CPU数据总线的接口,由读/写控制其数据传送方向及三态。8255A与CPU间的数据传送如输入/输出数据,CPU写入8255A的控制字,8255A送给CPU的状态信息,都是经过这个缓冲器传送的。 2. 8255A的控制字:方式选择命令字和端口C按位置位/复位控制字。方式选择命令字: 表1D7D6D5D4D3D2D1D0A组方式A口1 输入0输出PC7PC41输入0输出B组方式0方式01方式1B口1输入0输出PC3P
15、C01输入0输出1有效标志位00方式001方式11方式2 端口C按位置位/复位控制字: 表2特征位 不用不用不用位选择位选择位选择置位/复位 0 D6D5D4D3D2D1D00、10、10、10、1D3、D2、D1 :000111分别对应C口17位D0:0为复位,1为置位 3. 8255A有三种工作方式: 方式0-基本输入/输出方式。这种方式不使用中断,没有规定的联络信号,三个端口的24条引脚均可做为输入/输出线,由程序设定各端口为输入端口或输出端口,完成并行输入/输出操作。方式1-选通输入/输出方式。这种方式下,端口A或端口B仍做为数据端口,同时规定了端口C的某些位做为控制或状态信息位,数据
16、的输入/输出操作在联络信号的应答控制下完成,因而,可使用中断,也可使用查询。方式2-双向传送方式。这种方式下,外设在单一的8位数据线上,既能发送数据,也能接受数据。在相应的控制线配合下,用中断方式或程序查询方式输入/输出数据。端口A可工作于方式0,方式1和方式2,端口B可工作于方式1,端口C通常分成高4位和低4位,分别传送数据或控制,状态信息。 4.1.2 可编程定时器/计数器8253/82548253芯片采用24个引脚,双列直插式封装,NMOS工艺,单一+5V电源。片内有3个独立的16位减法计数器,每个计数器又可分两个8位的计数器。8253有两种工作方式,即二进制或BCD方式计数;6种工作方
17、式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件开始计数或停止计数。 1. 8253的内部结构包括以下几部分: 8253由计数器、控制寄存器、读/写控制逻辑和数据总线缓冲器4部分和内部总线构成。 (1) 数据总线缓冲器。该缓冲器为8位双向三态的缓冲器,可直接挂在数据线上,CPU通过它,一方面可以向控制寄存器写入控制字,向计数器写入计数初值;另一方面也可由CPU通过该缓冲器读出计数器的当前计数值。 (2) 读/写控制逻辑。功能是接收来自CPU的控制信号,完成对8253各计数器的读/写操作。 (3) 控制寄存器。接收从CPU来的控制字,并由控制字的D7、D6位的编码决定控
18、制字写入哪个计数器的控制寄存器。 (4) 计数器。8253有三个计数器通道:计数器0、计数器1、计数器2。每个计数器都由16位锁存寄存器和一个16位的减1计数器组成。每个计数器有3根信号线。其中2根为输入信号:时钟信号CLK和门控GATE信号;1根输出信号OUT。数据总线缓冲器读/写逻辑控IR0、IR1数据总线 内部总线线缓冲器 级联缓冲比较器 辑寄存器(ISR)7制字寄存器计数中断请求寄存器(IRR)器0计数器1计数器2WRRR 图6 2. 8253的工作方式:方式0-计数结束产生中断方式。这种方式的计数过程为当写入方式0后,计数器输出OUT立即变为低电平,并且在计数过程中一起维持低电平。赋
19、初值后,CLK第一个下降沿到,计数值装入计数器,随后每一个CLK脉冲下降沿到,计数器减1.计数器减到零时,OUT输出变为高电平,并且一直保持到该通道重新装入计数值或重新设置工作方式为止。方式1-可重触发的单稳态触发器。这种方式的计数过程为当装入计数初值后OUT输出为高电平,当GATE上升沿到,OUT输出为低电平,开始计数;计数结束时,输出变为高电平从而产生一个宽度为N个T的负脉冲。方式2-分频器。这种方式的计数过程为写入控制字后的时钟上升沿,输出端OUT变成高电平,写入计数初值后的第一个时钟下降沿开始减1计数。减到1时输出端OUT变为低电平,减到0时,输出OUT又变为高电平,同时从初值开始新的
20、计数过程。方式3-方波发生器。这种方式的计数过程分两种情况。第一种情况:计数初值为偶数。写入控制字后的时钟上升沿,输出端OUT变成高电平,写入计数初值后的第一个时钟下降沿开始减1计数。减到N/2时,输出端OUT为为低电平,减到0时,输出OUT又变为高电平,并重新从初值开始新的计数过程。第二种情况:计数初值为奇数。写入控制字后的时钟上升沿,输出端OUT变成高电平,写入计数初值后的第一个时钟下降沿开始减1计数。减到(N+1)/2以后,输出端OUT变为低电平,减到0时,输出端OUT又变为高电平,并重新从初值开始新的计数过程。方式4-软件触发选通。这种方式的计数过程与方式0非常相似。当方式控制字置入后
21、,OUT输出高电平。置入初值后经过一个CLK脉冲开始减1计数,计数到达0值,OUT输出为低电平,持续一个CLK脉冲周期后再恢复到高电平。方式5-硬件触发选通。这种方式的计数过程为输出OUT即为高电平,写入初值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发。计数结束,输出一个持续时间为一个TCLK的负脉冲,然后输出恢复为高电平,直到GATE信号再次触发。 4.1.3 中断优先级管理器8259A1. 8259A内部结构: 内部总线数据总线缓冲器读/写逻辑级联缓冲比较器 控 制 逻 辑当前中断服务寄存器(ISR)优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)IR0IR1
22、.IR7D7D0 INTA0.IR7CAS0CAS1CAS2/.IR7图78259A采用NMOS工艺制成,有28根引脚,所有输入、输出端与TTL电平兼容,单一电源(Vcc=+5V)供电。8259的内部主要组成部分,包括处理部件(中断请求寄存器IRR、优先级鉴别器PR及现行服务寄存器ISR)、控制部件(控制逻辑及中断屏蔽寄存器IMR)、数据总路线缓冲器、读写逻辑以及级联缓冲器比较器等5个部分。 2. 8259A主要的外部引脚:D0D7:双向数据线,CPU与8259间利用这个数据总路线传送数据及命令。:写控制输入信号,同控制总路线上的 信号相连。:读控制输入信号,同控制总路线上的信号相连。A0:地
23、址选择信号,用来对8259A内部的两个可编程寄存器进行选择。:片选输入信号,低电平有效。有郊时可通过数据总路线设置命令并对内部寄存器进行读出。当进入中断响应时序时,该引脚状态与进行的处理无关。INT:由8259A向CPU发出的中断请求信号。:输入信号,接收CPU送来的中断响应信号INTA。IR0IR7:8个中断请求输入信号,高电平或上升沿有效。用于接收外设接口来的中断请求。 3. 8259A工作方式(1) 优先级设置方式:全嵌套方式(固定优先级方式)、特殊全嵌套方式(可响应同级中断方式)、轮转优先级方式、特殊轮转优先级方式。(2) 中断源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。(3) 中断结束方
24、式:中断自动结束方式、中断非自动结束方式(包括一般中断结束方式、特殊中断结束方式)。(4) 系统总路线连接方式:缓冲方式、非缓冲方式。(5) 中断请求信号触发方式:边沿触发方式、电平触发方式。 4. 8259A初始化控制字格式 表3ICW1(芯片控制字)D7 D6 D5D4D3D2D1D0 0 0 0特征位1触发方式0 边沿触发1 电平触发0单片选择信号0 多片8259级联1 单片8259是不要ICW40 不要(8080/8085)1 要(80X86)ICW2(中断类型码控制字,D7D3设置中断类型码)D7D6D5D4D3D2D1D0×××××
25、000ICW3(主片,级联时才用设置,各位为1则表示接有从片)D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0ICW3(从片,级联时才用设置)D7D6D5D4D3D2 D1 D000000ID2 ID1 ID0 从片INT接于主片的引脚0 0 0 IR00 0 1 IR1 1 1 1 IR7ICW4(方式控制字)D7 D6 D5D4D3D2D1D00 0 0嵌套方式0 全嵌套方式1特殊全嵌套方式缓冲方式0非缓冲方式1缓冲方式缓冲方式下0本片为从片1本片为主片中断结束方式0中断非自动结束1中断自动结束系统类型0 8080/80851 80X86 5. 8259A操
26、作命令字格式 表4OCW0(中断屏蔽字,各位为1则被屏蔽)D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0OCW1(轮转优先级和中断结束字)D7D6D5D4 D3D2 D1 D0轮转位0 非轮转1 轮转选择标志位0 L2L0无效1 L2L0有效中断结束位0 非中断结束 1 中断结束特征位00标志位000 IR0 优先级最低001 IR1 优先级最低OCW2(特殊屏蔽、查询和状态读取字)D7D6D5D4 D3D2D1D00特殊屏蔽方式允许位0 禁止特殊屏蔽方式1 允许特殊屏蔽方式特殊屏蔽方式位0 非特殊屏蔽方式1 特殊屏蔽方式特征位01中断查询位0非中断查询1中断
27、查询读寄存器0 禁止读1 允许读0读IRR1读ISR4.2 系统所选用各芯片的工作方式 4.2.1 中断优先级管理器8259A的工作方式1. 芯片控制ICW1:采用边沿触发,单片8259,要写入ICW4控制字2. 中断类型码ICW2:设置IR0IR7的中断类型码依次为08H、09H、0FH3. 方式控制ICW4:优先级设置方式为全嵌套方式即固定优先级方式,系统总线连接方式为主片工作在缓冲方式下,中断结束方式采用中断非自动结束方式,8259工作在8086系统上。 4.2.2 可编程并行接口接口芯片8255A的工作方式1. A口工作在方式0,做为输入端口用于连接选手按键(PA7PA0依次对应按键1
28、8);2. B口工作在方式0,做为输出端口,经驱动器1连接LED显示器(PB7PB0依次对应连接LED显示器的dp、g、f、e、d、c、b、a七段数码管管脚);3. C口也必须工作在方式0,高4 位做输入端口(本次设计中只用PC4、PC5,分别用于连接复位键和开始键),低4位做输出端口(PC3PC0,经驱动器2后PC1、PC2、PC3分别用于连接黄、红、绿三个发光二极管,PC0连接到8253的GATE1端,以控制通道1的计数)。 4.2.3 可编程定时器计数器8253的工作方式1. 通道0:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。2. 通
29、道1:操作类型为先读写低字节再读写高字节,工作在方式1即可重触发的单稳态触发器,计数格式为BCD码,计数初值为0。3. 通道2:操作类型为先读写低字节再读写高字节,工作在方式3即方波发生器,计数格式为BCD码,计数初值为0。4.3 系统所选用各芯片的连接 4.3.1 各芯片与CPU的连接 8259A、8255A、8253的数据总线D7D0端、端、端、端、端、INT端分别与CPU的D7D0数据总线、片选端、端、端、端、INTR端。8255A、8253的A1、A0端分别接入CPU地址线的A1、A0端,8259的A0端接到CPU地址线的A0端。 4.3.2各芯片之间的连接和与外设的连接8259A的I
30、R2端接选手按键信息输出端;8255A的A口的PA7PA0依次接“按键1”至“按键8”,B口的PB7PB0通过驱动器1接到LED显示器,C口的PC4、PC5分别接复位键和开始键,PC3、PC2、PC1经驱动器2分别接绿灯发光二极管、红灯发光二极管、黄灯发光二极管,PC0接到8253的GATE1端;8253的GATE0端接+5V电压,OUT0的输出接入CLK1端,OUT1的输出经反相器后接入GATE2端,CLK0和CLK1接入1MHz的频率发生器,CLK2经驱动器3接扬声器。五、软件设计DATASEGMENTTAB DB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H ;1
31、9的段码;(字形码)BZ DB 00HDATAENDSSTACKSEGMENTPARASTACKSTACKDB100HDUP(?)STACKENDSCODE SEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AX;8259A初始化MOV AL,13H;初始化8259A的ICW1OUT 20H,ALMOVAL,08H;送中断类型码基值,8259A的ICW2OUT21H,ALMOVAL,0DH;一般中断结束方式,8259A的ICW4OUT21H,AL;8255A初始化MOV AL,98H;置8255A工作方式OUT 83H,ALXORAL,AL;B
32、口、C口初始化OUT 81H,ALOUT82H,AL;8253初始化MOV AL,37H;置8253通道0控制字OUT 43H,ALMOV AL,00H;置8253通道0计数初值为4000OUT40H,ALMOVAL,40HOUT40H,ALMOV AL,73H;置8253 通道1控制字OUT43H,ALMOVAL,00H;置8253通道1计数初值为3000OUT41H,ALMOVAL,30HOUT41H,ALMOV AL,B7H;置8253通道2控制字OUT43H,ALMOVAL,00H;置8253通道2控制字OUT42H,ALMOVAL,00H;置8253通道2计数初值为0OUT42H,A
33、LMOVAL,00HOUT42H,AL;中断设置MOVAH,25H;设置抢答按键中断向量MOV AL,0AH;中断类型号为入口参数MOV BX,SEG KEYINT;DS:DX指向4字节地址MOV DS,BXMOV DX,OFFSET KEYINTINT 21HSTI;使IF置1,开放可屏蔽中断;主循环LOPM:INAL,82H;检测开始键TESTAL,20H;检测C口的PC5端JZ LOP2;开始键未按下即PC5=0,则跳转检测;复位键LOP1:INAL,82H;检测开始键是否已经弹起,即PC5=0TESTAL,20HJNZ LOP1;开始键没有弹起再重新检测MOVAL,00H;关LED显示
34、器OUT 81H,AL;送到B口MOVAL,08H;绿灯亮OUT82H,AL;送到C口MOVBZ,0FFH;置标志STILOP2:INAL,82H;检测复位键TESTAL,10H;检测C口的PC4端JZLOPM ;复位键未按下即PC4=0,则跳转再检;测开始键LOP3:INAL,82H;检测复位键是否弹起,即PC4=0TEST AL,10HJNZ LOP3;位键没有弹起,则重新检测MOVAL,00H;关LED显示器、指标灯OUT 81H,ALOUT 82H,ALMOVBZ,00H;清标志STIJMPLOPM;中断服务子程序CODEENDSENDSTART中断服务子程序:KEYINTPROCFA
35、RPUSHAX;保护现场PUSHBXPUSH DXPUSHDSCLI;并使本次中断压入堆栈中的IF=0;(关中断)INAL,80H;从8255的A口获取选手按键信息NOTAL;将按键字节信息取反MOVCX,8;计数8次LOP4:SHRAL , 1;获取选手号码LOOPNZ LOP4MOVAX,CX;把选手号传给AXMOVBX,OFFSETTAB;查段码(字形码)XLAT;将选手号转换成TAB中对应的LED;字形码OUT81H,ALTESTBZ,OFFH;判断标志位是否为FFHJZLOP5MOVAL,00H;置8253通道2计数值OUT42H,ALMOVAL,10HOUT42H,ALMOVAL,
36、03H;黄灯亮,抢答成功OUT 82H,ALJMPKKKLOP5:MOV AL,00H;置8253通道2计数值OUT42H,ALMOV AL,20HOUT 42H,ALMOVAL,05H;红灯亮,抢答违规OUT82H,ALKKK:MOVAL,20H;给8259发中断结束命令,写OCW2OUT20H,ALPOPAX;恢复现场POPBXPOPDXPOPDSIRETKEYINTENDP 六、调试过程1. 在刚开始编程时,各种功能大部分是由主程序来完成的。由于主程序过于复杂,可读性不高。使得在以后的程序的调试中遇到了很大的麻烦。后来把主程序的部分功能转化成子程序来实现,并在一些重要的地方增加了注释,使的程序的可读性大大加强。调试也变的比较简单了。到此基本解决了第一个问题。2. 在编程时,子程序的调试也是相当重要,由于子程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保洁公司竞标方案范本
- 砌块建筑电气系统设计与施工考核试卷
- 畜牧业市场分析考核试卷
- 纸板容器表面处理方法考核试卷
- 2025年【煤矿防突】模拟考试题及答案
- 2023年中国铁建财务有限公司公开招聘笔试参考题库附带答案详解
- 环保工程环境信息技术应用考核试卷
- 2024年秘书证考试知识框架与试题及答案
- 2025年证券从业资格证考试问答试题及答案
- 氨纶纤维在航空航天材料中的应用考核试卷
- 【海南康养旅游现状和对策探究11000字(论文)】
- (高清版)DZT 0002-2017 含煤岩系钻孔岩心描述
- 天然石材更换方案
- 腹腔镜下子宫肌瘤剔除术护理查房
- 严防管制刀具 对自己和他人负责-校园安全教育主题班会课件
- 09J202-1 坡屋面建筑构造(一)-1
- 扁平足的症状与矫正方法
- 青春健康知识100题
- 员工考勤培训课件
- 危机处理与应急管理
- 丰田C-HR汽车说明书
评论
0/150
提交评论