设8253的端口地址为140H~143H,问:(1)程序是对8253的哪个通道进行初始化?
(2)该通道的计数常数为多少?
(3)若该通道时钟脉冲CLK的周期为1μs,则输出脉冲OUT的周期为多少μs? 解:(1) 程序对8253的通道1进行初始化。 (2)计数常数为10000D,BCD计数。 (3)工作在方式3,方波速率发生器 周期=10000′1μs=10000μS=10ms 五、编程题
1、8255的编程。设8255的端口地址为200H~203H。
(1)要求PA口方式1,输入;PB口方式0输出;PC7~PC6为输入;PC1~PC0为输出。试写出8255的初始化程序。
解:MOV DX, 203H MOV AL, 10111000B OUT DX, AL
(2)程序要求当PC7=0时置位PC1,而当PC6=1时复位PC0,试编制相应的程序。2、自BUFFER开始的缓冲区有6个字节型的无符号数:10,0,20,15,38,236,试编制8086汇编语言程序,要求找出它们的最大值、最小值及平均值,分别送到MAX、MIN和AVI三个字节型的内存单元。要求按完整的汇编语言格式编写源程序。
解:MOV DX, 202H IN AL, DX MOV AH, AL TEST AL, 80H JNZ NEXT1
MOV DX, 203H
MOV AL, 00000011B ;对PC1置位 OUT DX, AL NEXT1: MOV AL, AH TEST AL, 40H JZ NEXT2
MOV AL, 00000000B ; 对PC0复位
MOV DX, 203H OUT DX, AL
NEXT2:………
2、接收程序(查询方式) DATA SEGMENT
BUFER DB 10,0,20,15,38,236 MAX DB 0 MIN DB 0 AVI DB 0
DATA ENDS (2分) STACK SEGMENT PARA STACK‘STACK’ DW 100 DUP (?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK (1分)
START PROC FAR BEGIN: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA DI,BUFFER
MOV DX,0 ;使DH=0,DL=0
MOV CX,6
MOV AX,0 ; 和清0 MOV BH,0 ; 最大值
MOV BL,0FFH ; 最小值 (2分) LOP1: CMP BH,[DI]
JA NEXT1 ; 若高于转移 MOV BH,[DI]; 大值?BH NEXT1: CMP BL,[DI] ;
JB NEXT2 ; 若低于转移
MOV BL,[DI]; 小值?BL (2NEXT2: MOV DL,[DI]; 取一字节数据 ADD AX,DX ; 累加和 INC DI
LOOP LOP1 MOV MAX,BH;送大值
MOV MIN, BL;送小值 (3 MOV DL, 6
DIV DL, ;求平均值 MOV AVI, AL;送平均值
RET START ENDP CODE ENDS
END BEGIN
分) 分)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机原理复习资料1(6)在线全文阅读。
相关推荐: