收藏 分销(赏)

微机原理与接口技术课程习题答案模板.doc

上传人:快乐****生活 文档编号:9911773 上传时间:2025-04-13 格式:DOC 页数:59 大小:301KB
下载 相关 举报
微机原理与接口技术课程习题答案模板.doc_第1页
第1页 / 共59页
微机原理与接口技术课程习题答案模板.doc_第2页
第2页 / 共59页
点击查看更多>>
资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 题1.2 参考p.2和p.5 1.9 参考p.13-14 1.11 ( 1) 174.66 D = 10101110.10101000 B = 0AE.A8 H ( 0AE.A9H / 0AE.A8F5C2H) ( 2) .01011 B = 8EB.58 H = 2283.34375 D ( 3) F18A6.6 H = 10100110.0110 B = 989350.375 D 1.12解: 八位机器数原码、 反码、 补码、 移码 +37 00100101 00100101 00100101 10100101 -37 10100101 11011010 11011011 01011011 1.13解: 补码机器数扩充为16位和32位形式 +37 0025 H 00000025 H -37 FFDB H FFFFFFDB H 1.14 解: 46H作为无符号数 = 70 D 46H作为补码 = +70 D 46H作为BCD码 = 46 D 46H作为ASCII码 = ‘F’ 1.19解: 英文字母 D和d的ASCII码为44H和64H; 回车CR为0D H、 换行LF为0A H; 数码0、 空格SP、 空操作NUL的ASCII码分别为30H、 20H、 00H。 题2.5 参考p.32 逻辑地址形式为 段地址: 偏移地址 物理地址 = 段地址*16+段内偏移地址 1MB空间最多能够分成64K个逻辑段, 因为段地址的起始必须是16的倍数, 220/24=216=64K个。 物理地址为: (1) 0FFFF0H( 2) 00417H( 3) 24500H( 4) 0BC777H 2.9 略 2.13解: 运算公式为 [v-(x*y+z-540)]/x 结果商存放在ax中, 余数在dx中。 2.16解: 求有效地址 ( 1) EA = 1256H ( 2) EA = 32F7H 2.19解: 求首地址为array的20个字的数组的元素之和, 结果存放于地址为total的字单元中。 --------------------------- 题4.1 参见p.14-15 8088具有 20 根地址线。在访问内存时使用地址 A0~A19 , 可直接寻址 1MB 容量的内存范围; 在访问外设时使用地址线 A0~A15 , 共能寻址 64K 个输入输出端口。 实际上PC/XT在寻址外设时, 只使用地址线A9~A0; 若A9=1, 说明它要寻址的IO端口位于IO插卡上。 4.2参见p.106-107 总线操作指的是发生在总线上的某些特定操作, 总线周期指的是完成一次特定总线操作所需的时间。对8088而言其典型的总线周期由 4个T状态组成。PC/XT所采用的时钟频率为4.77MHz, 每个T状态的持续时间为210ns。如果CLK引脚接5MHz的时钟信号, 那么每个T状态的持续时间为200ns。 4.4解答: 当8088进行读写存储器或I/O接口时, 如果存储器或I/O接口无法满足CPU的读写时序( 来不及提供或读取数据时) , 需要CPU插入等待状态TW。( 在T3前沿检测Ready信号, 若无效则插入TW 。) 具体在读写总线周期的T3和T4之间插入TW。 4.6参见p.99, p.110 8088的某些输出线有三种状态: 高电平、 低电平、 悬空(高阻态), 称为三态能力。在高阻状态, CPU放弃其了对该引脚的控制权, 由连接它的设备接管。 具有三态能力的引脚有: AD7~AD0, A15~A8, A19/S6~A16/S3, ALE, IO/M*, WR*, RD*, DEN*, DT/R*。 4.11 总线周期 IO/M* WR* RD* 存储器读 低 高 低 存储器写 低 低 高 I/O读 高 高 低 I/O写 高 低 高 IO/M* WR* RD* WR* RD* MEMR* IOW* 4.12 答: 取该指令时引发存储器读总线操作。执行该指令时引发I/O读总线操作。( 时序图略) 4.13 8088系统最小组态下, 对指令ADD [ H], AX ( 长度3B) 。 答: 取该指令时需要3个总线周期, 均为存储器读周期。 执行该指令时需要4个总线周期, 2个为存储器读总线周期( 读出字操作数参与运算) , 2个为存储器写总线周期( 保存16位运算结果) 。 4.15 参见p.106图 74LS373 的G为电平锁存引脚, 控制选通且转为无效时锁存数据。 OE* 输出允许引脚, 信号来自ALE。 4.16 参见p.106图 数据收发器74LS245 是8位双向缓冲器, G*控制端为低电平有效, 可传输数据; DIR控制导通方向: DIR=1, A→B; DIR=0, A←B。 4.17 参见p.111-112 归纳为: 1、 8086数据总线变为16位, 数据地址线复用为AD15~AD0。 2、 8086指令队列程度变为6字节长, 当有2个字节空才取下一指令。 3、 8088引脚IO/M* , 8086变为M/IO*; 4、 引脚SS0* 变为BHE*/S7, BHE* 的作用是使D15~D8有效。 5、 8086存储器组织为奇偶分块, 偶地址取字只要读1次, 奇地址取字需要读两次。 6、 I/O端口大都采用偶地址, 目的是引导8位数据到低8位总线AD7~AD0上, 以提高效率。 ========================= 5.1 Cache、 主存和辅存的作用——参见 p.120~121 虚拟存储器——参见p.121 在CPU看来, 访问主存和访问辅存有什么不同? 访问主存: 经过存储器访问机器指令, 按字随机访问。 访问辅存: 经过操作系统, 按块顺序访问。 5.2 在半导体存储器中, RAM指的是 随机存取存储器 , 它可读可写, 但断电后信息一般会 丢失 ; 而ROM指的是 只读存储器 , 正常工作时只能从中 读取 信息, 但断电后信息 不会丢失 。以EPROM芯片2764为例, 其存储容量为8K×8位, 共有 8 条数据线和 13 条地址线。用它组成64KB的ROM存储区共需 8 片2764芯片。 5.4 一个容量为4K×4位的假想RAM存储芯片, 她应该有多少根地址线引脚和多少根数据线引脚? 如果让你来进行设计, 那么它还需要哪些控制引脚? 这些引脚分别起什么样的控制作用? 解答: 4K×4的芯片应该有12根地址线引脚和4根数据线引脚。 控制引脚应该有: 读取信号OE*: 有效时, 表示读取存储单元的数据 写入信号WE*: 有效时, 表示将数据写入存储单元 片选信号CS*: 有效时, 表示选中该芯片, 能够进行读写操作。 5.7 什么是存储芯片的位扩充和地址扩充?采用静态RAM的芯片2114( 1K*4位) 或动态RAM的芯片4116( 16K*1位) 来组成32KB的RAM存储区, 请问各需要多少芯片? 在位方向和地址方向各需要进行什么样的扩充? 解答: ( 参见p.140) 使用多个芯片来扩充存储数据位的宽度, 称为位扩充。 采用多个芯片在地址方向上进行扩充, 称为地址扩充或字扩充。 用SRAM 2114组成32KBRAM存储区: 2片为一组, 得1KB, 因此组成32KB就要32组, 共需要64片SRAM 2114。 用DRAM 4116组成32KBRAM存储区: 8片为一组, 得16KB, 因此组成32KB只要2组, 共需要16片DRAM 4116。 2114 ( 1) A9~A0 I/O4~I/O1 片选1 D3~D0 D7~D4 A9~A0 2114 ( 2) A9~A0 I/O4~I/O1 CE CE 2114 ( 1) A9~A0 I/O4~I/O1 片选32 D3~D0 D7~D4 A9~A0 2114 ( 2) A9~A0 I/O4~I/O1 CE CE 5.8 存储芯片为什么要设置片选信号? 它与系统地址总线有哪些连接方式? 采用何种连接方式可避免地址重复? 采用哪些连接方式可节省用于译码的硬件? 解答: 片选信号说明该存储器芯片是否被选中正常工作, 设置它能够比较方便地实现多个存储器芯片组成大容量的存储空间。 存储器片选信号一般与CPU地址总线的高位地址线相关联, 能够采用”全译码”、 ”部分译码”、 ”线选译码”方式。 采用全译码方式能够避免地址重复。 采用部分或线选译码能够节省译码硬件。 5.9 在一个针对存储器的译码系统中, 如果有4个地址线未参与译码, 那么每个存储单元会同时拥有几个地址? 解答: 理论上每个存储单元会同时拥有16个地址。 5.10 解答: p.144图5.33中4个存储芯片的可用地址范围: 6264(1) 6264(2) 2732(1) 2732(2) 00000 ~ 01FFFH 0 ~ 03FFFH 04000 ~ 04FFFH 05000 ~ 05FFFH 40000 ~ 41FFFH 4 ~ 43FFFH 44000 ~ 44FFFH 45000 ~ 45FFFH 80000 ~ 81FFFH 8 ~ 83FFFH 84000 ~ 84FFFH 85000 ~ 85FFFH C0000~C1FFFH C ~C3FFFH C4000 ~C4FFFH C5000 ~C5FFFH 重复地址由于A19A18的不定性, 每片各有4段范围。 5.11采用全译码方式和6264芯片( SRAM, 容量8K×8位) , 在内存40000H~43FFFH区段扩充RAM, 请画出这些芯片与最大组态的系统总线的连接示意图。 解: 方法为: 容量=末地址-首地址+1=214=16KB, 因此要2片6264芯片。 A12~A0为片内地址, A15~A13作片选译码的输入CBA, A19~ A16 A15~ A13 A12~A0 地址范围 1 2 0100 0100 000 001 全0~全1 全0~全1 40000H~41FFFH 4 H~43FFFH A12~A0 138 A18 A15 A14 A13 C B A E3 E2 E1 Y0 A19 A17 A16 D7~D0 (1) 6264 CS1 WE OE MEMW MEMR (2) 6264 CS1 WE OE Y3 Y2 Y1 +5V CS2 CS2 5.13 采用3:8译码器74LS138和2764芯片( EPROM, 8K×8位) , 经过全译码方式在8088系统的地址最高端组成32KB的ROM区, 请画出各2764芯片与8088最大组态下形成的线条总线的连接示意图。 解答: 注意地址最高端组成32KB的ROM区, 意味着地址范围是 F8000H~FFFFFH, 这样最高五根地址线A19~A15上要全为1。2764芯片的片内地址是13根即A12~A0, 它们是全0到全1变化; 现在需要4片来构成32KB存储区, 采用3:8译码器的话, A15~A13应该取后4种情况, 即取100~111分别产生Y4~Y7。其余地址线能够以多种方式组合产生控制信号。 A19~ A16 A15~ A13 A12~A0 地址范围 1 2 3 4 1111 1111 1111 1111 100 101 110 111 全0~全1 全0~全1 全0~全1 全0~全1 F8000H~F9FFFH FA000H~FBFFFH FC000H~FDFFFH FE000H~FFFFFH A12~A0 (1) 2764 (2) 2764 CE CE A15 A14 A13 A16 C B A E3 138 A17 Y7 E2 E1 A12~A0 (3) 2764 (4) 2764 CE CE Y6 Y5 Y4 A19 A18 D7~D0 考虑: 如果要求地址从低端开始的话, 高5位全0, 即00000H~07FFFH, 如何连接? 5.16 访问的局部性原则 ——P122 第1行。 高速缓存和虚拟存储的目的 ——p121下部。 ======================= 6.1 在80x86系统中, I/O端口的地址采用 独立 编码方式, 访问端口时要使用专门的 I/O 指令, 有 2 种寻址方式, 其具体形式是: 直接寻址和DX间接寻址 。 6.2 一般的I/O接口电路安排有哪三类寄存器? 她们各自的作用是什么? 解答: ( 参见p.154) ⑴ 数据寄存器 保存外设给CPU和CPU发往外设的数据。 ⑵ 状态寄存器 保存外设或接口电路的状态。 ⑶ 控制寄存器 保存CPU给外设或接口电路的命令。 K7 K1 K0 +5V D0~D7 A0~A15 CLK LS06 反相 驱动器 LS273 8D 锁存器 LS244 三态 缓冲器 8000H 译码 +5V LED0 LED7 … … G IOW IOR 6.4 解: K0单独按下: 输入0FEH, 控制L0 —〉L7 依次循环亮灯, K1单独按下: 输入0FDH, 控制L7 —〉L0 反向依次循环亮灯, 程序流程略。 BEG: MOV DX, 8000H LOP0: IN AL, DX MOV BL, AL MOV CX, 8 ; 循环次数 CMP AL, 0FEH ; 测试是否K0单独按下 JZ LOP1 CMP AL, 0FDH ; 测试是否K1单独按下 JZ LOP2 JMP LOP0 ; LOP1: ROL BL, 1 ; 利用AL初值作为开始位置 MOV AL, BL NOT AL ; 因为有反相器LS06 OUT DX, AL CALL DELAY LOOP LOP1 JMP LOP0 ; LOP2: ROR BL, 1 ; 利用AL初值作为开始位置 MOV AL, BL NOT AL ; 因为有反相器LS06 OUT DX, AL CALL DELAY LOOP LOP2 JMP LOP0 6.5 数据口地址为FFE0H, 状态口地址为FFE2H, 当状态标志D0=1时输入数据就绪, 编写查询方式进行数据传送程序, 读入100个字节, 写到 H: H开始的内存中。 解: ( 程序格式参见p.63~64 ) .CODE MOV AX, H MOV DS, AX ; 段地址 MOV BX, AX ; 偏移地址 MOV CX, 100 NEXT: MOV DX, 0FFE2H STATUS: IN AL, DX ; 读入状态 TEST AL, 01H JZ STATUS DEC DX DEC DX ; 数据口地址 IN AL, DX MOV [BX], AL INC BX LOOP NEXT MOV AX, 4C00H ; 结束 INT 21H 6.6 某字符输出设备, 其数据端口和状态端口的地址均为80H。在读取状态时, 当标志位D7为0时表明该设备闲, 能够接收一个字符。请编写采用查询方式进行数据传送的程序段, 要求将存放于符号地址ADDR处的一串字符( 以$为结束标志) 输出给该设备, 注意在程序中加上注释。 解: 参考答案一: mov bx, offset addr again: mov ah, [bx] ; 取一个字节的字符码 cmp ah, ’$’ jz done status: in al, 80h ; 查询一次 test al, 80h jnz status mov al, ah out 80h, al ; 输出一个字节 inc bx jmp again ; 循环 done: …… 参考答案二: .DATA addr DB ‘xx……xx$’ .CODE MOV AX, @DATA MOV DS, AX LEA BX, addr Status: IN AL, 80H ; 读入状态, if D7=1, 为负数 CMP AL, 0 ; 或 ROL AL, 1 JS Status ; JC STATUS MOV AL, [BX] CMP AL, ‘$’ JZ endof OUT 80H, AL INC BX JMP Status Endof: MOV AX, 4C00H INT 21H 6.7 以可屏蔽中断为例, 说明一次完整的中断过程主要包括那些环节? 8088响应可屏蔽中断请求时需要先满足那些前提条件? 答: 中断过程的主要环节: ( 参见p.165 ) 中断请求、 中断响应、 关中断、 断点保护、 中断源识别、 现场保护、 中断服务、 恢复现场、 开中断、 中断返回。 8088响应可屏蔽中断请求时需要先满足: 中断允许——IF=1。 当前指令执行完毕。 6.8什么是中断源? 为什么要设立中断优先权? 什么是中断嵌套? 何种情况下程序可能发生中断嵌套? 答: 中断源: 计算机系统中引起中断的事件或原因。 当多个中断源同时请求时, CPU需要利用中断优先权决定首先响应哪一个; 当一个中断正在服务时, 又发生了新的中断请求, CPU需要利用中断优先权确定后者是否优先权更高, 以便实现中断嵌套。 中断嵌套: 当一个中断服务时CPU又响应新的中断请求就形成中断嵌套。 CPU允许中断( 开中断) 、 新的中断请求比正在服务的中断优先权更高, 一般发生中断嵌套。 A0~A15 锁 存 器 INTR 三态 缓冲器 译码 8001H D0~D7 中断0 中断1 中断2 … … IOR 6.9参见P.167流程 MOV DX, 8001H STATUS: IN AL, DX TEST AL, 01H JZ NEXT1 ; D0未置1则转测下一位 CALL PROC0 JMP STATUS NEXT1: TEST AL, 02H JZ NEXT2 CALL PROC1 JMP STATUS NEXT2: TEST AL, 04H JZ NEXT3 CALL PROC2 JMP STATUS NEXT3: TEST AL, 08H JZ STATUS CALL PROC3 JMP STATUS 6.10 DMA的意思是 直接存储器存取 , 主要用于高速外设和内存间的数据传送。进行DMA传送的一般过程是: 外设先向DMA控制器提出 DMA传送请求 , DMA控制器经过 HOLD 信号有效向CPU提出总线请求, CPU回以 HLDA 信号有效表示响应。此时CPU的三态信号线将输出 高阻 状态, 即将它们交由 DMAC( DMA控制器) 进行控制, 完成外设和内存间的直接数据传送。 ================== 7.7 假如某并行总线的数据宽度为32位, 工作频率为100MHz, 若2个时钟周期传送一次数据, 其传输速率是多少? 如果在时钟的前后沿各传送一次数据, 其传输速率是多少? 如果采用2-1-1-1的突发传送模式, 其平均传输速率是多少? 解答: f =100MHz , 则时钟周期T=1/f =10 ns 1) 2T一次的传输速率, 即频率减半: fd = (32/8) * 100/2 M = 200 MB/s 或 fd = (32/8) / (2*10 ns) = 200 MB/s 2) 前后沿各传送一次, 即频率加倍: fd = (32/8) * 200 M = 800 MB/s 或即1T2次: fd = (32/8) / (10/2 ns) = 800 MB/s 3) 采用2-1-1-1的突发传送模式, 平均为5T4次: fd = (32/8) /(5*10 ns /4) = 320 MB/s 8.1 8088CPU具有哪些中断类型? 各种中断如何产生, 如何得到中断向量号? 参见p.191、 p.192~193 8.2 8088中断向量表的作用是什么? ( 参见p.194) 答: 它是中断向量号到对应的中断服务程序入口地址的链接表。 经过中断向量号n, 能够读取中断向量表的物理地址为 n*4 开始的单元, 获取中断服务程序的入口地址( 即中断向量) , 长度4个字节。 8.3 说明程序段的功能: (程序略, 见p.212 上) 答: 此段程序将中断服务程序intproc的入口地址写入中断向量表的80h*4开始的单元中。 ( stows 是数据串传送指令, 参见p.78。) ( 实际上能够使用指令序列: mov ax, seg intproc mov ds, ax mov dx, offset intproc mov ax, 2580h int 21h 来完成相同功能) 8.4 8259A中IRR、 IMR和ISR三个寄存器的作用是什么? 答: ( 参见p.196~197 ) • 中断请求寄存器IRR – 保存8条外界中断请求信号IR0~IR7的请求状态 – Di位为1表示IRi引脚有中断请求; 为0表示无请求 • 中断服务寄存器ISR – 保存正在被8259A服务着的中断状态 – Di位为1表示IRi中断正在服务中; 为0表示没有被服务 • 中断屏蔽寄存器IMR – 保存对中断请求信号IR的屏蔽状态 – Di位为1表示IRi中断被屏蔽( 禁止) ; 为0表示允许 8.5 PC/XT对8259A的初始化程序如下: mov al,13h ; 0001 0011 out 20h,al ; ICW1 mov al,08h ; 00001000 out 21h,al ; ICW2 mov al,09h ; 00001001 out 21h,al ; ICW4 请说明其设定的工作方式? 解答: 从第一个写指令ICW1, 看出是边沿触发、 单片方式, 有ICW4; 第二个写指令ICW2为中断向量08h; 第三个写指令ICW4中断方式字, 表示普通全嵌套、 数据线缓冲方式, 从片、 非自动中断结束、 16位微处理器。 8.6 某时刻8259A的IRR内容是08h, 说明只有引脚IR3上有中断请求。 某时刻8259A的ISR内容为08h, 说明只有IR3上的请求正在被CPU服务。 在两片8259A级联的中断电路中, 主片的第5级IR5接从片的中断请求输入, 则初始化主、 从片时ICW3的控制字分别是20H和05H。 ( 分别是0010 0000 和0000 0101 ) 8.7 8259A仅占用两个I/O端口地址, 它是如何区别4条ICW命令和3条OCW命令的? 解: 首先 ICW1、 OCW2和OCW3占用的I/O端口为低位地址, 即A 0 为 0, 其余的初始化命令字和控制命令字的A0 都为 1, 因此把ICW1、 OCW2和OCW3与别的初始化命令字和控制命令字区别开来; 而ICW1的D4 = 1, OCW2的D4 D3 = 00, OCW3的D4 D3 = 01因此能够区分开ICW1、 OCW2和OCW3; 又知道ICW1是初始化时写入的第一个命令字, 紧接着写入的应该是ICW2、 ICW3, 又ICW1的最低位指定了初始化时是否写入ICW4, 因此这些初始化命令字就能够区分开来了。 当初始化完成后工作期间, 3个操作命令字是这样区分的: OCW1占用的I/O端口为高位地址, OCW2和OCW3占用的为低位地址, 因此OCW2和OCW3能够和OCW1区分开; 而 OCW2和OCW3的D3 位不同, 因此二者又被区分开。 8.8 题略p.212。 解: 根据题意: SFNM=0, AEOI=0, LTIM=0, ICW1=00010011, ICW2=90H, ICW4=0000x101, 初始化8086 所接的8259A中断控制器: MOV DX, 0FFDCH ; 对应20H端口 MOV AL, 13H OUT DX, AL MOV DX, 0FFDEH ; 对应21H端口 MOV AL, 90H OUT DX, AL MOV AL, 05H OUT DX, AL 8.10 8259A的中断请求有哪两种触发方式, 它们分别对请求信号有什么要求? PC系列机中采用哪种方式? 答: 上跳沿触发, 要求克服噪音尖峰。 高电平触发, 请求及时撤销请求信号。 PC系列机采用上升沿方式。 8.11 解答: 0bh = 00001011 b, 写OCW3, 接下来要读的是ISR, 中断服务寄存器。 8.12解答: 0bch = 10111100 b, 21H写OCW1即IMR, 结果是只允许IR0、 IR1、 IR6中断, 其它中断被屏蔽。 8.14 中断服务程序的人口处为什么一般要使用开中断指令? 答: 因为8088在进入中断服务程序前的中断响应期内会自动关中断( 令IF=0) , 因此对于不十分重要的中断源, 其中断服务程序的人口处要开中断, 以便能够实现中断嵌套。 -------------------------- 题9.3 8253每个通道有 6 种工作方式可供选择。若设定某通道为方式0后, 其输出引脚为 低 电平; 当 写入计数初值( 并进入减1计数器) 后通道开始计数, CLK 信号端每来一个脉冲 减1计数器 就减1; 当 计数器减为0 , 则输出引脚输出 高 电平, 表示计数结束。8253的CLK0接1.5MHz的时钟, 欲使OUT0产生频率为300KHz的方波信号, 则8253的计数值应为 5( =1.5MHz÷300KHz) , 应选用的工作方式是 3 。 9.4 按要求编写8253初始化程序, 对应计数器0~2和控制字的I/O端口地址为204H~207H。 ( 1) 使计数器1工作在方式0, 仅用8位二进制计数, 初值为128。 ( 2) 使计数器0工作在方式1, 按BCD码计数, 计数值为3000。 ( 3) 使计数器2工作在方式2, 计数值为02F0H。 解: (1) MOV AL, 01010000B ; 即50H MOV DX, 207H OUT DX, AL MOV AL, 128 ; 或80H MOV DX, 205H OUT DX, AL (2) MOV AL, 00100011B ; 即23H, 或用33H初值3000H MOV DX, 207H OUT DX, AL MOV AL, 30H ; 仅送高8位 MOV DX, 204H OUT DX, AL ( 3) MOV AL, 10110100B ; 即0B4H MOV DX, 207H OUT DX, AL MOV DX, 206H MOV AX, 02F0H OUT DX, AL MOV AL, AH OUT DX, AL 9.5 设8253计数器0~2和控制字的I/O地址依次为F8H~FBH, 说明如下程序的作用。 mov al, 33 ; 0011 0011 out 0fbh, al mov al, 80h out 0f8h, al mov al, 50h out 0f8h, al 解: 计数器0工作在方式1, BCD码计数, 计数值5080D。 9.7 解: 例题9.2中CLK0实际输入101个下降沿后产生中断, 还能用工作方式1、 4、 5。如果利用外部信号启动计数, 则GATE0应从 +5v → 0v → +5v。 若采用计数器0方式1的控制字为: 00 01 001 0 B= 12H 。 ( 初始化程序类似p.226 例9.2。) MOV AL, 12H ; 计数器0方式1 MOV DX, 203H OUT DX, AL MOV DX, 200H MOV AL, 100 OUT DX, AL 题9.8解: 先计算计数器0的初值, N=输入f /输出f’ =5MHz /1KHz=5000 计数器0的方式控制字: 00 10 010 1 N= 5000 用BCD计数 计数器1的方式控制字: 01 11 100 0 N=1000=3E8H 计数器0初始化程序: OUT1 OUT0 CLK0 CLK1 8253 5MHz IRQ4 MOV DX, 0FFF3H MOV AL, 25H OUT DX, AL MOV AL, 50H MOV DX, 0FFF0H OUT DX, AL ( 或方式控制字0011 0100, 初值5000) mov dx, 0fff3h mov al, 34h out dx, al mov dx, 0fff0h mov ax, 5000 out dx, al mov al, ah ; 先低后高 out dx, al 计数器1初始化程序: MOV DX, 0FFF3H MOV AL, 78H OUT DX, AL MOV AX, 3E8H MOV DX, 0FFF1H OUT DX, AL MOV AL, AH ; 先低后高 OUT DX, AL ( 或方式控制字01 10 100 1, 初值1000D, 只送高字节) mov al, 69h mov dx, 0fff3h out dx, al mov dx, 0fff1h mov al, 10h out dx, al 补充: ( 此处题目不需要进行8259A的初始化) IRQ4的中断向量为0CH, 若需要设置8259A的初始化如下: MOV AL, 13H ; ICW1 OUT 20H, AL MOV AL, 08H ; ICW2 OUT 21H, AL MOV AL, 07H ; ICW4 OUT 21H, AL 对应中断屏蔽字为11101111, 中断屏蔽位设置程序: IN AL, 21H ; 读出IMR AND AL, 0EFH ; 设置允许IRQ4 , 其它位不影响 OUT 21H, AL ; 再写入IMR 即OCW1 9.9 扬声器控制发音程序: 子程序speaker、 speakon、 speakoff参见p.223 解: 参考答案一、 .DATA P1 DW 1193180/524 P2 DW 1193180/588 P3 DW 1193180/660 P4 DW 1193180/698 P5 DW 1193180/784 P6 DW 1193180/880 P7 DW 1193180/998 P8 DW 1193180/1048 .CODE MOV AX, @DATA MOV DS, AX keyin: MOV AH, 1 INT 21H ; 等待按键 CMP AL, 1BH ; 是否ESC JZ EXIT CMP AL, 31H JZ PP1 CMP AL, 32H JZ PP2 CMP AL, 33H JZ PP3 CMP AL, 34H JZ PP4 CMP AL, 35H JZ PP5 CMP AL, 36H JZ PP6 CMP AL, 37H JZ PP7 CMP AL, 38H JZ PP8 CALL speakoff JMP keyin EXIT: MOV AX, 4C00H INT 21H PP1: MOV AX, P1 CALL speaker CALL speakon JMP keyin ; ……程序段PP2~PP7 略 PP8: MOV AX, P8 CALL speaker CALL speakon JMP keyin 参考答案二、 .DATA addr DW 2277, 2029, 1808, 1709 DW 1522, 1356, 1196, 1139 .CODE MOV AX, @DATA MOV DS, AX keyin: MOV AH, 1
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服