




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计课程名称微机课程设计题目名称计 时 器(计数3)学生学院自动化学院专业班级 13 电气( 2)班学 号 3113001318学生姓名彭浩指导老师廉迎战2015 年 10 月 23 日一、概述1. 课程设计的目的1) 巩固和掌握对“微机原理”课程内容的认识和理解,提高应用水平。2) 掌握汇编语言程序的编制方法。 8253 编程。2. 课程设计的要求1) 系统硬件设计设计 8053 定时器计时, 8253 地址为 40H41H42H43H ,控制电路如图:2) 软件编程内容显示器工作于查询方式,键盘工作于中断方式。16 个按键定义的键值为: 0 F,按任意键在显示器上显示对应键值。设定 8
2、253 的通道 2 工作于方式 0,用于事件计数,当计数值为 8,按键 9 次后, 发出中 断请求信号并显示“ EEEEEE ”。显示满 30 秒时数字清除。8253只写高 8位计数值时, 8253的计数是 8 位计数,还是 16位计数?A、软件实现:计数结束后,读取计数值,看是0 还是 0FFH?B、软件实现:定时结束后,读取定时数值,看是0 还是 0FFH?二、设计思路微型计算机由微处理器, 存储器, 接口电路以及连接在这些部件上的总线组成。 微处理 器,存储器和所有 IO 设备之间的信息交换都通过总线进行。总线包括地址总线,数据总线 和控制总线,他们始于 CPU 或终于 CPU,现代微机
3、大部分都是这种以总线为中心的结构。 8086CPU 的地址 数据总线 AD15-AD0 和地址 状态总线 A16/S3-A19/S6 是复用的, 必须通过 地址锁存器把地址总线和数据总线分离。 控制总线直接和 8086CPU 相连, 这样 8086CPU 就 工作在最小工作方式。微型计算机及外围设备组成微型计算机系统的硬件, 外围设备必须通过接口电路才能与 系统总线相连,因此构建一个基于 8086CPU 的简单微型计算机系统就是工作于最小工作方 式的 8086CPU 系统总线上挂上一定规模的存储器和接口电路,然后在把合适的外围设备连 接到接口电路上。一个基于 8088CPU 的简单微型计算机系
4、统框图如图所示。图中键盘与显 示器作为外围设备通过接口芯片与系统总线相连。本次课程设计使用软件是 wmd86 硬件是 TP-PITE 5.4 板,通过 8255 可编程并行 I/O 接口芯片可以对 4X4 键盘进行扫描,从而可以确定哪一个键被按下,同时又可对七段数码 管的输出显示进行控制, 从而可以做到按下某个键后在数码管上显示出自己需要显示的相应 的字符。8254 可编程定时和计数芯片有三个计数器,利用其中任何一个计数器设置其工作方式 为 0,其中的 out 端口接到 8259A 中断控制器芯片的中断请求端口上, CLK 接到板子的 KK1+ 接口上,通过人工触发的方式给计时器送计时脉冲,将
5、计数次数 8 送进计数器,那么按键 KK1+ 九次后计数器计数终止计数, 同时 out 端口送出一个高电平, 这个就是中断请求信号, 由此进入中断,中断服务程序里面利用 8255 芯片对七段数码管进行输出显示控制,让数码 管显示“ EEEEEE”,最后再在显示程序后设定一个30s 的延时子程序,由此实现了“设定8253 的通道 2工作于方式 0,用于事件计数,当计数值为 8,按键 9 次后,发出中断请求信 号并显示“ EEEEEE ”。显示满 30 秒时数字清除”。三、系统详细原理1. 硬件电路系统设计1) 确定组成电路所用元器件本次课程设计使用实验室提供的元器件,分别为:8086 微处理器可
6、编程接口芯片 8255A可编程定时器 /计数器 8253可编程中断控制器 8259A74LS07 芯片键盘及数码管显示单元2) 8086 CPU的引脚信号和功能a. 引言如下图所示,是 8088/8086CPU 的外部结构,即引脚信号图。图 2-5 8086/8088CPU 引脚功能8088/8086CPU 芯片都是双列直插式集成电路芯片,都有 40 个引脚,其中 32 个引脚在 两种工作模式下的名称和功能是相同的, 还有 8 个引脚在不同的工作模式下, 具有不同的名 称和功能。下面,我们分别来介绍这些引脚的输入/输出信号及其功能。b. 两种模式下,名称和功能相同的 32 个引脚 VCC、GN
7、D:电源、接地引脚 (3),8088/8086CPU 采用单一的 +5V电源, 但有两个接地引脚。 AD15AD0(Address Data Bus ): 地址/ 数据复用信号输入 /输出引脚 (16), 分时输出低16 位地址信号及进行数据信号的输入 /输出。 A19/s6A15/s3(Address Status Bus) :地址 /状态复用信号输出引脚 (4), 分时输出地 址的高 4位及状态信息,其中 s6 为 0用以指示 8086/8088CPU当前与总线连通; s5 为 1 表 明 8086/8088CPU可以响应可屏蔽中断; s4、s3 共有四个组态,用以指明当前使用的段寄存 器
8、, 00ES,01 SS,10CS,11DS。 NMI(Non-Maskable Interrupt) 、 INTR( Interrupt Request ) : 中断请求信号输入引脚(2) ,引入中断源向 CPU提出的中断请求信号,高电平有效,前者为非屏蔽中断请求,后者 为可屏蔽中断请求信号。 RD ( Read) :读控制输出信号引脚 (1) ,低电平有效,用以指明要执行一个对内存单 元或 I/O 端口的读操作,具体是读内存单元,还是读 I/O 端口,取决于 M /IO 控制信号。 CLK/(Clock ):时钟信号输入引脚 (1) ,时钟信号的方波信号,占空比约为33%,即1/3 周期为
9、高电平, 2/3 周期为底电平, 8088/8088 的时钟频率(又称为主频)为4.77MHz,即从该引脚输入的时钟信号的频率为4.77MHz。 Reset(Reset): 复位信号输入引脚 (1) ,高电平有效。 8088/8086CPU 要求复位信号至少 维持 4 个时钟周期才能起到复位的效果,复位信号输入之后,CPU结束当前操作,并对处理 器的标志寄存器、 IP 、DS、SS、ES 寄存器及指令队列进行清零操作, 而将 CS设置为 0FFFFH。 READ(Y Ready) : “准备好”状态信号输入引脚 (1) ,高电平有效。 TEST (Test): 测试信号输入引脚 (1) ,低电
10、平有效 ,TEST 信号与 WAIT 指令结合起来使 用,CPU执行 WAIT指令后,处于等待状态, 当 TEST引脚输入低电平时, 系统脱离等待状态, 继续执行被暂停执行的指令。 MN/MX( Minimum/Maximum Model Control )最小 / 最大模式设置信号输入引脚 (1) ,该输 入引脚电平的高、低决定了 CPU工作在最小模式还是最大模式,当该引脚接+5V时, CPU工作于最小模式下,当该引脚接地时, CPU工作于最大模式下。c. 最小模式下的 24-31 引脚当 8088/8086CPU 的 MN /MX 引脚固定接 +5V 时, CPU处于最小模式下,这时候剩余
11、的24 31共 8个引脚的名称及功能如下: INTA ( Interrupt Acknowledge )中断响应信号输出引脚低电平有效, 该引脚是 CPU响应中断请求后, 向中断源发出的认可信号, 用以通知中断 源,以便提供中断类型码,该信号为两个连续的负脉冲。 ALE( Address Lock Enable ) : 地址锁存允许输出信号引脚高电平有效, CPU通过该引脚向地址锁存器 8282/8283 发出地址锁存允许信号,把当前 地址 /数据复用总线上输出的是地址信息,锁存到地址锁存器8282/8283 中去。注意: ALE信号不能被浮空。 DEN (Data Enable ): 数据允
12、许输出信号引脚低电平有效,为总线收发器 8286 提供一个控制信号,表示 CPU当前准备发送或接收一 项数据。 DT / R (Data Transmit/Receive ): 数据收发控制信号输出引脚CPU通过该引脚发出控制数据传送方向的控制信号,在使用8286/8287 作为数据总 线收发器时, DT / R 信号用以控制数据传送的方向,当该信号为高电平时,表示数据由CPU经总线收发器 8286/8287 输出,否则,数据传送方向相反。 IO/ M ( Memory/Input &Output ) : 存储器 /I/O 端口选择信号输出引脚这是 CPU区分进行存储器访问还是 I/O 访问的
13、输出控制信号。当该引脚输出高电平时, 表明 CPU要进行 I/O 端口的读写操作, 低位地址总线上出现的是 I/O 端口的地址; 当该引脚 输出低电平时, 表明 CPU要进行存储器的读写操作, 地址总线上出现的是访问存储器的地址。 WR(Write): 写控制信号输出引脚低电平有效,与 IO/M 配合实现对存储单元、 I/O 端口所进行的写操作控制。 HOLD(Hold Request): 总线保持请求信号输入引脚 高电平有效。这是系统中的其它总线部件向CPU发来的总线请求信号输入引脚 。 HLDA(Hold Acknowledge ) : 总线保持响应信号输出引脚高电平有效,表示 CPU认可
14、其他总线部件提出的总线占用请求,准备让出总线控制权。3) 8255A 芯片基本资料a. 8255A 内部结构如下图所示 8255A 有 3 个 8 位数据接口,即接口 A、接口 B 和接口 C。使用者可以用软件使它们分别作为输入端口或输出端口。1)端口 A:一个 8 位数据输入锁存器和一个 数据输入均被锁存。2)端口 B :一个 8 位数据输入缓冲器和一个 数据输入时不被锁存,数据输出时被锁存。3)端口 C :一个 8 位数据输入缓冲器和一个8 位数据输出锁存器 /缓冲器,用来传送数据。8 位数据输出锁存器 /缓冲器, 用来传送数据。8 位数据输出锁存器 /缓冲器,用作输入端口时,数据不被锁存
15、;而作为输出端口是,数据被锁存。 A 组控制和 B 组控制这两组控制电路一方面接收芯片内部总线上的控制字,一方面接收来自读 / 写控制逻辑 电路的读 /写命令,从而解决端口的工作方式和读 / 写操作。其中, A 组控制电路控制端口 A 和端口 C高 4 位( PC7-PC4)的工作方式和读 /写操作:而 B组控制电路控制端口 B和端口 C 低 4 位( PC3-PC0)工作方式和读写操作。 读/ 写控制逻辑电路读/ 写控制逻辑电路负责管理 8255A 的数据传输过程。它接收来自系统总线的信号A1,A0和控制总线信号 RESET、WR、RD,将这些信号组合后,得到 A 组控制部件和 B组控制部件
16、 的控制命令,并将命令发给这两个部件,完成对数据、状态信息的传输。 数据总线缓冲器这是个双向三态 8 位数据缓冲器, 8255A 通过它与系统数据总线相连。输入数据、输 出数据、 CPU发给 8255A 的控制字都是通过这个缓冲器传递的。b. 8255 的引脚信号 与外部设备端相连的引脚PA7-PA0:A 端口的输入 /输出引脚。PB7-PB0 :B 端口的输入 /输出引脚。PC7-PC0:C 端口的输入 /输出引脚。 与 CPU相连的引脚RESET :复位信号,低电平有效。当 RESET 信号来到时,所 有内部寄存器都被清 0,同时 3 个端口被自动设为输入端口。 D7-D0 : 8255A
17、 的数据线,和系统数据总线相连。 CS:芯片选择信号。只有当 CS 有效时,读出信号 RD 和写入 信号 WR 才对 8255A 有效。RD:读出信号。 CPU 通过 IN 指令使 RD 有效, 将数据或状态 信息从 8255A 中读到 CPU 。WR :写入信号。 CPU 通过 OUT 指令使 WR 有效,将数据或 状态信息从 CPU 中写道 8255A.A1 , A0 :端口选择信号。 8255A 内部有 3个数据端口和 1 个 控制端口, 共 4 个端口。 规定 A1 ,A0 为 00、01、10 和 11 时, 分别选中端口 A、端口 B 、端口 C 和控制端口。c. 8255 的控制
18、字 方式选择控制字(1)方式选择控制字把 A、B、C三个端口分为 A、B 两组来设定工作方式。 A 组包括端口 A 和端口 C 的上半部, B 组包括端口 B 和端口 C 的下半部。( 2)端口 A 可工作于 3 种方式中的任何一种;端口 B 只能工作于方式 0 和方式 1;而端口C 除用作输入、输出口(方式 0)外,通常用来配合端口 A 和端口 B 提供联络控制信号和 状态信号。(3)归在同一组的两个端口可分别作为输入端口或输出端口,不要求同为输入或输出。 端口 C按位置位 / 复位控制字(1)端口 C 按位置位 /复位控制字尽管是对端口 C 进行操作的,但此控制字必须写入控制 口,而不写入
19、端口 C 。(2)一个控制字只能完成端口 C 中某一位置的置 1 或置 0,要对多位置 1 或置 0,必须使 用多个控制字。d. 实验中 8253 对应端口地址如下表所示:实验系统中 8255A 对应的端口地址表信号线A口B口C口控制寄存器IOY00600H0602H0604H0606HIOY10640H0642H0644H0646HIOY20680H0682H0684H0686HIOY306C0H06C2H06C4H06C6H4) 8253 工作原理a. 8253 工作方式8253可编程计数器 /定时器的工作频率为 02MHz ,它有 3 个独立编程的计数器,每个 计数器有三个引脚,分别为时
20、钟 CLK 、门控 GATE、计数器和计时结束输出 OUT ,每个计 数器分别有 6 种工作方式。下面仅对方式 1 和方式 2 的工作原理进行简述。 方式 1 :可编程单稳, 即由外部硬件产生的门控信号 GATE 触发 8253 而输出单稳脉冲。 计数器装入计数初值后,在门控信号 GATE 由低电平变高电平并保持时,计数器开始计数, 此时输出端变成低电平并开始单稳过程。当计数结束时,输出端 OUT 转变成高电平,单稳 过程结束,在 OUT 端输出一个单稳脉冲。硬件再次触发。 OUT 端可再次输出一个同样的单 稳脉冲。 单稳脉冲的宽度由装入计数器的计数初值决定。 在 WR 信号的上升沿 (CPU
21、 写控制 字之后 ),输出端 OUT 保持高电平 (若 OUT 原为低电平则变为高电平 )。CPU 写入计数值后, 计数器并不马上开始计数,而要等到门控信号 GATE 启动之后的下一个 CLK 的下降沿才开 始。在整个计数过程中,输出端 OUT 保持低电平直至计数值至 0,OUT 变为高电平为止。 方式 2 :速率发生器,其功能如同一个 N 分频计数器。其输出是将输入时钟按照 N 计 数值分频后得到的一个连续脉冲。在该方式下,当计数器装入初始值开始工作后,输出端 OUT 将不断地输出负脉冲,其宽度为一个时钟周期的时间,而两个负脉冲间的时间脉冲个 数等于计数器装入的计数初值。 若计数初值为 N,
22、则每 N 个输入脉冲输出一个脉冲。 当 CPU 写完控制字后,输出端 OUT 转变成高电平,计数器将立即自动开始对输入 CLK 时钟计数。 在计数过程中, OUT 端始终保持高电平,直至计数器的计数值减到1 时, OUT 端才变为低电平,其保持的宽度为一个输入 CLK 时钟周期的时间,然后输出端 OUT 恢复高电平,计 数器重新开始计数。b. 8253 控制字格式SC1 SC0为计数器选择位, RL1 RL0 为计数器读写操作选择位, 以确定计数器进行装入 或读出是单字节还是双字节, M2 、M1 、 M0 为计数器工作方式选择位, BCD 表示计数器计 数方式选择位。c. 8253 的内部结
23、构框及引脚如下图所示:8253 引脚图8253 内部结构框图 数据总线缓冲器及数据总线 D0D7这是 8253与 CPU数据总线连接的 8位双向三态缓冲器, 是 8253内部总线与 CPU系统 的 8 位数据总线之间的接口。 CPU 通过它写方式控制字到控制字寄存器,写计数初值到计通过编程向 8253数通道, 读取计数通道的当前计数值。 即数据总线缓冲器有三个基本功能: 写入确定 8253 工作方式的命令;向计数寄存器装入计数初值;读出当前计数值。 内数只高控能器部制阻的状字有写读这寄入态读是/3写。写不存个控8当器能,2独制5以读片仅3立逻选出及能内的辑。进对信部计及行控号操数控制写有作通制
24、操寄效的道引时作存控和脚(。器制低的部1电写分各个平入,个控)。端制当,按口字片照的寄选读C存信PC器号UP/写U共发操来可作4的以的个读对选端写择为8口信2见高,5号3下电由及表某平地。时端A址1口,信和数进号注据行A来意 控制字寄存器 计数通道d. 实验中 8253 对应端口地址如下表所示:实验系统 8253 对应的端口地址表信号线计数器 0计数器 1计数器 2控制寄存器IOY00600H0602H0604H0606HIOY10640H0642H0644H0646HIOY20680H0682H0684H0686HIOY306C0H06C2H06C4H06C6H5) 8259A 中断控制器a
25、. 引言b. 工作原理c. 实验中 8259A 对应端口地址 6) 存储器芯片,接口芯片与系统总线的连接 存储器芯片,接口芯片与系统总线的连接就是如何把存储器芯片和接口芯片挂到系 统的三类总线上。存储器芯片和接口芯片与数据总线的连接比较简单,因为是简单系统,对数据总线 的负载能力没有特别的要求,所以只要把存储器芯片和接口芯片的数据引脚与数据总线 相应各位作并联就可以。连接到芯片上的控制总线不多,常用的有IO/M ,RD ,WR,RESET 等信号,这些信号线也都是与各芯片的有关引脚做并联连接。存储器芯片, 接口芯片与地址总线的连接原则上是一样的, 低地址线与存储器芯片或接 口芯片的地址引脚直接
26、并联连接, 用来作为芯片内部单元的选择, 高位地址线经译码器译码 后一般连接到芯片的片选端作为芯片的选择。 一般高位地址线的低位部分作为译码器的译码输入,高位部分则作为译码器译码的许可条件。 由于 80886CPU 的端口地址采用独立编址方 式,为了区分是存储器芯片地址还是接口芯片地址,一定要把 IO/M 信号参与到芯片的片选 端控制。本次设计的连接图如下所示:7) 接口芯片与外围设备的连接采用 8255A 接口芯片作为 4*4 键盘与 6 位七段数码管显示器的接口。 如下图所示:a. 8255A 接口芯片与 4*4 键盘的连接图中有 4 行 4 列,4 根行线通过 74LS07 芯片与 PA
27、3PA0 相连,4 根列线与 PC7PC4 相连。按键设置在行、列交点处 ,行、列线分别连接到按键开关的两端。当列线通过上拉电 阻接 +5V 时,就被钳位在高电平状态。键盘中有无按键按下是由行线送入全扫描字、列线读 入行线状态来判断的。这就是:给行线所有 I/O 线均置成低电平,然后读入列线电平状态。 如果有按键按下,总会有一根列线电平被拉置底电平,从而使列线输入不全为1。键盘中哪一个键按下是由行线逐行置低电平后, 检查列线输入状态予以确定的。 其方法 是:依次给行线送低电平,然后查所有列线状态,如果全为l ,则所按下之键不在此行。如果不全为 1,则所按下之键必在此行。而且是在与0 电平行线相
28、交的交点上的那个键。键盘的工作方式采用编程扫描工作方式,即通过调用键盘子程序来响应键输入的要求, 在键盘扫描子程序中完成下述功能:1)判断键盘上有无键按下。 其方法是先使 PA3PA0=O,然后读 PC7PC4 的状态,若为全 1,则键盘中无键按下;若不全为 1,则说明键盘中有键按下。2)去除按键的机械抖动影响。 对于由机械触点构成的按键, 由于机械触点的弹性作用, 触 点在闭合及断开瞬间有一个抖动过程,一般为 510ms 时间。为了消除抖动影响可作这样处 理,当判断有键按下后, 软件延时一段时间再判断键盘状态, 如果仍为有键按下状态, 则认 为有一个确定的键按下,否则按键抖动处理。3)求按下
29、键的键值及键号。 键盘上的缚个键都对应一个键值。 键值的组成, 低 8 位为扫描 该键时的行线输出值( PA3PA0),高 8 位为该键按下时的列线输入值( PC7PC4 为有效 位其余位令其为 1)。4)为保证键闭合一次 CPU 仅进行一次键功能操作。程序中需要等待键释放以后再将键号 送累加器 AH 。 键盘的工作方式还有定时扫描及中断工作方式, 前者是一种定时中断, CPU 响应中断后对键盘进行扫描, 并在有键按下时转入键功能处理程序。 中断工作方式只有在键 盘按下时,才执行键盘扫描,并执行该键的功能程序。b. 显示电路的连接在程序内设置 8255的控制字 D2-D1 位分别为 00,使B
30、 端口工作在方式 0作为输出端, PB0-PB7 分别对应连接数码管的 A-DP 。七段发光二极管为阳极 LED 器件。要让 A 段点亮,要求 PB0 输出高电平“ 1”,要使 B 段熄灭,要求从 PB1 输出低电平“ 0”。其余各段以此类推。要使 LED 上显示 0-F 十六个 数字,需要按照如下段码表来驱动数码管的七段 LED 。显示字符01234567七段代码3FH06H5BH4FH66H6DH7DH07H显示字符89AbCdEF七段代码7FH6EH77H7CH39H5EH79H71H8) LED 显示器的工作方式LED 数码管是目前最常用的数字显示器,图A 、B 为共阴管和共阳管的电路
31、,图 C 为两种不同出线形式的引出脚功能图。一个 LED 数码管可用来显示一位 09 十进制数和一个小数点。小型数码管( 0.5 寸和 0.36 寸)每段发光二极管的正向压降,随显示光的颜色不同略有差别,通常约为 22.5V , 每个发光二极管的点亮电流在 510mA 。LED 数码管要显示 BCD 码所表示的十进制数字就 需要有一个专门的译码器,该译码器不但要完成译码功能,还要有相当的驱动能力。图A 共阴连接(“ 1”电平驱动)0”电平驱动)图B 共阳连接(LED 数码管符号及引脚功能图LED 显示器有静态和动态两种工作方式。LED 显示器工作在静态显示方式下, 共阴极或共阳极连接在一起,
32、然后接地或 +5V ,每 位的段选线( A、B.G、H)与一个 8 位并行口相连。这样,只要在每一位的段选线上保持 段选码电平,该位就能保持相应的显示字符。在多位 LED 显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一 个 8 位的 I/O 口控制, 即控制段选码而共阴极点或共阳极点分别由相应的 I/O 线控制即控制 位选码,这就是动态显示。4 位 LED 动态显示电路只需一个 8 位 I/O 口及一个 4 位 I/O 口,其中 8 个 I/O 控制段选 码,4 位 I/O 控制位选。进行 4位字符显示时,采用扫描显示方式,即在每一瞬间只使某一 位显示相应字符,在此瞬间,段选
33、控制 I/O 口输出相应字符段选码,位选控制 I/O 口在该显 示位送入选通电平(共阴极送低电平,共阳极送高电平),以保证该位显示相应字符。如此 轮流, 使每位显示该位应显示字符, 并保持延迟一段时间 (15ms),以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。2. 软件系统设计框图a. 按键定义:运行程序, 8255A 进行初始化。 程序运行时首先会判断是否有压键操作, 如果没有压键 操作, 则重复显示扫描和判断操作。 若有压键操作, 则程序会逐线逐列置低电平同时逐行检 查行线输入状态, 当判断到存在列线和行线同时为 0,则在数码管上显示对应的键值。
34、随后, 会执行询问是否放键的操作, 放键则继续执行有无压键判断; 如果不放键, 则跳转至显示扫 描操作。b. 设计要求 3:运行程序, 8255,8259,8253 先后进行初始化。程序运行时会判断是否按键 9 次,当按键 达 9 次之后,会在数码管上显示“ EEEEEE ”。随后进入延时 30 秒,计时 30 秒后,数码管 被清 0,程序结束。四、源程序STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTVA1 DB 0F7H,0BH,0FDH,0FEHVA2 DB 00HTABLE DB3FH,06H,5BH,4FH,66H,6DH,7
35、DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71H;初始化 8255;初始化 82590 方式 0DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA START: MOV AX,DATAMOV DS,AXMOV DX,0606HMOV AL,88HOUT DX,ALMOV BX,0000HPUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7MOV SI,003CHMOV SI,AXMOV AX,CSMOV SI,003EHMOV SI,AXPOP DSMOV AL,11HOUT 20H
36、,ALMOV AL,08HOUT 21H,ALMOV AL,04HOUT 21H,ALMOV AL,01HOUT 21H,ALMOV AL,7FHOUT 21H,ALSTI ;初始化 8253MOV DX,0686HMOV AL,10H;设置计数器OUT DX,ALMOV DX,0680HMOV AL,08H ;设置计数值为OUT DX,ALLEA SI,TABLESTT: MOV AL,00HMOV DX,0600HOUT DX,ALMOV DX,0604HIN AL,DXAND AL,0F0HCMP AL,0F0HJNZ KEYABCCALL DISPJMP STTKEYABC:CALL
37、TIMEMOV DX,0604HIN AL,DXAND AL,0F0HCMP AL,0F0HJNZ KEYJMP STTKEY: MOV SI, OFFSET TABLEMOV DX,0600HMOV AL,0FEHOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,10HJNZ KEY_7CALL KEY3JMP STTKKEY_7: TEST AL,20HJNZ KEY_8CALL KEY7JMP STTKKEY_8: TEST AL,40HJNZ KEY_FCALL KEY8JMP STTKKEY_F: TEST AL,80HJNZ KEY_2CALL KEYFJM
38、P STTKKEY_2: MOV DX,0600HMOV AL,0FDHOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,10HJNZ KEY_6CALL KEY2JMP STTKKEY_6: TEST AL,20HJNZ KEY_9CALL KEY6JMP STTKKEY_9: TEST AL,40H JNZ KEY_E CALL KEY9 JMP STTKKEY_E: TEST AL,80H JNZ KEY_1 CALL KEYE JMP STTKKEY_1: MOV DX,0600H MOV AL,0FBH OUT DX,AL MOV DX,0604H IN AL
39、,DX TEST AL,10H JNZ KEY_5 CALL KEY1 JMP STTKKEY_5: TEST AL,20H JNZ KEY_A CALL KEY5 JMP STTKKEY_A: TEST AL,40H JNZ KEY_D CALL KEYA JMP STTKKEY_D: TEST AL,80H JNZ KEY_0 CALL KEYD JMP STTKKEY_0: MOV DX,0600H MOV AL,0F7H OUT DX,AL MOV DX,0604H IN AL,DX TEST AL,10H JNZ KEY_4 CALL KEY0 JMP STTKKEY_4: TEST
40、 AL,20H JNZ KEY_B CALL KEY4 JMP STTKKEY_B: TEST AL,40HJNZ KEY_CCALL KEYBJMP STTK KEY_C: TEST AL,80HJNZ KEY_C1CALL KEYCJMP STTKKEY_C1:JMP STTKKEY0: MOV AL,SI+0MOV VA2,ALCALL DISPRETKEY1: MOV AL,SI+1MOV VA2,ALCALL DISPRETKEY2: MOV AL,SI+2MOV VA2,ALCALL DISPRETKEY3: MOV AL,SI+3MOV VA2,ALCALL DISPRET KE
41、Y4: MOV AL,SI+4MOV VA2,ALCALL DISPRETKEY5: MOV AL,SI+5MOV VA2,ALCALL DISPRETKEY6: MOV AL,SI+6MOV VA2,ALCALL DISPRETKEY7: MOV AL,SI+7MOV VA2,ALCALL DISPRETKEY8: MOV AL,SI+8MOV VA2,ALCALL DISPRETKEY9: MOV AL,SI+9 MOV VA2,AL CALL DISP RETKEYA: MOV AL,SI+10 MOV VA2,AL CALL DISP RETKEYB: MOV AL,SI+11 MOV VA2,AL CALL DISP RETKEYC: MOV AL,SI+12 MOV VA2,AL CALL DISP RETKEYD: MOV AL,SI+13 MOV VA2,AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮常识培训体系构建
- 口腔护理刷牙顺序规范
- 解除合伙协议协议书
- 足球发展框架协议书
- 食堂共管账户协议书
- 鲁南地质工程协议书
- 露天采矿承包协议书
- Brand KPIs for second-hand apparel online shops Luxepolis in India-外文版培训课件(2025.2)
- 资产收购借款协议书
- 加盟权转让合同协议书
- 石灰破拱计量投加系统技术规范书
- JJG 40-2011X射线探伤机
- GB/T 33217-2016冲压件毛刺高度
- GB/T 31765-2015高密度纤维板
- GB/T 21618-2008危险品易燃固体燃烧速率试验方法
- GB/T 19165-2003日光温室和塑料大棚结构与性能要求
- 品质管理概念培训
- 《思想道德与法治》 课件 第四章 明确价值要求 践行价值准则
- 《拟行路难》课件26张
- 西安市非学历培训机构公示表
- DB64∕T 802-2021 有限空间作业安全技术规范
评论
0/150
提交评论