微机原理与接口技术实验报告
更新时间:2024-01-21 10:06:01 阅读量: 教育文库 文档下载
实验一 8255A应用—数码管动态显示
一、实验目的
1、掌握8255A的工作方式、编程原理和微机接口方法。 2、了解LED数码管动态显示的工作原理及编程方法。 二、实验内容
编制程序,使数码管显示“DICE88”字样。 三、实验程序框图
图6-1 实验程序流程图
四、实验步骤
联机模式:
(1)在PC机和实验系统联机状态下,运行实验系统dj8086k.exe(双击桌面OTA图标或通过开始-程序-dj8086k-DJ8086k微机原理与接口技术),新建文件并在编辑窗口输入汇编源程序,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。 (2)数码管显示“DICE88”字样。
脱机模式:
(1)在P.态下,通过单板机小键盘,从2DF0地址开始输入机器码(参见附录三),完成后返回监控,输入起始地址2DF0,再按EX键执行。
(2)数码管显示“DICE88”字样。 五、实验程序清单
CODE SEGMENT ; display \ ASSUME CS:CODE
ORG 2DF0H
START: JMP START0
PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 BUF DB ?,?,?,?,?,?
data1:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F0H
START0: CALL BUF1 CON1: CALL DISP
JMP CON1
DISP: MOV AL,0FFH MOV DX,PA OUT DX,AL
MOV CL,0DFH MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
MOV AH,00H PUSH BX
MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX
DIS2: MOV CX,00A0H
LOOP $ POP CX
CMP CL,0FEH JZ LX1
MOV AL,0FFH MOV DX,PA OUT DX,AL INC BX
ROR CL,1 JMP DIS1
LX1: MOV AL,0FFH
MOV DX,PB OUT DX,AL RET
BUF1: MOV BUF,0DH MOV BUF+1,01H MOV BUF+2,0CH MOV BUF+3,0EH
MOV BUF+4,08H MOV BUF+5,08H RET CODE ENDS
;00H
;显示子程序 ,5ms ;01H ;00H ;SHR CL,1 ;实验修改 mov buf,0ah
;实验修改mov buf+4,00h ;实验修改mov,buf+5,09h
END START 六、思考题:
修改程序使之可以显示其他字符,如“AHUt09”。
实验二 8259单级中断控制器实验实验报告 一、思考题 CODE SEGMENT ; ASSUME CS: CODE INTPORT1 EQU 0FF80H INTPORT2 EQU 0FF81H INTQ5 EQU INTREEUP5 INTQ7 EQU INTREEUP7 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 12D0H START: JMP START0 BUF DB ?,?,?,?,?,? intcnt db ? data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD CALL BUF1 CALL WRINTVER ;WRITE INTRRUPT MOV AL,13H MOV DX,INTPORT1 OUT DX,AL MOV AL,08H MOV DX,INTPORT2 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0DFH OUT DX,AL MOV intcnt,01H ;TIME=1 STI WATING: CALL DISP ;DISP 8259-1 JMP WATING WRINTVER: MOV AX,0H MOV ES,AX MOV DI,0034H LEA AX,INTQ5 STOSW MOV AX,0000h
STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET INTREEUP5: CLI push ax push bx push cx push dx MOV AL,INTCNT CALL CONVERS MOV BX,OFFSET BUF MOV AL,10H MOV CX,05H INTRE0: MOV [BX],AL INC BX LOOP INTRE0 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ADD INTCNT,01H CMP INTCNT,06H JNA INTRE2 CALL BUF2 INTRE1: CALL DISP JMP INTRE1 CONVERS: AND AL,0FH MOV BX,offset buf MOV [BX+5],AL RET INTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL pop dx pop cx pop bx pop ax STI IRET INTREEUP7: CLI MOV AL,20H
;077BH ;DISP:good ;077AH
MOV DX,INTPORT1 OUT DX,AL call buf3 ;disp:err INTRE5: CALL DISP JMP INTRE5 DISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL MOV CL,0DFH ;20H ;显示子程序 ,5ms MOV BX,OFFSET BUF DIS1: MOV AL,[BX] MOV AH,00H PUSH BX MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX DIS2: MOV CX,00A0H LOOP $ POP CX CMP CL,0FEH ;01H JZ LX1 INC BX ROR CL,1 ;SHR CL,1 JMP DIS1 LX1: MOV AL,0FFH MOV DX,PB OUT DX,AL RET BUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,09H MOV BUF+4,17H MOV BUF+5,01H RET BUF2: MOV BUF,09H MOV BUF+1,00H
MOV BUF+2,00H MOV BUF+3,0dH MOV BUF+4,10H MOV BUF+5,10H RET BUF3: MOV BUF,0eH MOV BUF+1,18H MOV BUF+2,18H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RET CODE ENDS END START 二、实验过程分析 1.⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“ 插孔和8259的3号中断IR3插孔相连,“ FF80H孔。 系统显示8259-1。 次显示good。 ””端初始为低电平;⑷8259的CS端接 2、输入并运行实验程序, 3、按动AN开关按钮, 按满5三、实验总结 本实验让我掌握了8259中断控制器的接口方法,以及8259中断控制器的应用编程。
实验三 8253、8255、8259综合实验
1.8253计数器实验
要求:计数器1方式0计数,计满3个数产生中断,中断5次后结束。 实验线路见图6-6:
图6-6 8253计数器实验电路图
实验程序:
INTPORT1 EQU 0FF80H ;8259A的偶地址入口 INTPORT2 EQU 0FF81H ;8259A的偶地址入口 INTQ3 EQU INTREEUP3 ;INTREEUP3地址 TCONTR0 EQU 0043H ;8253端口地址 TCON1 EQU 0041H ;8253端口地址 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 code segment
assume cs:code
ORG 12D0H ;源地址
START: JMP START0 ; 跳转到START0 BUF DB ?,?,?,?,?,? ;六字节缓冲区 intcnt db ? ;一字节的缓冲区 data1
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH;七段码定义 START0: CLD;置方向位
CALL BUF1 ;调用子程序BUF1
CALL WRINTVER ;WRITE INTRRUPT MOV AL,13H ;写ICW1,边沿触发,单片,需要ICW4 MOV DX,INTPORT1 OUT DX,AL
MOV AL,08H;ICW2,中断类型号高5位 MOV DX,INTPORT2 OUT DX,AL
MOV AL,09H;写ICW4,BUF位在缓冲方式下工作,8086/8088系统
OUT DX,AL
MOV AL,0F7H OUT DX,AL
MOV intcnt,01H ;TIME=1 MOV DX,TCONTR0;指向控制口
MOV AL,51H ;8253控制字,通道1,方式0,只读/写低字节,BCD码计
数
OUT DX,AL;送控制字
MOV DX,TCON1;指向控制口 MOV AL,03;计数值低字节 OUT DX,AL;送控制字
MOV DX,0FF23H;指向8255A控制口
MOV AL,80;A口方式0,输出,C口上半部输出,B口方式0,输出,C口下半部输出
OUT DX,AL;送控制字
STI; 开中断
WATING: CALL DISP ;DISP 825359 JMP WATING WRINTVER: MOV AX,0H MOV ES,AX
MOV DI,002CH;目的地址
LEA AX,INTQ3;INTQ3的偏移地址 STOSW;存字
MOV AX,0000h;清零 STOSW
RET;中断返回 INTREEUP3: push ax;入栈 push bx push cx push dx
MOV DX,TCON1;指向控制口 MOV AL,03;计数值低字节 OUT DX,AL MOV AL,INTCNT CALL CONVERS
MOV BX,OFFSET BUF MOV AL,10H
MOV CX,05H;置循环数
INTRE0: MOV [BX],AL;将Al中的值存在[BX]中 INC BX;BX加1 LOOP INTRE0;循环
ADD INTCNT,01H;循环数是五次 CMP INTCNT,06H JNA INTRE2
CALL BUF2 ;DISP:good INTRE1: CALL DISP JMP INTRE1
CONVERS: AND AL,0FH;显示次数 MOV BX,offset buf MOV [BX+5],AL RET
INTRE2: MOV AL,20H
MOV DX,INTPORT1 OUT DX,AL pop dx pop cx pop bx pop ax
IRET;软中断返回
DISP: MOV AL,0FFH ;00H MOV DX,PA;清零 OUT DX,AL
MOV CL,0DFH ;20H MOV BX,OFFSET BUF DIS1: MOV DX,PC OUT DX,AL MOV AL,[BX] MOV AH,00H PUSH BX
MOV BX,OFFSET DATA1 ADD BX,AX
MOV AL,[BX] POP BX MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX
DIS2: MOV CX,00A0H LOOP $ POP CX
CMP CL,0FEH ;01H JZ LX1 INC BX
ROR CL,1 ;SHR CL,1 JMP DIS1 LX1: MOV AL,0FFH MOV DX,PB OUT DX,AL RET
BUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,03H MOV BUF+4,05H MOV BUF+5,09H RET
BUF2: MOV BUF,09H MOV BUF+1,00H MOV BUF+2,00H MOV BUF+3,0dH MOV BUF+4,10H MOV BUF+5,10H RET CODE ENDS END START
思考:计数器0方式0计数,计满5个数产生中断,中断3次后结束。 1、将8253控制字由MOV AL,51H改为 MOV AL,11H 2、计数值低字节将 MOV AL,03改为MOV AL,05 3、将CMP INTCNT,06H改为CMP INTCNT,04H;
2、8253定时器实验
要求:用8253定时器1通道定时,每隔1秒使PA口的指示灯的状态右移一位。主程序反复游走显示8253-A。
8253定时器实验线路见图6-7:
图6-7 8253计数器实验电路图
实验程序:
CODE SEGMENT ; ASSUME CS:CODE
INTPORT1 EQU 0FF80H;8259A的偶地址入口 INTPORT2 EQU 0FF81H;8259A的奇地址入口 INTQ3 EQU INTREEUP3
TCONTR0 EQU 0043H;8253端口地址 TCON1 EQU 0041H;8253端口地址
IOCONPT EQU 0FF2BH;8255A 的端口地址 IOBPT EQU 0FF29H;8255A 的端口地址 IOAPT EQU 0FF28H;8255A 的端口地址 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口
ORG 12D0H;源地址 START: JMP START0
BUF DB ?,?,?,?,?,?;6字节缓冲区 intcnt db ? ;1字节缓冲区 WEIKONG DB ? ;1字节缓冲区 data1
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD;置方向位 CALL BUF1
CALL WRINTVER ;WRITE INTRRUPT MOV AL,13H;写ICW1,边沿触发,单片,需要ICW4 MOV DX,INTPORT1 OUT DX,AL
MOV AL,08H;ICW2,中断类型号高5位
MOV DX,INTPORT2
OUT DX,AL
MOV AL,09H;写ICW4,BUF位在缓冲方式下工作,8086/8088系统 OUT DX,AL MOV AL,0F7H OUT DX,AL
MOV intcnt,50 ;软件计数50(1秒=20ms*50) MOV DX,TCONTR0 MOV AL,74H;通道1,先读/写低字节,再读/写高字节,方式2,二进制数 OUT DX,AL
MOV DX,TCON1 ;计数器1定时20ms MOV AX,40000 OUT DX,AL
MOV AL,AH;读入计数值的高字节 OUT DX,AL
MOV DX,0FF2BH
MOV AL,82H;A口方式0,输出,C口上半部输出,B口方式0,输入,C口下半部输出
OUT DX,AL
MOV WEIKONG, 0FEH ;初始PA0对应位亮 MOV AL, WEIKONG MOV DX, 0FF29H OUT DX,AL STI ;开中断
WATING: CALL DISP ;DISP 8253-A JMP WATING WRINTVER: MOV AX,0H MOV ES,AX
MOV DI,002CH;目的地址
LEA AX,INTQ3;INTQ3的偏移地址 STOSW
MOV AX,0000h STOSW RET
INTREEUP3: DEC INTCNT;INTCNT减1 JNZ INTRE2 MOV INTCNT, 50 ROL WEIKONG, 1 MOV DX, IOAPT MOV AL, WEIKONG OUT DX,AL INTRE2: MOV AL,20H
MOV DX,INTPORT1 OUT DX,AL
IRET;软中断返回
DISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL
MOV CL,0DFH ;20H MOV BX,OFFSET BUF DIS1: MOV DX,PC OUT DX,AL MOV AL,[BX] MOV AH,00H PUSH BX
MOV BX,OFFSET DATA1 ADD BX,AX MOV AL,[BX] POP BX
MOV DX,PB OUT DX,AL MOV AL,CL MOV DX,PA OUT DX,AL PUSH CX
DIS2: MOV CX,0000H LOOP $ POP CX
CMP CL,0FEH ;01H JZ LX1;相等转LX1 INC BX
ROR CL,1 ;循环 右移一位,指示灯又移变亮 JMP DIS1
LX1: MOV AL,0FFH;指示灯全灭 MOV DX,PB OUT DX,AL RET
BUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,03H MOV BUF+4,17H MOV BUF+5,0AH RET CODE ENDS
END START
思考::用8253定时器0通道定时,每隔1秒使PA口的指示灯的状态左移一位。主程序反复游走显示8253-B。
1、将MOV AL,74H改为MOV AL,34H; 2、将ROR CL,1 改为ROL CL,1
3、将MOV BUF+5,0AH改为MOV BUF+5,0CH
实验五 A/D转换实验
一、实验目的
了解模/数转换基本原理,掌握ADC0809的使用方法; 掌握定时数据采集程序的编制方法。 二、实验内容 1、A/D转换实验
利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。
(1) 实验接线图 ADC0809接线见图6-9
图6-9 ADC0809接线图
(2)编程指南
ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:
MOV DX,ADPORT ; ADC0809端口地址
OUT DX,AL ; 发CS和WR信号并送通道地址
用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。 MOV DX,ADPORT ; ADC0809端口地址 IN AL,DX
循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。 (3)实验程序框图 A/D转换流程见图6-10
图6-10 A/D转换流程
(4)实验步骤
① 将0809 CS4插孔连到译码输出FF80H插孔。
② 将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。 ③ 运行实验程序,系统上显示“0809 XX”。“XX”表示输入模拟量转换后的数字量。 ④ 调节电位器Wl, 显示器上会不断显示新的转换结果。 模拟量和数字量对应关系的典型值为: 0V→00H +2.5V→80H +5V→FFH ⑤ 按RST键退出。
(5)实验程序清单
CODE SEGMENT ; ASSUME CS:CODE
ADPORT EQU 0FF80h ;8259A偶地址入口 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口
ORG 1000H ;源地址
START: JMP START0 ;跳转到START0
BUF DB ?,?,?,?,?,? ;定义6字节缓冲区
data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h, 0c6h,0a1h ;定义七段码
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CALL BUF1 ;调用BUF1子程序 ADCON: MOV AX,00
MOV DX,ADPORT ; ADC0809端口地址
OUT DX,AL ; 发CS和WR信号并送通道地址
MOV CX,0500H ;置循环数
;DELAY: LOOP DELAY ;空循环,延时
MOV DX,ADPORT ; ADC0809端口地址 IN AL,DX
CALL CONVERS;调用子程序CONVERS CALL DISP ;调用显示子程序DISP JMP ADCON ;跳转到ADCON
CONVERS: MOV AH,AL;将 ax中的低字节赋给高字节 AND AL,0FH ;保留al中的低四位 MOV BX,OFFSET BUF;buf的偏移地址
MOV [BX+5],AL;将al中的值给[Bx+5] MOV AL,AH ;取al中的高四位 AND AL,0F0H
MOV CL,04H ;值移位数 SHR AL,CL;右移四位
MOV [BX+4],Al ;将Al中的值给[BX+4] RET;返回
DISP: MOV AL,0FFH ;PA端口全置1,使其灯无显示 MOV DX,PA
OUT DX,AL
MOV CL,0DFH ;将0DFH给CL MOV BX,OFFSET BUF;取BUF的偏移地址 给BX DIS1: MOV AL,[BX];将[BX]中的内容取出给Al
MOV AH,00H
PUSH BX;BX入栈
MOV BX,OFFSET DATA1;取DATA1的偏移地址给BX ADD BX,AX;BX与Ax相加
MOV AL,[BPBX];将[BX]的内容取到AL中
POP BX;BX出栈
MOV DX,PB;Al中得内容在PB端口输出 OUT DX,AL
MOV AL,CL;显示 MOV DX,PA OUT DX,AL
PUSH CX;CX入栈
DIS2: MOV CX,00A0H;循环00A0H次,延时 LOOP $
POP CX;CX出栈
CMP CL,0FEH;Cl 与0FEH比较 JZ LX1 ;Cl与00A0H相等,则程序跳转到LX1 INC BX ;BX自加1
ROR CL,1;Cl循环左移1位 JMP DIS1;循环显示
LX1: MOV AL,0FFH;PB端口清零
MOV DX,PB OUT DX,AL RET;中断返回 BUF1: MOV BUF,00H MOV BUF+1,08H MOV BUF+2,00H MOV BUF+3,09H MOV BUF+4,00H MOV BUF+5,00H RET CODE ENDS END START
2、数据采集实验
要求:用8253定时器1通道定时,每隔半秒使从ADC0809的0通道IN0采集一个数据,若模拟电压在0-2V范围内(0-102),则使LED显示器L7-L4亮;若模拟电压大于2V,小于3V,则使L5-L2亮;若模拟电压大于等于3V,则使LED显示器L3-L0亮。
(主程序重复所采集的数据) (1)实验接线图
数据采集实验系统接线图见图6-11
图6-11 数据采集系统接线图
(2)程序流程图 主程序流程见图6-12
图6-12 主程序流程图
中断服务程序流程见图6-13
图6-13 中断服务程序流程
(3)实验程序清单 CODE
SEGMENT ; ASSUME CS:CODE
INTPORT1 EQU 0FF80H ;8259A偶地址入口 INTPORT2 EQU 0FF81H ;8259A奇地址入口 INTQ3 EQU INTREEUP3 ;中断源IR3地址 TCONTR0 EQU 0043H;8253端口地址 TCON1 EQU 0041H;8253端口地址 IOCONPT EQU 0FF2BH IOBPT EQU 0FF29H IOAPT EQU 0FF28H
PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口
ADPORT EQU 0FE00H ;ADC0809端口地址 ORG 12D0H;源地址
START: JMP START0;跳转到START0
BUF DB ?,?,?,?,?,?;定义6字节的缓冲区 intcnt db ? RES DB ?
data1 db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH; 定义七段码
START0: CLD;置方向位
CALL BUF1;调用BUF1
CALL WRINTVER ;调用 WRINTVER
MOV AL,13H;初始化ICW1,单片,边沿触发,设置ICW4 MOV DX,INTPORT1 OUT DX,AL
MOV AL,08H;写ICW2,允许IR3中断 MOV DX,INTPORT2 OUT DX,AL
MOV AL,09H;写ICW4,8259A在缓冲方式下工作,8086/8088系统 OUT DX,AL
MOV AL,0F7H;写OCW1,允许中断源IR3,其余均被屏蔽 OUT DX,AL
MOV intcnt,25 MOV DX,TCONTR0
MOV AL,74H;8253工作通道1,先读(写)低字节,再读(写)高字节,方式4,二进制计数
OUT DX,AL
MOV DX,TCON1
MOV AX,40000;8253初始值40000 OUT DX,AL
MOV AL,AH;写初值的高字节 OUT DX,AL
MOV DX,0FF2BH;8255初始化,PA口方式0,输出
MOV AL,82H OUT DX,AL STI;开中断
WATING: CALL DISP;调用显示程序 JMP WATING;循环,延时
WRINTVER: MOV AX,0H
MOV ES,AX;ES指向AX
MOV DI,002CH;置DI初值为002CH LEA AX,INTQ3;取INTQ3的初值 STOSW
MOV AX,0000h STOSW
RET;中断返回
INTREEUP3: DEC INTCNT;INTCNT自减1
JNZ INTRE2;不相等跳转到INTRE2 MOV INTCNT, 25
ADCON: MOV AX,00;设定输入电压值 MOV DX,ADPORT OUT DX,AL
MOV CX,0500H;循环值,延时 DELAY: LOOP DELAY
MOV DX,ADPORT;读电压值 IN AL,DX
MOV RES,AL;将Al中值存入到RES中 CALL CONVERS;调用CONVERS
MOV AL,RES
CMP AL, 66H;Al与66H比较
JA NEXT1;若大于,跳转到NEXT1 MOV AL, 0F0H
MOV DX, IOAPT;输出 OUT DX,AL
JMP INTRE2;跳转到INTRE2 NEXT1: CMP AL, 99H;AL与99H比较
JA NEXT2;跳转到NEXT2(灯L7-L10亮)
MOV AL, 0C3H MOV DX, IOAPT OUT DX,AL
JMP INTRE2;跳转到INTRE2 NEXT2: MOV AL, 0FH MOV DX, IOAPT OUT DX,AL
INTRE2: MOV AL,20H;中断 MOV DX,INTPORT1 OUT DX,AL IRET;中断返回
CONVERS: MOV AH, AL;取Al中得低四位 AND AL, 0FH
MOV BX, OFFSET BUF;取BUF的偏移地址给BX MOV [BX+5], AL;将Al中得值给[BX+5] MOV AL,AH;取Al中的高四位 AND AL, 0F0H MOV CL, 04H
SHR AL, CL;Al中的内容右移4位
MOV [BX+4], AL;将Al中的内容给[BX+4] RET;中断返回
DISP: MOV AL, 0FFH ;PA端口清零 MOV DX, PA OUT DX, AL
MOV CL, 0DFH ;显示
MOV BX, OFFSET BUF;取BUF的偏移地址 DIS1: MOV DX, PC;将Al中的 内容输出到PC端口 OUT DX, AL MOV AL, [BX] MOV AH, 00H PUSH BX;BX入栈
MOV BX, OFFSET DATA1;取DATA1得偏移地址 ADD BX, AX
MOV AL, [BX];将对应的七段码给Al POP BX;BX出栈
MOV DX, PB;输出到PB口 OUT DX, AL
MOV AL, CL显示 MOV DX, PA OUT DX, AL
PUSH CX;CX出栈
DIS2: MOV CX, 00A0H;空循环,延时 LOOP $ POP CX
CMP CL,0FEH JZ LX1 INC BX
ROR CL, 1 JMP DIS1
LX1: MOV AL, 0FFH;PB口清零 MOV DX, PB OUT DX, AL RET;中断返回 BUF1: MOV BUF, 00H MOV BUF+1, 08H MOV BUF+2, 00H MOV BUF+3 ,09H MOV BUF+4, 00H MOV BUF+5, 00H RET CODE ENDS
END START
实验八8250 串口实验
一、实验目的
(1)系统扩展以8250 为核心的可编程串行异步通讯接口芯片。 (2)对扩展的串行通讯接口实现自发自收。 二、实验内容
将寄存器AH 的内容从10H 开始通过8250 发送、接收,每次收发后AH 的内 容自动增1 直到FFH 为止,同时将每次接收到的数据,依次写到内存4000H~ 40EFH 单元中,实现自发自收。 三、编程指南 1、通讯协议
1 个起始位,8 位数据位,1 个停止位,波特率:4800。 2、8250 的内部寄存器的端口地址
* 通讯线控制寄存器第7 位(DLAB)=0 ,** DLAB=1 3、8250 的内部寄存器格式(见课本)
4、波特率除数锁存器的值与波特率的对应关系(16 进制数) 5、8250 的初始化编程 (1)设置波特率
(2)设置通讯数据格式 (3)设置操作方式
(4)设置中断允许寄存器 四、实验接线图 五、实验步骤
1.连FF80H 孔到CS7,连TXD 到RXD(8250 实验区)。 2.编辑、调试、运行程序。
3.当系统显示“8250——good”表示自发自收结束,按RST 键,系统返回
P 态,用内存读写命令检查4000H~40EFH 内容是否为10H~FFH,验证其正确性。 六、参考程序
CODE SEGMENT ;H8250.ASM ASSUME CS: CODE ;H8250.ASM DATA EQU 0ff80H ;BTS-LSB MSB EQU 0ff81H LINE EQU 0ff83H LSTAT EQU 0ff85H
PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 29A0H;源地址
START: JMP START0;跳转到START0 BUF DB ?,?,?,?,?,?;定义6字节缓冲区 data1:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0 c6h,0a1h;定义七段码
db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AL,80H ;DLAB=1 MOV DX,LINE
OUT DX,AL
MOV AL,18H ;BTS=4800;置波特率因子低8位 MOV DX,DATA ;ff80H OUT DX,AL
MOV DX,MSB;置波特率因子高8位 MOV AL,00 OUT DX,AL
MOV AL,03H ;8- BIT ,1-STOP MOV DX,LINE OUT DX,AL
MOV AL,00 ;NO-INT MOV DX,MSB ;8001H OUT DX,AL
MOV AH,10H;AH中的内容 MOV BX,4000H
MAIN: CALL TXD;调用TXD CALL RCV;调用RCV MOV [BX],AL INC BX;BX自加 INC AH;AH自加
CMP AH,00H;AH 与00H作比较 JNZ MAIN;不相等,跳转到MAIN CALL BUF1;调用BUF1
MOV CX,00FFH;将00FFH初始给CX,循环次数 S3:
PUSH CX;CX入栈 CALL DISP;显示 POP CX;CX出栈 LOOP S3;循环 CALL BUF3
S1: CALL DISP;显示 JMP S1;跳转到S1
TXD: MOV DX,LSTAT;
WAIT1: IN AL,DX;读取LSTAT中的值(读取线路状态寄存器)
TEST AL,20H;检验D5位是否为1,即检查发送保持器是否为空,不为空则等待 JZ WAIT1;不为空等待
MOV AL,AH;从AH中取出发送数据 MOV DX,DATA OUT DX,AL RET;中断返回
RCV: MOV DX,LSTAT
WAIT2: IN AL,DX;读线路状态寄存器
TEST AL,01H;查接收缓冲器是否为满,不满则继续等待 JZ WAIT2
TEST AL,0EH
JNZ ERR;不相等,显示err MOV DX,DATA
IN AL,DX;读取DATA端口值 RET;中断返回
ERR: CALL BUF2;调用BUF2程序 S2: CALL DISP;调用显示程序 JMP S2;循环显示
DISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL
MOV CL,0DFH ;20H ;显示子程序,5ms MOV BX,OFFSET BUF;将BUF的偏移值送BX
DIS1: MOV AL,[BX];将[AL]中的内容读到Al中 MOV AH,00H
PUSH BX;BX入栈
MOV BX,OFFSET DATA1;将DATA1的偏移地址给BX ADD BX,AX
MOV AL,[BX];读取对应的七段码 POP BX
MOV DX,PB;输出到PB端口 OUT DX,Al
MOV AL,CL;显示 MOV DX,PA OUT DX,AL PUSH CX
DIS2: MOV CX,00A0H;循环,延时 DELAY: LOOP DELAY POP CX
CMP CL,0FEH ;01H
JZ LX1;相等跳转到LX1
INC BX;BX自加,地址后移一位 ROR CL,1 ;SHR CL,1
JMP DIS1;跳转到DIS1,循环显示 LX1: MOV AL,0FFH;PB端口清零 MOV DX,PB OUT DX,AL RET;中断返回
BUF1: MOV BUF,08H;显示8250—— MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,00H MOV BUF+4,17H MOV BUF+5,17H
RET
BUF2: MOV BUF,08H;显示err MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,00H MOV BUF+4,0EH MOV BUF+5,18H RET
BUF3: MOV BUF,09H;显示good-- MOV BUF+1,00H MOV BUF+2,00H MOV BUF+3,0DH MOV BUF+4,10H MOV BUF+5,10H RET
CODE ENDS END START 思考题
如果使用通讯协议:
1 个起始位,7 位数据位,2 个停止位,波特率:9600。系统将如何实现。 解:将MOV AL,18H MOV DX,DATA OUT DX,AL MOV DX,MSB MOV AL,00 OUT DX,AL MOV AL,03H MOV DX,LINE OUT DX,AL 改为:
MOV AL,0CH
MOV DX,DATA ;ff80H OUT DX,AL MOV DX,MSB MOV AL,00 OUT DX,AL MOV AL,06H MOV DX,LINE OUT DX,AL 实验感想:
经过这几次的实验,我对一些接口芯片有了更深入的理解,动手能力也大大的提高了,在老师细心指导下,这几次的实验都比较顺利。
正在阅读:
微机原理与接口技术实验报告01-21
最新冀教版小学一年级数学上册《探索乐园》教案(精品教学设计)09-05
最新小学语文小课题研究计划03-10
季度绩效奖金发放办法09-07
操作系统练习题10-25
孔子德育途径思想及其现代价值研究05-21
太阳膜整张烤膜贴膜技巧01-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 微机
- 接口
- 原理
- 实验
- 报告
- 技术
- 山东人民版思品三下《浓浓乡土情》WORD版教案 - 图文
- 关于氢原子光谱的超精细结构的研究
- 铁碳合金平衡组织的显微分析及观察
- 高级会计学模拟试卷和答案
- LNG瓶组撬产品说明
- 特产作物洪涝灾害应对技术措施1
- 经济业务的9种类型及举例(10) 2
- 工程技术研究中心管理办法(章程)
- Verilog 语法问题总结
- 人教版小学五年级下册语文句子排序练习题附答案
- 戴旭论《美国肢解中国》的主要观点
- 铸件缺陷分析
- linux的bridge分析
- 武汉理工大学信号处理分析课设报告 - 图文
- 200道四年级简便运算练习题
- 语文,你是如此美丽
- 应用写作模拟试题
- 旅游购物场所经营管理行为规定
- 电子围栏系统方案(标准)—含计算方法 - 图文
- 陕西冤民韩美侠上访十多年(上)被非法关押精神病医院六年