计算机输入输出系统
接口实验报告
姓名:
学号:
二 0 16 年 X月
实验 环境熟悉 IO 址译码
实验目
掌握IO址译码电路工作原理
二实验容
接口实验包中带 EX138DSN 文件 ISIS 7 开改变 A9~A3 接线方法 Y0388H~38FHY1:398H~39FH ……Y7:3F8H~3FFH修改问程序样 Y4#效
1)源程序
8086
MODEL SMALL
stack
data
address word 3c8h
code
start
mov ax@data
mov dsax
mov dxaddress
mov al0
out dxal
jmp
END start
2)电路原理图(138 译码部分)
1
3)运行结果贴图(138 译码面两 273 输出)
2
实验二 编程中断控制器 8259
实验目
1. 掌握8259基工作原理编程方法
2. 深入解中断概念实址模式中断处理程序编写方法
二实验容
接口实验包中带 EX8259DSN 文件 ISIS 7 开手册接线执行
运行结果贴图(执行三次中断次中断 8086 寄存器截图)
……
3
4
实验三 编程定时器计数器 8253
实验目
掌握8253基工作原理编程方法应
二实验容
) 研究定时计数器(选)
1)源程序
8086
MODEL SMALL
DATA
CODE
STARTMOV AX@DATA
MOV DSAX
MOV DX226H
MOV AL00010000B TC0least significant byte onlymode0Binary
OUT DXAL
MOV AL5 Initial count5
MOV DX220H
OUT DXAL
MOV AH4CH
INT 21H
END START
2)讨题
果方式 0 改成方式 1电路动 BUTTON 计数器值会否减 1?什?
会方式 1 GATE1 0 没影响 GATE 升会触发计数器开始计数该电路中 GATE 时钟 1计数器会减 1
二)信号发生器
1)源程序
8086
MODEL SMALL
DATA
CODE
STARTMOV AX@DATA
MOV DSAX
Initailize TC0
MOV DX226H
MOV AL00110110B TC0least significant byte firstmode3binary
OUT DXAL
MOV DX220H
MOV AX1000 Initial count1000
OUT DXAL
MOV ALAH
5
OUT DXAL
Initialize TC1
MOV DX226H
MOV AL01110110B TC1least significant byte firstmode3binary
OUT DXAL
MOV DX222H
MOV AX1000 Initial count1000
OUT DXAL
MOV ALAH
OUT DXAL
Initialize TC2
MOV DX226H
MOV AL10010110B TC2least significant byte onlymode3binary
OUT DXAL
MOV DX224H
MOV AL5 Initial count5
OUT DXAL
MOV AH4CH
INT 21H
END START
2)接线原理图
3)编程调试心(遇问题解决办法获收获)
(1)1 秒周期占空 12 方波现 1MHz 方波输入 CLK0设 CT0 计数值 1000 工作方式方式 3 OUT0 输出信号 1KHz占空 12 方波 OUT0 输入 CLK1
设 CT1 计数值 1000工作方式方式 3 OUT1 输出信号 1Hz占空 12 方波
(2)产生 5 秒周期占空 25 方波时果 OUT1 输入 CLK2CT2 计数初始值 5工作方式方式 3 OUT2 输出信号 5 秒周期占空 35 方波产生占空 25 方波需 OUT2 加非门
(3)产生 5 秒周期波形中前 2 秒频率 1KHz 方波 3 秒低电该波形出 5 秒周期占空 25 方波 1KHz 方波叠加需 OUT0
6
OUT2#相
实验五 七段数码实验
实验目
掌握数码显示数字原理进步复8255应
二实验容
1 静态显示(选)
1)源程序
8086
MODEL SMALL
DATA
BUFF BYTE 3FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H
CODE
STARTMOV AX@DATA MOV DSAX
MOV DX206H
MOV AL10001001B
OUT DXAL
AGAINMOV
DX204H
IN
ALDX
NOT
AL
MOV
BXOFFSET BUFF
XLAT
MOV
DX200H
OUT
DXAL
JMP
AGAIN
END START
2)接线原理图
7
3)运行结果截图
8
2 动态显示
1) 源程序
8086
MODEL SMALL
DATA
VAR BYTE
BUFF BYTE 3FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H
CODE
STARTMOV AX@DATA MOV DSAX
MOV
DX206H
Address of 82C55 is 200H202H204H206H
MOV AL10001001B
Port A in mode0ouputPort B in mode 0outputPort
OUT
DXAL
C in mode 0input
AGAINMOV
DX204H
Get the set of switch from port C
IN
ALDX
NOT
AL
MOV
VARAL
Store the set of switch in 'VAR'
9
MOV DX202H
MOV AL02H
Set S11output tens digit
OUT DXAL
MOV CL4
MOV ALVAR
shift AL 4bit left
SHR ALCL
MOV BXOFFSET BUFF
XLAT
MOV DX200H
OUT DXAL
MOV CX64H
LOOP
Cause a delay before display units digit
MOV DX202H
MOV AL01H
Set S21output units digit
OUT DXAL
MOV ALVAR
AND AL0FH
MOV BXOFFSET BUFF
XLAT
MOV DX200H
OUT DXAL
MOV CX64H
LOOP
Cause a delay before the circulation
JMP AGAIN
END START
2)接线原理图
10
3)运行结果截图
4)编程调试心(遇问题解决办法获收获)
编程心:输出十位数段码输出位数段码间需产生延迟程序中通 MOV CX64H LOOP 实现XLAT 查表指令: DS[BX+AL]址提取存储器中字节送入 AL寄存器左移者右移时移动位数存 CL 寄存器中
11
实验六 交通灯控制实验
)实验目
通行接口8255实现十字路口交通灯模拟控制进步掌握行口中断
二)交通灯变化规律
十字路口交通灯变化规律求
1) 南北路口绿灯东西路口红灯时亮10秒然
2) 南北路口黄灯闪烁2次(闪烁周期2秒)时东西路口红灯继续亮然
3) 南北路口红灯东西路口绿灯时亮10秒然
4) 南北路口红灯继续亮时东西路口黄灯2次(闪烁周期2秒)然
5) 转1重复
三)实验容
1 红黄绿三色交通灯控制接口实验包中带EX825X1DSN文件ISIS 7开D6D5D4作南北路口交通灯PA7PA6PA5相连D3D2D1作东西路口交通灯PA2PA1PA0相连(方式0)利8253产生1秒中断信号(系统已CLK0提供1MHz时钟输入)中断处理程序中程序处理10秒延迟
两次黄灯闪烁问题编程六灯交通灯变化规律燃灭
1)源程序
8086
MODEL SMALL
DATA
COUNT BYTE 10
STATE BYTE 1
CODE
STARTMOV
AX@DATA
MOV
DSAX
Initialize 8259A
MOV
AL13H
ICW1Edge triggeredsingleICW4 is needed
MOV
DX210H
OUT
DXAL
MOV
AL60H
ICW2the interrupt vector is 60H
MOV
DX212H
OUT
DXAL
MOV
AL00000001H
ICW4
OUT
DXAL
Initialize 8253A
MOV
AL00110110B
TC0least significant byte firstmode3Binary
MOV
DX226H
OUT
DXAL
12
MOV AX1000
conut01000
MOV DX220H
OUT DXAL
MOV ALAH
OUT DXAL
MOV AL01110110B TC1least significant byte firstmode3Binary
MOV DX226H
OUT DXAL
MOV AX1000
count11000
MOV DX222H
OUT DXAL
MOV ALAH
OUT DXAL
Initialize 82C55
MOV AL10000000B
MOV DX206H
OUT DXAL
Initailize Interrupt Vector Table
MOV AX@DATA
MOV DSAX
CLI
MOV AX0
MOV ESAX
MOV SI0
MOV CX255
l MOV AXOFFSET SERVICE MOV ES[SI]AX
MOV AXSEG SERVICE MOV ES[SI+2]AX ADD SI4
LOOP l
MOV AXOFFSET SERVICE
MOV ES[SI]AX
MOV AXSEG SERVICE
MOV ES[SI+2]AX
STI
JMP
SERVICE PROC
PUSH AX
PUSH DX
PUSH DS
STI
MOV AX@DATA
MOV DSAX
Interrupter handler
13
MOV
ALSTATE
NEXT3CMP
AL1
State S1
JNZ
NEXT
MOV
DX200H
MOV
AL10000001B
North and south direction of green light
OUT
DXAL
West and east direction of red light
MOV
ALCOUNT
DEC
AL
MOV
COUNTAL
CMP
AL0
MOV
COUNTAL
If COUNT0COUNT4STATE2
JNZ
EXIT
MOV
AL4
MOV
COUNTAL
MOV
AL2
MOV
STATEAL
JMP
EXIT
NEXT CMP
AL2
State S2
JNZ
NEXT1
MOV
ALCOUNT
TEST AL01H
North and south direction of yellow light
flashing
JZ YELLOW1
West and east direction of red light
MOV
DX200H
MOV
AL00000001B
OUT
DXAL
JMP
RESUME1
YELLOW1MOV DX200H
MOV
AL01000001B
OUT
DXAL
RESUME1MOV ALCOUNT
DEC
AL
MOV
COUNTAL
CMP
AL0
If COUNT0COUNT10STATE3
JNZ
EXIT
MOV
AL10
MOV
COUNTAL
MOV
AL3
MOV
STATEAL
JMP
EXIT
NEXT1CMP
AL3
State S3
JNZ
NEXT2
MOV
DX200H
MOV
AL00100100B
North and south direction of red light
14
OUT
DXAL
West and east direction of green light
MOV
ALCOUNT
DEC
AL
MOV
COUNTAL
CMP
AL0
If COUNT0COUNT4STATE4
JNZ
EXIT
MOV
AL4
MOV
COUNTAL
MOV
AL4
MOV
STATEAL
JMP
EXIT
NEXT2CMP
AL4
State S4
JNZ
NEXT3
MOV
ALCOUNT
TEST AL01H
JZ YELLOW2
North and south direction of red light
MOV
DX200H
West and east direction of yellow light
flashing
MOV
AL00100000B
OUT
DXAL
JMP
RESUME2
YELLOW2MOV DX200H
MOV
AL00100010B
OUT
DXAL
RESUME2MOV ALCOUNT
DEC
AL
MOV
COUNTAL
CMP
AL0
If COUNT0COUNT10STATE1
JNZ
EXIT
MOV
AL10
MOV
COUNTAL
MOV
AL1
MOV
STATEAL
EXIT CLI
MOV
AL20H
Send EOI
MOV
DX210H
OUT
DXAL
POP
DS
POP
DX
POP
AX
IRET
SERVICE ENDP
END START
2) 接线原理图
15
3)运行结果截图
16
4)编程调试心(遇问题解决办法获收获)
编程心:实现 S2 S4 黄灯闪烁时次调中断处理程序时通判断 COUNT 奇偶性果 COUNT 偶数黄灯点亮果 COUNT 奇数黄灯熄灭
2 带倒计时交通灯控制(选):接口实验包中带EX825X2DSN文件ISIS 7 开D6D5D4作南北路口交通灯PA7PA6PA5相连D3D2D1作东西路口交通灯PA2PA1PA0相连(方式0)PC口PC0~PC6作输出口(方式0输出)连接7段数码段码PB0PB1连接数码S1S2选择显示位利8253产生1秒中断信号中断处理程序中程序处理10秒延迟两次黄灯闪烁问题编程六灯交通灯变化规律燃灭时数码显示倒计时值(10~04~0)
1) 源程序
8086
MODEL SMALL
DATA
COUNT BYTE 11
STATE BYTE 1
VAR BYTE
BUFF BYTE 3FH06H5BH4FH66H6DH7DH07H7FH6FH3FH
CODE
STARTMOV
AX@DATA
MOV
DSAX
Initialize 8259A
MOV
AL13H
ICW1Edge triggeredsingleICW4 is needed
MOV
DX210H
OUT
DXAL
JMP
SHORT +2
MOV
AL60H
ICW2the interrupt vector is 60H
17
MOV DX212H
OUT DXAL
JMP SHORT +2
MOV AL00000001H ICW4
OUT DXAL
JMP SHORT +2
Initialize 8253A
MOV AL00110110B TC0least significant byte firstmode3Binary
MOV DX226H
OUT DXAL
JMP SHORT +2
MOV AX1000 conut01000
MOV DX220H
OUT DXAL
JMP SHORT +2
MOV ALAH
OUT DXAL
JMP SHORT +2
MOV AL01110110B TC1least significant byte firstmode3Binary
MOV DX226H
OUT DXAL
JMP SHORT +2
MOV AX1000 count11000
MOV DX222H
OUT DXAL
JMP SHORT +2
MOV ALAH
OUT DXAL
JMP SHORT +2
Initialize 82C55
MOV AL10000000B
MOV DX206H
OUT DXAL
JMP SHORT +2
Initailize Interrupt Vector Table
MOV AX@DATA
MOV DSAX
CLI
MOV AX0
MOV ESAX
MOV SI0
MOV CX255
l MOV AXOFFSET SERVICE MOV ES[SI]AX
18
MOV AXSEG SERVICE
MOV ES[SI+2]AX
ADD SI4
LOOP l
MOV AXOFFSET SERVICE
MOV ES[SI]AX
MOV AXSEG SERVICE
MOV ES[SI+2]AX
STI
JMP
SERVICE PROC
PUSH AX
PUSH DX
PUSH DS
STI
MOV AX@DATA
MOV DSAX
MOV ALSTATE
NEXT3CMP AL1
JNZ NEXT
MOV DX200H
MOV AL10000001B
OUT DXAL
JMP SHORT +2
CALL DISPLAY
MOV ALCOUNT
DEC AL
MOV COUNTAL
CMP AL0
MOV COUNTAL
JNZ EXIT
MOV AL5
MOV COUNTAL
MOV AL2
MOV STATEAL
JMP EXIT
NEXT CMP AL2
JNZ NEXT1
MOV ALCOUNT
TEST AL01H
JZ YELLOW1
MOV DX200H
MOV AL00000001B
19
OUT DXAL
JMP SHORT +2
JMP RESUME1
YELLOW1MOV DX200H
MOV AL01000001B
OUT DXAL
JMP SHORT +2
RESUME1CALL DISPLAY
MOV ALCOUNT
DEC AL
MOV COUNTAL
CMP AL0
JNZ EXIT
MOV AL11
MOV COUNTAL
MOV AL3
MOV STATEAL
JMP EXIT
NEXT1CMP AL3
JNZ NEXT2
MOV DX200H
MOV AL00100100B
OUT DXAL
JMP SHORT +2
CALL DISPLAY
MOV ALCOUNT
DEC AL
MOV COUNTAL
CMP AL0
JNZ EXIT
MOV AL5
MOV COUNTAL
MOV AL4
MOV STATEAL
JMP EXIT
NEXT2CMP AL4
JNZ NEXT3
MOV ALCOUNT
TEST AL01H
JZ YELLOW2
MOV DX200H
MOV AL00100000B
OUT DXAL
20
JMP
SHORT +2
JMP
RESUME2
YELLOW2MOV DX200H
MOV
AL00100010B
OUT
DXAL
JMP SHORT +2
RESUME2CALL DISPLAY
MOV
ALCOUNT
DEC
AL
MOV
COUNTAL
CMP
AL0
JNZ
EXIT
MOV
AL11
MOV
COUNTAL
MOV
AL1
MOV
STATEAL
EXIT CLI
MOV
AL20H
MOV
DX210H
OUT
DXAL
JMP
SHORT +2
POP
DS
POP
DX
POP
AX
IRET
SERVICE ENDP
DISPLAY PROC NEAR
MOV
DX202H
MOV
AL02H
Set S11output tens digit
OUT
DXAL
JMP
SHORT +2
MOV
ALCOUNT
SUB
AL1
CMP
AL10
JZ SKIP
MOV
AL0
JMP
RESUME3
SKIP MOV
AL1
RESUME3MOV BXOFFSET BUFF
XLAT
MOV
DX204H
OUT
DXAL
JMP
SHORT +2
MOV
CX64H
21
LOOP
Cause a delay before display units digit
MOV DX202H
MOV AL01H
OUT DXAL
JMP SHORT +2
MOV ALCOUNT
SUB AL1
MOV BXOFFSET BUFF
XLAT
MOV DX204H
OUT DXAL
JMP SHORT +2
MOV CX64H
Set S21output units digit
LOOP
RET
DISPLAY ENDP
END START
2) 接线原理图
22
3)运行结果截图
4)编程调试心(遇问题解决办法获收获)
数码显示倒计时值(10~04~0)时次调中断程序 COUNT 值减 1 然输出数码数码显示程序参考实验五容
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档