1、 tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE MOVSBREPE CMPSBJNE ERRORTRUE: JMP $ERROR:END START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H30FFH 单元的内容传送到了6000H60FFH 单元中。微机原理与接口技术实验一(2)数据传送(存贮器)1、了解静态存贮器的特性、扩展方法,掌握存贮器的读写时序。2、掌握CPU 对16 位静态存贮器的访问方法
2、1、实验仪选用常用的静态存贮器芯片62256(32K8 位),二片组成32K16位,共64K 字节。实验仪具有16 位数据总线D0.D15、20 位地址线A0.A19、BLE(低电平有效,选择低8 位存贮器芯片)、BHE(低电平有效,选择高8 位存贮器芯片);BLE、BHE 同时有效,对存贮器字方式读写,BLE 或BHE 有效,对存贮器字节方式读写。扩展16 位存贮器时,不使用地址线A0。2、编写程序:将B4 区的静态存贮器3000H-30FFH 单元中数据复制到6000H-60FFH 的单元中,并校验,检测写入的数据是否正确。3、连接线路验证功能,熟悉它的使用方法。实验原理图:连线说明: M
3、OV AX,8000HCALL MoveMove PROC NEARCMP SI,DIJZ ReturnJNB Move1ADD SI,CX DEC SI ADD DI,CXDEC DISTDMove1: REP MOVSBReturn: RETMove ENDP2、子程序Move 中为什么比较SI、DI:源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。3、本实验与实验一(1)的异同点:实验一(一)和实验一(二)都是将3000H中的内容复制到6000H中,而实验一(一)用的是模拟寄存器,里面的内容全是00,实验一(二)中寄存器
4、内是有实际的值的。微机原理与接口技术实验二(1)8259A 中断控制器实验 1、了解8259A 的内部结构、工作原理;了解8259A 与8086 的接口逻辑;掌握对8259A 的初始化编程方法,了解8086 是如何响应中断、退出中断的。2、复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。编制程序:拨动单脉冲开关,将单脉冲送给8259A 的IR0,触发中断,8086 计数中断次数,显示于F5 区的数码管上。运行程序后,上下拨动单脉冲开关,拨动二次,产生一个“ ”,观察结果,数码管上显示的次数与拨动开关次数是否对应。.MODEL TINY EXTRN InitKeyDispl
5、ay:NEAR,Display8:NEAR IO8259_0 EQU 0250HIO8259_1 EQU 0251H.STACK 100.DATABUFFER DB 8 DUP(?)Counter DB ?ReDisplayFlag DB 0 .CODECALL InitKeyDisplay ;对键盘、数码管控制器8255初始化CALL Init8259CALL WriIntverMOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断START1: LEA SI,BufferCALL Display8CMP ReDisplayFlag,0JZ
6、START1CALL LedDisplayMOV ReDisplayFlag,0JMP START1Init8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HMOV AL,09HMOV AL,0FEHRETInit8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV DI,20HLEA AX,INT_0STOSWMOV AX,CSPOP ESWriIntver ENDPLedDisplay PROC NEARMOV AL,CounterMOV AH,ALAND
7、 AL,0FHMOV Buffer,ALAND AH,0F0HROR AH,4 MOV Buffer + 1,AHMOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10HMOV Buffer + 4,10HMOV Buffer + 5,10HMOV Buffer + 6,10HMOV Buffer + 7,10HLedDisplay ENDPINT_0: PUSH DXPUSH AXADD AL,1DAAMOV Counter,ALMOV ReDisplayFlag,1MOV AL,20HPOP AXPOP DXIRET1、通过该实验,观察数码管数字随开关拨
8、动的变化,了解了8259A 的内部结构、工作原理;了解了8259A 与8086 的接口逻辑;掌握了对8259A 的初始化编程方法,了解了8086 是如何响应中断、退出中断的。微机原理与接口技术实验二(2)8259A 中断(优先级)实验初始化编程方法,了解8086 是如何响应中断、退出中断的;体会8259A 的中断优先级处理方法。拨动单脉冲开关,向上的脉冲送给8259A 的IR0,向下的脉冲送给8259A 的IR7,F5 区的最左边数码管对应IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;F5 区的最右边数码管对应IR0 中断:没有触发中断或中断处理完毕,显示“0
9、”,正在响应中断,显示“1”,如果IR0 中断IR7,显示“2”。运行程序并拨动单脉冲开关,向上的脉冲送给8259A 的IR0,向下的脉冲送给8259A 的IR7,F5 区的最左边数码管对应IR7 中断:IRQ0_INT DB 0IRQ7_INT DB 0.CODE对键盘、数码管扫描控制器8255初始化MOV IRQ0_INT,00HMOV IRQ7_INT,00HMOV AL,IRQ0_INTOR AL,IRQ0_INTJZ LedDisplay1ADD AL,IRQ7_INT ;如果CPU正在处理IR7,显示2LedDisplay1: MOV buffer, AL ; ;显示1或2,IR0
10、在中断MOV Buffer + 1,10HMOV Buffer + 2,10HMOV Buffer + 6,10H MOV AL,IRQ7_INTMOV Buffer + 7,AL ;显示1,IR7在中断MOV AL,7EHDELAY PROC NEARPUSH SIPUSH CXMOV CX,100A3: LEA SI,BUFFERCALL DISPLAY8LOOP A3POP CXPOP SIDELAY ENDPIRQ0:INC IRQ0_INT ;显示1,IR0在中断STICALL DELAYDEC IRQ0_INT ;显示0,IR0中断处理完毕IRQ7:INC IRQ7_INT ;DE
11、C IRQ7_INT ;显示0,IR7中断处理完毕LEA AX,IRQ0MOV DI,20H+7*4LEA AX,IRQ71、通过该实验, 观察数码管数字的变化,了解了8259A 的内部结构、工作原理;掌握了对8259A 的初始化编程方法,了解了8086 是如何响应中断、退出中断的;掌握了8259A 的中断优先级处理方法。微机原理与接口技术实验二(3)8253 方波实验1、了解8253 的内部结构、工作原理;了解8253 与8086 的接口逻辑;熟悉8253 的控制寄存器和初始化编程方法,熟悉8253 的6 种工作模式。1、编写程序:使用8253 的计数器0 和计数器1 实现对输入时钟频率的两
12、级分频,得到一个周期为1 秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。2、连接线路,验证8253 的功能,熟悉它的使用方法。测试实验结果:蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯交替点亮。.MODEL TINYCOM_ADDR EQU 0263HT0_ADDR EQU 0260HT1_ADDR EQU 0261H MOV DX,COM_ADDRMOV AL,35HOUT DX,AL ;计数器T0设置在模式2状态,BCD码计数MOV DX,T0_ADDRMOV AL,00HMOV AL,10HCLK0/1000MOV DX,CO
13、M_ADDRMOV AL,77H计数器T1为模式3状态,输出方波,BCD码计数MOV DX,T1_ADDRCLK1/1000JMP $ ;OUT1输出1S的方波1、通过该实验,观察逻辑笔红绿灯交替闪亮,了解了8253 的内部结构、工作原理;了解了8253 与8086 的接口逻辑;熟悉了8253 的控制寄存器和初始化编程方法,熟悉了8253 的6 种工作模式。微机原理与接口技术实验三(一)1、了解8255 芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255 并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。2、熟悉8255 内部结构和与8086 的接口逻辑,熟
14、悉8255 芯片的3 种工作方式以及控制字格式。使用8255 的PA0.2、PA4.6 控制LED 指示灯,实现交通灯功能。2、连接线路验证8255 的功能,熟悉它的使用方法。观察实验结果,是否能看到模拟的交通灯控制过程COM_ADD EQU 0273HPA_ADD EQU 0270HPB_ADD EQU 0271HPC_ADD EQU 0272H.STACK 100 .DATA LED_Data DB 10111110B ;东西绿灯,南北红灯DB 10111111B ;东西绿灯闪烁,南北红灯DB 10111101B ;东西黄灯亮,南北红灯DB 11101011B ;东西红灯,南北绿灯DB 1
15、1111011B ;东西红灯,南北绿灯闪烁DB 11011011B ;东西红灯,南北黄灯亮.CODE MOV DX,COM_ADDMOV AL,80H ;PA、PB、PC为基本输出模式MOV DX,PA_ADD ;灯全熄灭MOV AL,0FFHLEA BX,LED_Data MOV AL,0XLATCALL DL5SMOV CX,6START2: MOV AL,1XLAT CALL DL500msMOV AL,0LOOP START2MOV AL,2 ;CALL DL3SMOV AL,3 ;OUT DX,AL START3: MOV AL,4 ;MOV AL,3LOOP START3MOV A
16、L,5 ;JMP START1 DL500ms PROC NEARMOV CX,60000DL500ms1: LOOP DL500ms1DL500ms ENDPDL3S PROC NEARDL3S1: CALL DL500msLOOP DL3S1ENDPDL5S PROC NEARMOV CX,10DL5S1:LOOP DL5S1END START 1、通过该实验,成功地观察到了模拟的交通灯控制过程,并了解了8255 芯片的工作原理,熟悉了其初始化编程方法以及输入、输出程序设计技巧;学会了使用8255 并行接口芯片实现各种控制功能。2、了解了8255 内部结构和与8086 的接口逻辑,掌握了8
17、255 芯片的3 种工作方式以及控制字格式。微机原理与接口技术实验三(2)8255 键盘显示实验1、进一步掌握8255 的设计、编程方法;2、掌握矩阵键盘的扫描方法;3、掌握动态扫描数码块的方法。扫描键盘,如有按键,键号显示于数码管。2、连接线路,验证8255 的功能,熟悉它的使用方法。COM_8255 EQU 0273H ;8255 控制口PA_8255 EQU 0270HPB_8255 EQU 0271HPC_8255 EQU 0272HBuffer DB 8 DUP(?) ;8 个字节显示缓冲区SEG_TAB DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8HDB 080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFHCLD ;0-DF, 地址自动递增MOV DX,COM_8255MOV AL,89HPA、PB 输出,PC 输入LEA DI,bufferMOV AL
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1