微机基础原理与接口技术实验报告.doc
-/微机原理与接口技术课程实验报告实验名称实验一 (1) 存贮器内部数据传送姓 名系院专业班 级学 号实验日期指导教师成 绩一、实验目的和要求1、初步掌握星研集成环境工具软件的使用方法。2、掌握存储器内部不同位置间数据传送的方法。3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、实验内容(包括实验步骤和代码)实验内容:1、编写源程序,要求将数据段中 3000H30FFH 单元的内容传送给 6000H60FFH 单元中。2、编译、连接所编写的源程序。3、执行程序前,利用存贮器窗口将 DS:3000H300FH 中的数据改为 11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的 CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)内容的变化。5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。演示程序:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP MOV CX,100H MOV SI,3000H MOV DI,6000H 1CLD REPE MOVSB MOV CX,100H MOV SI,3000H MOV DI,6000H REPE CMPSB JNE ERROR TRUE: JMP $ ERROR: JMP $ END START三、实验结果及其分析结果:实验名称实验一 (2) 数据传送(存贮器)姓 名系院专业班 级1学 号实验日期6.1指导教师成 绩一、实验目的和要求1、了解静态存贮器的特性、扩展方法,掌握存贮器的读写时序。2、掌握 CPU 对 16 位静态存贮器的访问方法3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、实验内容(包括实验步骤和代码) 实验内容: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、连接线路验证功能,熟悉它的使用方法。实验原理图实验步骤1、连线说明:B4(RAM)区:CS、BLE、BHE A3 区:mCS0、BLE、BHEB4(RAM)区:RD、WR A3 区:MEMR、MEMWB4(RAM)区:JP49(A0.A7) A3 区:JP29(A1.A8)B4(RAM)区:JP38(A8.A15) A3 区:JP33(A9.A16)B4(RAM)区:JP57(D0.D7) A3 区:JP42(D0.D7)B4(RAM)区:JP56(D8.D15) A3 区:JP40(D8.D15)2、通过星研集成环境软件的存贮器窗、寄存器窗等,观察运行结果。演示程序;数据块移动(16位存贮器实验).MODEL TINY .STACK 100 .CODE START: MOV AX,8000H ;存贮器扩展空间段地址MOV DS,AX MOV ES,AX NOP MOV CX,100H MOV SI,3000H MOV DI,6000H CALL Move MOV CX,100H MOV SI,3000H MOV DI,6000H CLD REPE CMPSB JNE ERROR TRUE: JMP $ ERROR: JMP $ Move PROC NEAR CLD CMP SI,DI JZ Return JNB Move1 ADD SI,CX DEC SI ADD DI,CX DEC DI STD Move1: REP MOVSB Return: RET Move ENDP END START三、实验结果及其分析实验名称实验二(1) 8259A中断控制器实验姓 名系院专业班 级1学 号实验日期6.8指导教师成 绩一、实验目的和要求了解 8259A 的内部结构、工作原理;了解 8259A 与 8086 的接口逻辑;掌握对 8259A 的初始化编程方法,了解 8086 是如何响应中断、退出中断的。复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。二、实验内容(包括实验步骤和代码)实验内容1、编制程序:拨动单脉冲开关,“ ”送给 8259A 的 IR0,触发中断,8086 计数中断次数,显示于 F5 区的数码管上实验原理图实验步骤1、连线说明:B3 区:CS、A0 A3 区:CS3、A0B3 区:INT、INTA A3 区:INTR、INTAB3 区:IR0 B2 区:单脉冲D3 区:CS、A0、A1 A3 区:CS1、A0、A1D3 区:PC0、PC1 F5 区:KL1、KL2D3 区:JP20、B、C F5 区:A、B、C2、运行程序。3、上下拨动单脉冲开关,拨动二次,产生一个“ ”,观察结果,数码管上显示的次数与拨动开关次数是否对应。演示程序 .MODEL TINY EXTRN InitKeyDisplay:NEAR, Display8:NEARIO8259_0 EQU 0250H IO8259_1 EQU 0251H .STACK 100 .DATA BUFFER DB 8 DUP(?) Counter DB ? ReDisplayFlag DB 0 .CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP CALL InitKeyDisplay ;对键盘、数码管控制器8255初始化CALL Init8259 CALL WriIntver MOV Counter,0 ;中断次数MOV ReDisplayFlag,1 ;需要显示STI ;开中断 START1: LEA SI,Buffer CALL Display8 CMP ReDisplayFlag,0 JZ START1 CALL LedDisplay MOV ReDisplayFlag,0 JMP START1 Init8259 PROC NEAR MOV DX,IO8259_0 MOV AL,13H OUT DX,AL MOV DX,IO8259_1 MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0FEH OUT DX,AL RET Init8259 ENDP WriIntver PROC NEAR PUSH ES MOV AX,0 MOV ES,AX MOV DI,20H LEA AX,INT_0 STOSW MOV AX,CS STOSW POP ES RET WriIntver ENDP LedDisplay PROC NEAR MOV AL,Counter MOV AH,AL AND AL,0FH MOV Buffer,AL AND AH,0F0H ROR AH,4 MOV Buffer + 1,AH MOV Buffer + 2,10H ;高六位不需要显示MOV Buffer + 3,10H MOV Buffer + 4,10H MOV Buffer + 5,10H MOV Buffer + 6,10H MOV Buffer + 7,10H RET LedDisplay ENDP INT_0: PUSH DX PUSH AX MOV AL,Counter ADD AL,1 DAA MOV Counter,AL MOV ReDisplayFlag,1 MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRET END START实验名称实验二(2) 8259A 中断( 优先级) 实验姓 名系院专业班 级1学 号实验日期6.8指导教师成 绩一、实验目的和要求了解 8259A 的内部结构、工作原理;了解 8259A 与 8086 的接口逻辑;掌握对 8259A 的初始化编程方法,了解 8086 是如何响应中断、退出中断的;体会 8259A 的中断优先级处理方法。复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。二、实验内容(包括实验步骤和代码)实验内容:1、编制程序:拨动单脉冲开关,“ ”送给 8259A 的 IR0,“ ” 送给 8259A 的 IR7,F5 区的最左边数码管对应 IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;F5 区的最右边数码管对应 IR0 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”,如果 IR0 中断 IR7,显示“2”实验原理图实验步骤1、连线说明:B3 区:CS、A0 A3 区:CS3、A0B3 区:INT、INTA A3 区:INTR、INTAB3 区:IR0 B2 区:单脉冲B3 区:IR7 B2 区:单脉冲D3 区:CS、A0、A1 A3 区:CS1、A0、A1D3 区:PC0、PC1 F5 区:KL1、KL2D3 区:JP20、B、C F5 区:A、B、C2、运行程序。3、拨动单脉冲开关,“ ”送给 8259A 的 IR0,“ ” 送给 8259A 的 IR7,F5 区的最左边数码管对应 IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”;F5 区的最右边数码管对应 IR0 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示“1”,如果 IR0 中断 IR7,显示“2”。演示程序:.MODEL TINY EXTRN InitKeyDisplay:NEAR, Display8:NEARIO8259_0 EQU 0250H IO8259_1 EQU 0251H .STACK 100 .DATA BUFFER DB 8 DUP(?) IRQ0_INT DB 0 IRQ7_INT DB 0 .CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP CALL InitKeyDisplay ;对键盘、数码管扫描控制器8255初始化MOV IRQ0_INT,00H MOV IRQ7_INT,00H CALL Init8259 CALL WriIntver CALL LedDisplay STI ;开中断START1: LEA SI,Buffer CALL Display8 JMP START1 LedDisplay PROC NEAR PUSH AX MOV AL,IRQ0_INT OR AL,IRQ0_INT JZ LedDisplay1 ADD AL,IRQ7_INT ;如果CPU正在处理IR7,显示2LedDisplay1: MOV Buffer, AL ;显示1或2,IR0在中断MOV Buffer + 1,10H MOV Buffer + 2,10H MOV Buffer + 3,10H MOV Buffer + 4,10H MOV Buffer + 5,10H MOV Buffer + 6,10H MOV AL,IRQ7_INT MOV Buffer + 7,AL ;显示1,IR7在中断POP AX RET LedDisplay ENDP Init8259 PROC NEAR MOV DX,IO8259_0 MOV AL,13H OUT DX,AL MOV DX,IO8259_1 MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,7EH OUT DX,AL RET Init8259 ENDP DELAY PROC NEAR PUSH SI PUSH CX PUSH AX MOV CX,100 A3: LEA SI,BUFFER CALL DISPLAY8 LOOP A3 POP AX POP CX POP SI RET DELAY ENDP IRQ0: PUSH DX PUSH AX INC IRQ0_INT ;显示1,IR0在中断CALL LedDisplay STI CALL DELAY DEC IRQ0_INT ;显示0,IR0中断处理完毕CALL LedDisplay MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRET IRQ7: PUSH DX PUSH AX INC IRQ7_INT ;显示1,IR7在中断CALL LedDisplay STI CALL DELAY DEC IRQ7_INT ;显示0,IR7中断处理完毕CALL LedDisplay MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRET WriIntver PROC NEAR PUSH ES MOV AX,0 MOV ES,AX MOV DI,20H LEA AX,IRQ0 STOSW MOV AX,CS STOSW MOV DI,20H+7*4 LEA AX,IRQ7 STOSW MOV AX,CS STOSW POP ES RET WriIntver ENDP END START 三、实验结果及其分析实验名称实验二(3) 8253 方波实验姓 名系院专业班 级1学 号实验日期6.8指导教师成 绩一、实验目的和要求了解 8253 的内部结构、工作原理;了解 8253 与 8086 的接口逻辑;熟悉 8253 的控制寄存器和初始化编程方法,熟悉 8253 的 6 种工作模式。二、实验内容(包括实验步骤和代码) 实验内容:1、编写程序:使用 8253 的计数器 0 和计数器 1 实现对输入时钟频率的两级分频,得到一个周期为 1 秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。2、连接线路,验证 8253 的功能,熟悉它的使用方法。实验原理图实验步骤1、连线说明:C4 区:CS、A0、A1 A3 区:CS2、A0、A1C4 区:CLK0 B2 区:2MC4 区:OUT0 C4 区:CLK1C4 区:OUT1 F8 区:Ctrl(蜂鸣器)C4 区:GATE C1 区的 VCC2、测试实验结果:蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红绿灯交替点亮。演示程序.MODEL TINY COM_ADDR EQU 0263H T0_ADDR EQU 0260H T1_ADDR EQU 0261H .STACK 100 .CODE START: MOV DX,COM_ADDR MOV AL,35H OUT DX,AL ;计数器T0设置在模式2状态,BCD码计数MOV DX,T0_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL ;CLK0/1000MOV DX,COM_ADDR MOV AL,77H OUT DX,AL ;计数器T1为模式3状态,输出方波,BCD码计数MOV DX,T1_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL ;CLK1/1000JMP $ ;OUT1输出1S的方波END START三、实验结果及其分析 8253工作在方式3的时候其特性是:在gate为高电平时,当写入控制字后,out变高,在写完计数值后就自动开始计数,输出保持高电平,当计数到一半值时,输出变低,直到计数值为0.所以它的波形是方波。但计数初值为奇数和偶数时它的波形不一样。实验名称实验三(1) 8255 控制交通灯实验姓 名系院专业班 级1学 号实验日期6.14指导教师成 绩一、实验目的和要求1、了解 8255 芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用 8255 并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。2、熟悉 8255 内部结构和与 8086 的接口逻辑,熟悉 8255 芯片的 3 种工作方式以及控制字格式。3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、实验内容(包括实验步骤和代码)实验内容1、编写程序:使用 8255 的 PA0.2、PA4.6 控制 LED 指示灯,实现交通灯功能。2、连接线路验证 8255 的功能,熟悉它的使用方法。实验原理图实验步骤1、连线说明:D3 区:CS、A0、A1 A3 区:CS1、A0、A1D3 区:JP23(PA 口) F4 区:JP182、观察实验结果,是否能看到模拟的交通灯控制过程。演示程序 .MODEL TINY COM_ADD EQU 0273H PA_ADD EQU 0270H PB_ADD EQU 0271H PC_ADD EQU 0272H .STACK 100 .DATA LED_Data DB 10111110B ;东西绿灯,南北红灯DB 10111111B ;东西绿灯闪烁,南北红灯DB 10111101B ;东西黄灯亮,南北红灯DB 11101011B ;东西红灯,南北绿灯DB 11111011B ;东西红灯,南北绿灯闪烁DB 11011011B ;东西红灯,南北黄灯亮.CODE START: MOV AX,DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式OUT DX,AL MOV DX,PA_ADD ;灯全熄灭MOV AL,0FFH OUT DX,AL LEA BX,LED_Data START1: MOV AL,0 XLAT OUT DX,AL ;东西绿灯,南北红灯CALL DL5S MOV CX,6 START2: MOV AL,1 XLAT OUT DX,AL ;东西绿灯闪烁,南北红灯CALL DL500ms MOV AL,0 XLAT OUT DX,AL CALL DL500ms LOOP START2 MOV AL,2 ;东西黄灯亮,南北红灯XLAT OUT DX,AL CALL DL3S MOV AL,3 ;东西红灯,南北绿灯XLAT OUT DX,AL CALL DL5S MOV CX,6 START3: MOV AL,4 ;东西红灯,南北绿灯闪烁XLAT OUT DX,AL CALL DL500ms MOV AL,3 XLAT OUT DX,AL CALL DL500ms LOOP START3 MOV AL,5 ;东西红灯,南北黄灯亮XLAT OUT DX,AL CALL DL3S JMP START1 DL500ms PROC NEAR PUSH CX MOV CX,60000 DL500ms1: LOOP DL500ms1 POP CX RET DL500ms ENDP DL3S PROC NEAR PUSH CX MOV CX,6 DL3S1: CALL DL500ms LOOP DL3S1 POP CX RET ENDP DL5S PROC NEAR PUSH CX MOV CX,10 DL5S1: CALL DL500ms LOOP DL5S1 POP CX RET ENDP END START三、实验结果及其分析 8255A是可编程并行接口芯片,他有3个通道A,B,C。有三种工作方式A可以在3种方式下工作,B 可以在方式1和2下工作,c只能在方式1。在本试验中,三个口都工作在输出方式实验名称实验三(2) 8255 键盘显示实验姓 名系院专业班 级1学 号实验日期6.14指导教师成 绩一、实验目的和要求1、进一步掌握 8255 的设计、编程方法。2、掌握矩阵键盘的扫描方法3、掌握动态扫描数码块的方法4、认真预习,做好实验前的准备工作,填写实验报告二、实验内容(包括实验步骤和代码)实验内容:1、编写程序:扫描键盘,如有按键,键号显示于数码管。2、连接线路,验证 8255 的功能,熟悉它的使用方法。实验原理图实验步骤1、连线说明:D3 区:CS、A0、A1 A3 区:CS1、A0、A1D3 区:PC0、PC1 F5 区:KL1、KL2D3 区:JP20(PB 口)、JP16(B)、JP17(C) F5 区:A、B、C2、运行程序,观察实验结果(任意按下 F5 区 4X4 键盘几个键,它上面的 8 个 LED 显示器会将按键的编码从左至右依次显示出来),可依此验证对程序的正确性。演示程序:.MODEL TINY COM_8255 EQU 0273H ;8255 控制口PA_8255 EQU 0270H PB_8255 EQU 0271H PC_8255 EQU 0272H .STACK 100 .DATA buffer DB 8 DUP(?) ;8 个字节显示缓冲区SEG_TAB DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8HDB 080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH.CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP CLD ;0-DF, 地址自动递增MOV DX,COM_8255 MOV AL,89H OUT DX,AL ;PA、PB 输出,PC 输入LEA DI,buffer MOV AL,10H MOV CX,08H REP STOSB CALL DIR MAIN3: LEA DI,buffer MAIN2: CALL keyi STOSB CALL DIR CMP DI,offset buffer+8JNZ MAIN2 JMP MAIN3 DIR PROC NEAR PUSH AX PUSH BX PUSH DX LEA SI,buffer ;置显示缓冲器初值MOV AH,0FEH LEA BX,SEG_TAB LD0: MOV DX,PA_8255 LODSB XLAT ;取显示数据OUT DX,AL ;段数据-8255 PA 口INC DX ;扫描模式-8255 PB 口MOV AL,AH OUT DX,AL CALL DL1 ;延迟 1msMOV DX,PB_8255 MOV AL,0FFH OUT DX,AL TEST AH,80H JZ LD1 ROL AH,01H JMP LD0 LD1: POP DX POP BX POP AX RET DIR ENDP DL1 PROC NEAR ;延迟子程序PUSH CX MOV CX,500 LOOP $ POP CX RET DL1 ENDP KEYI PROC NEAR PUSH BX PUSH DX LK: CALL AllKey ;调用判有无闭合键子程序JNZ LK1 CALL DIR CALL DIR ;调用显示子程序,延迟 6msJMP LK LK1: CALL DIR CALL DIR CALL AllKey ;调用判有无闭合键子程序JNZ LK2 CALL DIR JMP LK LK2: MOV BL,0FEH ;R2MOV BH,0 ;R4LK4: MOV DX,PB_8255 MOV AL,BL OUT DX,AL INC DX IN AL,DX TEST AL,01H JNZ LONE XOR AL,AL ;0 行有键闭合JMP LKP LONE: TEST AL,02H JNZ NEXT MOV AL,08H ;1 行有键闭合LKP: ADD BH,AL LK3: CALL DIR ;判断释放否CALL AllKey JNZ LK3 MOV AL,BH ;键号-ALPOP DX POP BX RET NEXT: INC BH ;列计数器加 1TEST BL,80H JZ KND ;判是否已扫到最后一列ROL BL,01H JMP LK4 KND: JMP LK KEYI ENDP AllKey PROC NEAR MOV DX,PB_8255 XOR AL,AL OUT DX,AL ;全0-扫描口INC DX IN AL,DX ;读键状态NOT AL AND AL,03H ;取低二位RET AllKey ENDP END START三、实验结果及其分析 在这个实验里,A,B口工作在输出方式,C口高4位工作在输出方式,用来控制行的状态,它的低4位工作在输入方式,用来判断那一列有键按下。A口控制位码,控制那一个显示器显示,B口控制段码,控制到底显示哪一个数字。实验名称实验四(1) 74HC138 译码器实验姓 名系院专业班 级1学 号实验日期6.22指导教师成 绩一、实验目的和要求1、掌握 74HC138 译码器的工作原理,熟悉 74HC138 译码器的具体运用连接方法,了解74HC138 是如何译码的。2、认真预习本节实验内容,尝试自行编写程序,填写实验报告二、实验内容(包括实验步骤和代码) 实验内容:1、编写程序:使用 82C55 的 PC0、PC1、PC2 控制 74HC138 的数据输入端,通过译码产生 8 选 1 个选通信号,轮流点亮 8 个 LED 指示灯。2、运行程序,验证译码的正确性。实验原理图实验步骤1、连线说明:F7 区:A、B、C D3 区:PC0、PC1、PC2F7 区:G1、G2A、G2B C1 区:VCC、GND、GNDF7 区:JP63 F4 区:JP18(LED 指示灯)D3 区:CS、A0、A1 A3 区:CS1、A0、A12、 调试程序,查看运行结果是否正确。演示程序.MODEL TINY Con_8255 EQU 0273H ;8255控制口PC_8255 EQU 0272H ;8255 PC口.STACK 100 .CODE START: MOV DX,Con_8255 MOV AL,80H OUT DX,AL ;8255初始化,PC口作输出用MOV DX,PC_8255 MOV AL,0 START1: OUT DX,AL CALL Delay INC AL JMP START1 Delay PROC NEAR ;延时Delay1: XOR CX,CX LOOP $ RET Delay ENDP END START三、实验结果及其分析实验名称实验四 (2) 8251 可编程通信实验(与微机)姓 名系院专业班 级1学 号实验日期6.22导教师成 绩一、实验目的和要求了解 8251 的内部结构、工作原理;了解 8251 与 8086 的接口逻辑;掌握对 8251 的初始化编程方法,学会使用 8251 实现设备之间的串行通信。复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。二、实验内容(包括实验步骤和代码)实验内容1、编制程序:实现 8251 与 PC 机的串行通讯,使用 8253 作分频器提供 8251 的收发时钟。2、连接线路,使 8251 从微机接收一批数据,接收完毕,再将它们回送给微机。实验原理图实验步骤1、连线说明:C4 区:CS(8253)、A0、A1 A3 区:CS2、A0、A1C4 区:CLK0 B2 区:2MC4 区:GATE C1 区的 VCCC4 区:OUT0 C3 区:RxC TxCC3 区:CS(8251)、C/D A3 区:CS4、A0C3 区:CLK B2 区:4MC3 区:RXD、TXD D7 区:RXD、TXD2、运行程序。3、运行“串口助手(ComPort.EXE)”,设置串口(波特率 4800,8 个数据位,一个停止位,偶校验),打开串口,选择“HEX 发送”、“HEX 显示”,向 8251 发送 10 个字节数据(输入数据之间用空格分隔),是否能接收到 10 个字节数据,接收到的数据是否与发送数据一致。4、改变传输数据的数目,重复实验,观察结果。演示程序 .MODEL TINY ;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bpsCTL_ADDR EQU 0241H ;控制字或状态字DATA_ADDR EQU 0240H ;读写数据W_8253_T0 EQU 0260H ;计数器0地址W_8253_C EQU 0263H ;控制字.STACK 100 .DATA Receive_Buffer DB 10 DUP(0) ;接受缓冲器Send_Buffer EQU Receive_Buf
收藏
- 资源描述:
-
-/
《微机原理与接口技术》课程实验报告
实验名称
实验一 (1) 存贮器内部数据传送
姓 名
系院专业
班 级
学 号
实验日期
指导教师
成 绩
一、实验目的和要求
1、初步掌握星研集成环境工具软件的使用方法。
2、掌握存储器内部不同位置间数据传送的方法。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验内容(包括实验步骤和代码)
实验内容:
1、编写源程序,要求将数据段中 3000H~30FFH 单元的内容传送给 6000H~60FFH 单元
中。
2、编译、连接所编写的源程序。
3、执行程序前,利用存贮器窗口将 DS:3000H~300FH 中的数据改为 11、22、33、44、
55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,
在相对应的地址中直接输入数据即可。
4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式
运行程序,同时在工作区窗口的 CommonRegister 视图中查看本程序所使用的寄存器(CX、
DI、SI)内容的变化。
5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。
演示程序:
.MODEL TINY ;memory mode : tiny
.STACK 100 ;堆栈
.CODE ;开始程序段
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
NOP
MOV CX,100H
MOV SI,3000H
MOV DI,6000H
1
CLD
REPE MOVSB
MOV CX,100H
MOV SI,3000H
MOV DI,6000H
REPE CMPSB
JNE ERROR
TRUE: JMP $
ERROR: JMP $
END START
三、实验结果及其分析
结果:
实验名称
实验一 (2) 数据传送(存贮器)
姓 名
系院专业
班 级
1
学 号
实验日期
6.1
指导教师
成 绩
一、实验目的和要求
1、了解静态存贮器的特性、扩展方法,掌握存贮器的读写时序。
2、掌握 CPU 对 16 位静态存贮器的访问方法
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验内容(包括实验步骤和代码)
实验内容:
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、连接线路验证功能,熟悉它的使用方法。
实验原理图
实验步骤
1、连线说明:
B4(RAM)区:CS、BLE、BHE —— A3 区:mCS0、BLE、BHE
B4(RAM)区:RD、WR —— A3 区:MEMR、MEMW
B4(RAM)区:JP49(A0..A7) —— A3 区:JP29(A1..A8)
B4(RAM)区:JP38(A8..A15) —— A3 区:JP33(A9..A16)
B4(RAM)区:JP57(D0..D7) —— A3 区:JP42(D0..D7)
B4(RAM)区:JP56(D8..D15) —— A3 区:JP40(D8..D15)
2、通过星研集成环境软件的存贮器窗、寄存器窗等,观察运行结果。
演示程序
;数据块移动(16位存贮器实验)
.MODEL TINY
.STACK 100
.CODE
START: MOV AX,8000H ;存贮器扩展空间段地址
MOV DS,AX
MOV ES,AX
NOP
MOV CX,100H
MOV SI,3000H
MOV DI,6000H
CALL Move
MOV CX,100H
MOV SI,3000H
MOV DI,6000H
CLD
REPE CMPSB
JNE ERROR
TRUE: JMP $
ERROR: JMP $
Move PROC NEAR
CLD
CMP SI,DI
JZ Return
JNB Move1
ADD SI,CX
DEC SI
ADD DI,CX
DEC DI
STD
Move1: REP MOVSB
Return: RET
Move ENDP
END START
三、实验结果及其分析
实验名称
实验二(1) 8259A中断控制器实验
姓 名
系院专业
班 级
1
学 号
实验日期
6.8
指导教师
成 绩
一、实验目的和要求
了解 8259A 的内部结构、工作原理;了解 8259A 与 8086 的接口逻辑;掌握对 8259A 的
初始化编程方法,了解 8086 是如何响应中断、退出中断的。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验内容(包括实验步骤和代码)
实验内容
1、编制程序:拨动单脉冲开关,“ ”送给 8259A 的 IR0,触发中断,8086 计数中断
次数,显示于 F5 区的数码管上
实验原理图
实验步骤
1、连线说明:
B3 区:CS、A0 —— A3 区:CS3、A0
B3 区:INT、INTA —— A3 区:INTR、INTA
B3 区:IR0 —— B2 区:单脉冲
D3 区:CS、A0、A1 —— A3 区:CS1、A0、A1
D3 区:PC0、PC1 —— F5 区:KL1、KL2
D3 区:JP20、B、C —— F5 区:A、B、C
2、运行程序。
3、上下拨动单脉冲开关,拨动二次,产生一个“ ”,观察结果,数码管上显示的次
数与拨动开关次数是否对应。
演示程序
.MODEL TINY
EXTRN InitKeyDisplay:NEAR, Display8:NEAR
IO8259_0 EQU 0250H
IO8259_1 EQU 0251H
.STACK 100
.DATA
BUFFER DB 8 DUP(?)
Counter DB ?
ReDisplayFlag DB 0
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
NOP
CALL InitKeyDisplay ;对键盘、数码管控制器8255初始化
CALL Init8259
CALL WriIntver
MOV Counter,0 ;中断次数
MOV ReDisplayFlag,1 ;需要显示
STI ;开中断
START1: LEA SI,Buffer
CALL Display8
CMP ReDisplayFlag,0
JZ START1
CALL LedDisplay
MOV ReDisplayFlag,0
JMP START1
Init8259 PROC NEAR
MOV DX,IO8259_0
MOV AL,13H
OUT DX,AL
MOV DX,IO8259_1
MOV AL,08H
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0FEH
OUT DX,AL
RET
Init8259 ENDP
WriIntver PROC NEAR
PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEA AX,INT_0
STOSW
MOV AX,CS
STOSW
POP ES
RET
WriIntver ENDP
LedDisplay PROC NEAR
MOV AL,Counter
MOV AH,AL
AND AL,0FH
MOV Buffer,AL
AND AH,0F0H
ROR AH,4
MOV Buffer + 1,AH
MOV Buffer + 2,10H ;高六位不需要显示
MOV Buffer + 3,10H
MOV Buffer + 4,10H
MOV Buffer + 5,10H
MOV Buffer + 6,10H
MOV Buffer + 7,10H
RET
LedDisplay ENDP
INT_0: PUSH DX
PUSH AX
MOV AL,Counter
ADD AL,1
DAA
MOV Counter,AL
MOV ReDisplayFlag,1
MOV DX,IO8259_0
MOV AL,20H
OUT DX,AL
POP AX
POP DX
IRET
END START
实验名称
实验二(2) 8259A 中断( 优先级) 实验
姓 名
系院专业
班 级
1
学 号
实验日期
6.8
指导教师
成 绩
一、实验目的和要求
了解 8259A 的内部结构、工作原理;了解 8259A 与 8086 的接口逻辑;掌握对 8259A 的
初始化编程方法,了解 8086 是如何响应中断、退出中断的;体会 8259A 的中断优先级处理
方法。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验内容(包括实验步骤和代码)
实验内容:
1、编制程序:拨动单脉冲开关,“ ”送给 8259A 的 IR0,“ ” 送给 8259A 的 IR7,
F5 区的最左边数码管对应 IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应
中断,显示“1”;F5 区的最右边数码管对应 IR0 中断:没有触发中断或中断处理完毕,显
示“0”,正在响应中断,显示“1”,如果 IR0 中断 IR7,显示“2”
实验原理图
实验步骤
1、连线说明:
B3 区:CS、A0 —— A3 区:CS3、A0
B3 区:INT、INTA —— A3 区:INTR、INTA
B3 区:IR0 —— B2 区:单脉冲
B3 区:IR7 —— B2 区:单脉冲
D3 区:CS、A0、A1 —— A3 区:CS1、A0、A1
D3 区:PC0、PC1 —— F5 区:KL1、KL2
D3 区:JP20、B、C —— F5 区:A、B、C
2、运行程序。
3、拨动单脉冲开关,“ ”送给 8259A 的 IR0,“ ” 送给 8259A 的 IR7,F5 区的最
左边数码管对应 IR7 中断:没有触发中断或中断处理完毕,显示“0”,正在响应中断,显示
“1”;F5 区的最右边数码管对应 IR0 中断:没有触发中断或中断处理完毕,显示“0”,正
在响应中断,显示“1”,如果 IR0 中断 IR7,显示“2”。
演示程序:
.MODEL TINY
EXTRN InitKeyDisplay:NEAR, Display8:NEAR
IO8259_0 EQU 0250H
IO8259_1 EQU 0251H
.STACK 100
.DATA
BUFFER DB 8 DUP(?)
IRQ0_INT DB 0
IRQ7_INT DB 0
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
NOP
CALL InitKeyDisplay ;对键盘、数码管扫描控制器8255初始化
MOV IRQ0_INT,00H
MOV IRQ7_INT,00H
CALL Init8259
CALL WriIntver
CALL LedDisplay
STI ;开中断
START1: LEA SI,Buffer
CALL Display8
JMP START1
LedDisplay PROC NEAR
PUSH AX
MOV AL,IRQ0_INT
OR AL,IRQ0_INT
JZ LedDisplay1
ADD AL,IRQ7_INT ;如果CPU正在处理IR7,显示2
LedDisplay1: MOV Buffer, AL ;显示1或2,IR0在中断
MOV Buffer + 1,10H
MOV Buffer + 2,10H
MOV Buffer + 3,10H
MOV Buffer + 4,10H
MOV Buffer + 5,10H
MOV Buffer + 6,10H
MOV AL,IRQ7_INT
MOV Buffer + 7,AL ;显示1,IR7在中断
POP AX
RET
LedDisplay ENDP
Init8259 PROC NEAR
MOV DX,IO8259_0
MOV AL,13H
OUT DX,AL
MOV DX,IO8259_1
MOV AL,08H
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,7EH
OUT DX,AL
RET
Init8259 ENDP
DELAY PROC NEAR
PUSH SI
PUSH CX
PUSH AX
MOV CX,100
A3: LEA SI,BUFFER
CALL DISPLAY8
LOOP A3
POP AX
POP CX
POP SI
RET
DELAY ENDP
IRQ0: PUSH DX
PUSH AX
INC IRQ0_INT ;显示1,IR0在中断
CALL LedDisplay
STI
CALL DELAY
DEC IRQ0_INT ;显示0,IR0中断处理完毕
CALL LedDisplay
MOV DX,IO8259_0
MOV AL,20H
OUT DX,AL
POP AX
POP DX
IRET
IRQ7: PUSH DX
PUSH AX
INC IRQ7_INT ;显示1,IR7在中断
CALL LedDisplay
STI
CALL DELAY
DEC IRQ7_INT ;显示0,IR7中断处理完毕
CALL LedDisplay
MOV DX,IO8259_0
MOV AL,20H
OUT DX,AL
POP AX
POP DX
IRET
WriIntver PROC NEAR
PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEA AX,IRQ0
STOSW
MOV AX,CS
STOSW
MOV DI,20H+7*4
LEA AX,IRQ7
STOSW
MOV AX,CS
STOSW
POP ES
RET
WriIntver ENDP
END START
三、实验结果及其分析
实验名称
实验二(3) 8253 方波实验
姓 名
系院专业
班 级
1
学 号
实验日期
6.8
指导教师
成 绩
一、实验目的和要求
了解 8253 的内部结构、工作原理;了解 8253 与 8086 的接口逻辑;熟悉 8253 的控制寄
存器和初始化编程方法,熟悉 8253 的 6 种工作模式。
二、实验内容(包括实验步骤和代码)
实验内容:
1、编写程序:使用 8253 的计数器 0 和计数器 1 实现对输入时钟频率的两级分频,得到
一个周期为 1 秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔
上来检验程序是否正确。
2、连接线路,验证 8253 的功能,熟悉它的使用方法。
实验原理图
实验步骤
1、连线说明:
C4 区:CS、A0、A1 —— A3 区:CS2、A0、A1
C4 区:CLK0 —— B2 区:2M
C4 区:OUT0 —— C4 区:CLK1
C4 区:OUT1 —— F8 区:Ctrl(蜂鸣器)
C4 区:GATE —— C1 区的 VCC
2、测试实验结果:蜂鸣器发出时有时无的声音;用逻辑笔测试蜂鸣器的输入端口,红
绿灯交替点亮。
演示程序
.MODEL TINY
COM_ADDR EQU 0263H
T0_ADDR EQU 0260H
T1_ADDR EQU 0261H
.STACK 100
.CODE
START: MOV DX,COM_ADDR
MOV AL,35H
OUT DX,AL ;计数器T0设置在模式2状态,BCD码计数
MOV DX,T0_ADDR
MOV AL,00H
OUT DX,AL
MOV AL,10H
OUT DX,AL ;CLK0/1000
MOV DX,COM_ADDR
MOV AL,77H
OUT DX,AL ;计数器T1为模式3状态,输出方波,BCD码计数
MOV DX,T1_ADDR
MOV AL,00H
OUT DX,AL
MOV AL,10H
OUT DX,AL ;CLK1/1000
JMP $ ;OUT1输出1S的方波
END START
三、实验结果及其分析
8253工作在方式3的时候其特性是:在gate为高电平时,当写入控制字后,out变高,在写完计数值后就自动开始计数,输出保持高电平,当计数到一半值时,输出变低,直到计数值为0.所以它的波形是方波。但计数初值为奇数和偶数时它的波形不一样。
实验名称
实验三(1) 8255 控制交通灯实验
姓 名
系院专业
班 级
1
学 号
实验日期
6.14
指导教师
成 绩
一、实验目的和要求
1、了解 8255 芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。
学会使用 8255 并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉 8255 内部结构和与 8086 的接口逻辑,熟悉 8255 芯片的 3 种工作方式以及控制
字格式。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验内容(包括实验步骤和代码)
实验内容
1、编写程序:使用 8255 的 PA0..2、PA4..6 控制 LED 指示灯,实现交通灯功能。
2、连接线路验证 8255 的功能,熟悉它的使用方法。
实验原理图
实验步骤
1、连线说明:
D3 区:CS、A0、A1 —— A3 区:CS1、A0、A1
D3 区:JP23(PA 口) —— F4 区:JP18
2、观察实验结果,是否能看到模拟的交通灯控制过程。
演示程序
.MODEL TINY
COM_ADD EQU 0273H
PA_ADD EQU 0270H
PB_ADD EQU 0271H
PC_ADD EQU 0272H
.STACK 100
.DATA
LED_Data DB 10111110B ;东西绿灯,南北红灯
DB 10111111B ;东西绿灯闪烁,南北红灯
DB 10111101B ;东西黄灯亮,南北红灯
DB 11101011B ;东西红灯,南北绿灯
DB 11111011B ;东西红灯,南北绿灯闪烁
DB 11011011B ;东西红灯,南北黄灯亮
.CODE
START: MOV AX,@DATA
MOV DS,AX
NOP
MOV DX,COM_ADD
MOV AL,80H ;PA、PB、PC为基本输出模式
OUT DX,AL
MOV DX,PA_ADD ;灯全熄灭
MOV AL,0FFH
OUT DX,AL
LEA BX,LED_Data
START1: MOV AL,0
XLAT
OUT DX,AL ;东西绿灯,南北红灯
CALL DL5S
MOV CX,6
START2: MOV AL,1
XLAT
OUT DX,AL ;东西绿灯闪烁,南北红灯
CALL DL500ms
MOV AL,0
XLAT
OUT DX,AL
CALL DL500ms
LOOP START2
MOV AL,2 ;东西黄灯亮,南北红灯
XLAT
OUT DX,AL
CALL DL3S
MOV AL,3 ;东西红灯,南北绿灯
XLAT
OUT DX,AL
CALL DL5S
MOV CX,6
START3: MOV AL,4 ;东西红灯,南北绿灯闪烁
XLAT
OUT DX,AL
CALL DL500ms
MOV AL,3
XLAT
OUT DX,AL
CALL DL500ms
LOOP START3
MOV AL,5 ;东西红灯,南北黄灯亮
XLAT
OUT DX,AL
CALL DL3S
JMP START1
DL500ms PROC NEAR
PUSH CX
MOV CX,60000
DL500ms1: LOOP DL500ms1
POP CX
RET
DL500ms ENDP
DL3S PROC NEAR
PUSH CX
MOV CX,6
DL3S1: CALL DL500ms
LOOP DL3S1
POP CX
RET
ENDP
DL5S PROC NEAR
PUSH CX
MOV CX,10
DL5S1: CALL DL500ms
LOOP DL5S1
POP CX
RET
ENDP
END START
三、实验结果及其分析
8255A是可编程并行接口芯片,他有3个通道A,B,C。有三种工作方式A可以在3种方式下工作,B 可以在方式1和2下工作,c只能在方式1。在本试验中,三个口都工作在输出方式
实验名称
实验三(2) 8255 键盘显示实验
姓 名
系院专业
班 级
1
学 号
实验日期
6.14
指导教师
成 绩
一、实验目的和要求
1、进一步掌握 8255 的设计、编程方法。
2、掌握矩阵键盘的扫描方法
3、掌握动态扫描数码块的方法
4、认真预习,做好实验前的准备工作,填写实验报告
二、实验内容(包括实验步骤和代码)
实验内容:
1、编写程序:扫描键盘,如有按键,键号显示于数码管。
2、连接线路,验证 8255 的功能,熟悉它的使用方法。
实验原理图
实验步骤
1、连线说明:
D3 区:CS、A0、A1 —— A3 区:CS1、A0、A1
D3 区:PC0、PC1 —— F5 区:KL1、KL2
D3 区:JP20(PB 口)、JP16(B)、JP17(C) —— F5 区:A、B、C
2、运行程序,观察实验结果(任意按下 F5 区 4X4 键盘几个键,它上面的 8 个 LED 显示
器会将按键的编码从左至右依次显示出来),可依此验证对程序的正确性。
演示程序:
.MODEL TINY
COM_8255 EQU 0273H ;8255 控制口
PA_8255 EQU 0270H
PB_8255 EQU 0271H
PC_8255 EQU 0272H
.STACK 100
.DATA
buffer DB 8 DUP(?) ;8 个字节显示缓冲区
SEG_TAB DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H
DB 080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
NOP
CLD ;0->DF, 地址自动递增
MOV DX,COM_8255
MOV AL,89H
OUT DX,AL ;PA、PB 输出,PC 输入
LEA DI,buffer
MOV AL,10H
MOV CX,08H
REP STOSB
CALL DIR
MAIN3: LEA DI,buffer
MAIN2: CALL keyi
STOSB
CALL DIR
CMP DI,offset buffer+8
JNZ MAIN2
JMP MAIN3
DIR PROC NEAR
PUSH AX
PUSH BX
PUSH DX
LEA SI,buffer ;置显示缓冲器初值
MOV AH,0FEH
LEA BX,SEG_TAB
LD0: MOV DX,PA_8255
LODSB
XLAT ;取显示数据
OUT DX,AL ;段数据->8255 PA 口
INC DX ;扫描模式->8255 PB 口
MOV AL,AH
OUT DX,AL
CALL DL1 ;延迟 1ms
MOV DX,PB_8255
MOV AL,0FFH
OUT DX,AL
TEST AH,80H
JZ LD1
ROL AH,01H
JMP LD0
LD1: POP DX
POP BX
POP AX
RET
DIR ENDP
DL1 PROC NEAR ;延迟子程序
PUSH CX
MOV CX,500
LOOP $
POP CX
RET
DL1 ENDP
KEYI PROC NEAR
PUSH BX
PUSH DX
LK: CALL AllKey ;调用判有无闭合键子程序
JNZ LK1
CALL DIR
CALL DIR ;调用显示子程序,延迟 6ms
JMP LK
LK1: CALL DIR
CALL DIR
CALL AllKey ;调用判有无闭合键子程序
JNZ LK2
CALL DIR
JMP LK
LK2: MOV BL,0FEH ;R2
MOV BH,0 ;R4
LK4: MOV DX,PB_8255
MOV AL,BL
OUT DX,AL
INC DX
IN AL,DX
TEST AL,01H
JNZ LONE
XOR AL,AL ;0 行有键闭合
JMP LKP
LONE: TEST AL,02H
JNZ NEXT
MOV AL,08H ;1 行有键闭合
LKP: ADD BH,AL
LK3: CALL DIR ;判断释放否
CALL AllKey
JNZ LK3
MOV AL,BH ;键号->AL
POP DX
POP BX
RET
NEXT: INC BH ;列计数器加 1
TEST BL,80H
JZ KND ;判是否已扫到最后一列
ROL BL,01H
JMP LK4
KND: JMP LK
KEYI ENDP
AllKey PROC NEAR
MOV DX,PB_8255
XOR AL,AL
OUT DX,AL ;全"0"->扫描口
INC DX
IN AL,DX ;读键状态
NOT AL
AND AL,03H ;取低二位
RET
AllKey ENDP
END START
三、实验结果及其分析
在这个实验里,A,B口工作在输出方式,C口高4位工作在输出方式,用来控制行的状态,它的低4位工作在输入方式,用来判断那一列有键按下。A口控制位码,控制那一个显示器显示,B口控制段码,控制到底显示哪一个数字。
实验名称
实验四(1) 74HC138 译码器实验
姓 名
系院专业
班 级
1
学 号
实验日期
6.22
指导教师
成 绩
一、实验目的和要求
1、掌握 74HC138 译码器的工作原理,熟悉 74HC138 译码器的具体运用连接方法,了解
74HC138 是如何译码的。
2、认真预习本节实验内容,尝试自行编写程序,填写实验报告
二、实验内容(包括实验步骤和代码)
实验内容:
1、编写程序:使用 82C55 的 PC0、PC1、PC2 控制 74HC138 的数据输入端,通过译码产
生 8 选 1 个选通信号,轮流点亮 8 个 LED 指示灯。
2、运行程序,验证译码的正确性。
实验原理图
实验步骤
1、连线说明:
F7 区:A、B、C —— D3 区:PC0、PC1、PC2
F7 区:G1、G2A、G2B —— C1 区:VCC、GND、GND
F7 区:JP63 —— F4 区:JP18(LED 指示灯)
D3 区:CS、A0、A1 —— A3 区:CS1、A0、A1
2、 调试程序,查看运行结果是否正确。
演示程序
.MODEL TINY
Con_8255 EQU 0273H ;8255控制口
PC_8255 EQU 0272H ;8255 PC口
.STACK 100
.CODE
START: MOV DX,Con_8255
MOV AL,80H
OUT DX,AL ;8255初始化,PC口作输出用
MOV DX,PC_8255
MOV AL,0
START1: OUT DX,AL
CALL Delay
INC AL
JMP START1
Delay PROC NEAR ;延时
Delay1: XOR CX,CX
LOOP $
RET
Delay ENDP
END START
三、实验结果及其分析
实验名称
实验四 (2) 8251 可编程通信实验(与微机)
姓 名
系院专业
班 级
1
学 号
实验日期
6.22
导教师
成 绩
一、实验目的和要求
了解 8251 的内部结构、工作原理;了解 8251 与 8086 的接口逻辑;掌握对 8251 的初始
化编程方法,学会使用 8251 实现设备之间的串行通信。
复习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验内容(包括实验步骤和代码)
实验内容
1、编制程序:实现 8251 与 PC 机的串行通讯,使用 8253 作分频器提供 8251 的收发时
钟。
2、连接线路,使 8251 从微机接收一批数据,接收完毕,再将它们回送给微机。
实验原理图
实验步骤
1、连线说明:
C4 区:CS(8253)、A0、A1 —— A3 区:CS2、A0、A1
C4 区:CLK0 —— B2 区:2M
C4 区:GATE —— C1 区的 VCC
C4 区:OUT0 —— C3 区:RxC TxC
C3 区:CS(8251)、C/D —— A3 区:CS4、A0
C3 区:CLK —— B2 区:4M
C3 区:RXD、TXD —— D7 区:RXD、TXD
2、运行程序。
3、运行“串口助手(ComPort.EXE)”,设置串口(波特率 4800,8 个数据位,一个停止位,
偶校验),打开串口,选择“HEX 发送”、“HEX 显示”,向 8251 发送 10 个字节数据(输入数据
之间用空格分隔),是否能接收到 10 个字节数据,接收到的数据是否与发送数据一致。
4、改变传输数据的数目,重复实验,观察结果。
演示程序
.MODEL TINY
;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps
CTL_ADDR EQU 0241H ;控制字或状态字
DATA_ADDR EQU 0240H ;读写数据
W_8253_T0 EQU 0260H ;计数器0地址
W_8253_C EQU 0263H ;控制字
.STACK 100
.DATA
Receive_Buffer DB 10 DUP(0) ;接受缓冲器
Send_Buffer EQU Receive_Buf
展开阅读全文