微机原理实验报告大汇总文档格式.docx
《微机原理实验报告大汇总文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告大汇总文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
通过开关从PA口输入数据,观察灯可知,PB口输出。
实现了设计的功能。
实验二8259中断控制器实验
了解8259中断控制器的基本使用,掌握中断程序编程技术。
使用单脉冲电路产生的脉冲信号作为386EX模块8259中断请求输入,每按一次单脉冲按键,触发一次中断,使7段数码管显示的“5”字左移一位,显示到最左端后再从最右端开始显示,如此重复。
3、实验框图与电路图
Modelsmall
data segment
led_cs equ 200hled_cs1 equ 201h
ledcode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67hold dd ?
data endscodesegment
assumecs:
code,ds:
data
start:
cli
mov ax,data
mov ds,ax
mov es,ax
in al,21h
and al,11011111b ;
maskbyteout 21h,al
push ds
mov bx,0
mov ds,bx
lea ax,cs:
int_proc ;
WRITEINTERRUPTPROGRAMEMTRYADDRESS
mov bx,5 ;
n=IRx
mov si,30h ;
base=30Hadd si,bx
sal si,2 ;
typenumX4mov ds:
[si],ax
push cs
pop ax
mov ds:
[si+2],axpop ds
ttt:
lea bx,ledcodesti
sss:
mov ch,1
lll:
cmp ch,40hje sss
jmp lllint_procproc far
push ax
call disp
mov al,20h
out 20h,al
pop axsti
iretint_procendpdisp proc
push dx
push bx
l:
mov al,6dhmov dx,led_csnop
nop
mov al,ch
e:
mov dx,led_cs1out dx,al
shl ch,1
exitdisp:
pop axpop bx
pop dxret
disp endp
delay proc
push ecx
mov ecx,0fffffffh
kk1:
loop kk1pop ecxret
delay endp
单片8259实验中,每按一次单脉冲按键,触发一次中断,使7段数码管显示的
“5”字左移一位,显示到最左端后再从最右端开始显示,如此重复。
实验三 定时/计数器8254实验
熟悉8254在系统中的电路接法,掌握8254的工作方式及应用编程。
二、实验内容
使用8254两个计数器级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各1秒。
四、程序清单
datasegment
i8254_0EQU200H
i8254_1equ201hi8254kzequ203hdata ends
code segment
mov
movmov
ax,data
ds,axdx,i8254kz
al,36h
;
计数器0方式3,BCD码计数
out
dx,al
ax,1000
写入循环计数初值1000
dx,i8254_0
计数器0设置初值
先写低字节
al,ah
后写高字节
dx,i8254kz
al,76h
计数器1方式3,二进制计数
dx,i8254_1
ddd:
jmp
ddd
hlt
code
ends
end
start
五、实验结果与分析
可以看到周期性的点亮及熄灭发光二极管各1秒。
通过本次实验,掌握了8253的使用方法。
对于时定时时间超出计时器计时范围的情况,可先通过一个计时器对时钟信号进行分频,再用其输出作为另一定时器的时钟信号。
用这种方法可以极大地拓展计时的范围。
实验四 8位A/D转换实验(查询方式)
掌握模/数信号转换的基本原理,掌握ADC0809芯片的应用方法。
从ADC0809通道0输入+5V可变电压,使用查询方式读取转换数据并在数码管上显示两位16进制数。
AD_CS EQU 200h ;
LED_CS EQU 210H
DATA SEGMENT
LEDCODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71HDATA ENDS
CODE SEGMENT
ASSUMECS:
CODE,DS:
DATASTART:
MOV AX,DATA
MOV DS,AX
RPT:
MOV DX,AD_CS ;
ADC启动转换地址
OUT DX,AL
MOV DX,AD_CS ;
获取ADCEOC状态地址
ADD DX,2
L1:
IN AL,DX
TEST AL,01H ;
测试EOC=1?
JZ L1
MOV DX,AD_CS ;
读数据地址INC DX
IN AL,DX
CALL DISP ;
显示数据JMP RPT
DISP PROC
MOV SI,OFFSETLEDCODEMOV BX,SI
MOV CH,AL
MOV CL,4
ROR AL,CL ;
截取AL高四位并转换。
AND AL,0FH
MOV AH,0
ADD BX,AX
MOV AL,[BX] ;
获取LED显示编码
MOV DX,LED_CSOUT DX,AL
MOV AL,02H
INC DXNOP
OUT DX,AL ;
显示CALL DELAY
MOV AL,CH
AND AL,0FH ;
截取低四位,并转换MOV AH,0
ADD SI,AX
MOV AL,[SI]MOV DX,LED_CSOUT DX,AL
MOV AL,01H
INC DX
RET
DISP ENDP
DELAY PROCPUSH CX
MOV CX,50H
X1:
LOOPX1POPCXRET
DELAY ENDP
CODE ENDS
END START
旋转电位器旋钮,改变模拟量大小,转换值×
×
在00~FF之间变化。
实验五 步进电机实验
掌握步进电机的控制方法。
编写实验程序,利用8255A口控制步进电机的运转。
步进电机型号为20BY20H04,电压5V,每转一圈需48步,每步旋转7.5度。
三、实验框图及电路图
.model small
io_address equ 200hdatasegment
speeddb2dataendscodesegment
datastart:
mov ax,data
mov dx,IO_ADDRESSadd dx,03
mov al,80h ;
输出8255控制字out dx,al
speedin:
a1:
mov dx,IO_ADDRESS ;
输出步进代码顺序为1,3,2,6,4,c,8,9mov al,01h
call delay
mov al,03h
mov al,02h
mov al,06h
mov al,04h
mov al,0Ch
mov al,08h
mov al,09h
jmp a1
delay proc ;
延时子程序push ax
push cx
movdh,speedx1:
movcx,0f00hx2:
loopx2
dec dh
jnz x1
pop dx
pop cx
pop axret
delay endpcode ends
实验结果与分析
步进电机选全速旋转。
通过本次实验,了解了步进电机的工作原理,以及脉冲分配概念;
掌握了计算机控制步进电机的方法。
实验六扩展8259中断控制器实验
1、掌握中断控制器8259管理
2、掌握扩展中断
1、采用查询方式
2、如图接线,按单脉冲请求一次中断,屏幕上显示相应的中断请求号
.modelsmall
led_cs equ 210h
i8259_1
equ
200H
8259的ICW1端口地址
i8259_2
201H
8259的ICW2端口地址
i8259_3
8259的ICW3端口地址
i8259_4
8259的ICW4端口地址
o8259_1
8259的OCW1端口地址
o8259_2
8259的OCW2端口地址
o8259_3
8259的OCW3端口地址
ledcode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,67hdata ends
codesegment
cli
----设置386的8259中断屏蔽字----
----初始化8259----
ui:
mov
movout
dx,i8259_1
al,13hdx,al
设置8259的ICW1
中断请求为边沿触发,单片8259、需要ICW4
dx,i8259_4
设置8259的ICW4
al,01h
mov dx,o8259_1 ;
设置8259的OCW1mov al,00h ;
打开所有中断允许out dx,al
mov ax,0
mov si,30H ;
add si,si ;
typenum
X4mov ds:
sti
mov ch,1LLL:
cmp ch,40h
je sss
jmp lllINT_PROC PROCfar
QUERY:
mov dx,o8259_3 ;
向8259的OCW3发送查询命令
mov al,0ch
读出查询字,读出8259的中断号and al,07h
mov dx,o8259_2 ;
向8259发送中断结束命令mov al,20h
pop cxsti
iret
int_proc ENDPdisp proc
mov si,offsetledcodemov bx,si
mov ah,0
add bx,ax
al,[bx]
dx,led_cs
inc
dx
call
delay
al,00h
pop
bx
ret
disp
endp
proc
push
cx
ax
kk2:
ax,0fh
mov cx,0ffffh
x1:
loop x1dec ax
pop cxret
单片8259实验中,每按一次单脉冲按键,触发一次中断,屏幕上显示相应的中断请求号。
二.综合训练
空调风机盘管制/冷热的控制(P140)
1、实验题目
在现代建筑中,都设有集中空调。
空调制冷/热是为了调节空气中的温度。
在日常生活中夏天室外温度很高,需要降温。
所以空调制冷,给空气降温,达到调节空气温度的目的。
一般采用风机盘管调节温度。
工作原理如下:
室外温度升高,空调需要置换的冷量增加,流过风机的水流量增加,用一个电动阀调节水流量,保证进入室内的空气温度恒定。
同样,冬季室外温度低,空调制热。
从而保证进入大厦的客人有很舒适的环境。
根据题意设计一个实验电路。
2、题目分析
模拟空调风机设备控制过程。
冬季,空气要加热,室内温度较低,需要加大风机盘管里的热水流量(电磁阀用步进电机代替)。
夏季室外温度高,需要风机盘管加大往外的排水量以使压缩制冷达到降温的目的。
每次调解电动阀记录当时时间。
3、原理分析
利用步进电机,模拟阀开启状况,这个阀连续可调,即步进电机的调速。
同时具有夏季排水,冬季入水,即步进电机的的正转和反转的功能,需要8255。
同时需要24小时定时电路以记录按下空调按键时的时间,需要8259中断控制和8253定时记录。
4、步进电机调速换向控制模块
P55Aequ 200h;
8255A口输出P55Cequ 202h;
8255C口输入P55CTRLequ 203h;
8255控制口DATASEGMENT
BUF db0DATAENDS
CODE,DS:
MOVDX,P55CTRLMOVAL,89H
OUTDX,AL ;
8255C输入,A输出
MOVBUF,33HOUT1:
MOVAL,BUFMOVDX,p55aOUTDX,AL
IN1:
MOVDX,P55C
INAL,DX ;
读开关状态TESTAL,01H
JNZK0
TESTAL,02HJNZK1
TESTAL,04H
JNZK2
TESTAL,08HJNZK3
TESTAL,10HJNZK4
TESTAL,20HJNZK5
TESTAL,40HJNZK6
STOP:
JMPOUT1K0:
MOVBL,10HSAM:
TESTAL,80H ;
K7是否为1JZZX0
JMPNX0K1:
MOVBL,18HJMPSAM
K2:
MOVBL,20HJMPSAM
K3:
MOVBL,40HJMPSAM
K4:
MOVBL,80HJMPSAM
K5:
MOVBL,0C0HJMPSAM
K6:
MOVBL,0FFHJMPSAM
ZX0:
CALLDELAYMOVAL,BUF
RORAL,1 ;
循环右移MOVBUF,AL
JMPOUT1NX0:
ROLAL,1 ;
循环左移MOVBUF,AL
JMPOUT1
DELAYPROCNEARDELAY1:
MOVCX,0100HDELAY2:
LOOPDELAY2DECBL
JNZDELAY1RET
DELAYENDPCODEENDSENDSTART
5、24小时定时模块
HOUR DB 00H
MIN DB 00H
SEC DB 00HLED_CS EQU200HLED_CS1 EQU201H
LEDCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67HI8254_0 EQU210H
I8254_1EQU211HI8254_KZEQU213HDATAENDS
STACK SEGMENT STACK
DB 100 DUP(?
)
STACK ENDS
ASSUMEDS:
DATA,ES:
DATA,SS:
STACK,CS:
CODE
START:
CLI
MOV AX,DATAMOV DS,AXMOV ES,AX
MOV DX,I8254_KZ ;
8254INITMOV AL,36H
OUT DX,ALMOV DX,I8254_0MOV AX,1000OUT DX,ALMOV AL,AHOUT DX,AL
MOV DX,I8254_KZMOV AL,76H
OUT DX,ALMOV DX,I8254_1MOV AX,1000
OUTDX,ALMOVAL,AHOUTDX,AL
PUSHDS ;
8259INITMOV AX,0
LEA AX,CS:
TIME_PROCMOV BX,5
MOV SI,30HADD SI,BXADD SI,SIADD SI,SI
MOV DS:
[SI],AXPUSHCS
POP AX
MOV DS:
[SI+2],AXPOP DS
IN AL,21H ;
8259MASKWORDAND AL,11011111B
OUT 21H,ALLEA SI,BUFFERXOR DI,DI
STI
TTT:
CALLDISP1CALLDISP2CALLDISP3JMPTTT
TIME_PROC PROC ;
TIMINGINTERRUPTSTI
PUSHAXPUSHBXPUSHCXPUSHDXXOR CX,CXXOR BX,BX
MOV AL,SEC ;
SECCMP AL,59H
JB INC1MOV AL,0MOV SEC,ALMOV CX,1JMP MIN1
INC1:
MIN1:
ADD AL,1DAA
MOV SEC,AL
INC2:
HOUR1:
INC3:
OVER1:
MOV AL,MIN ;
MINUTECMP AL,59H
JB INC2CMP CX,1JNE HOUR1MOV AL,0MOV MIN,ALMOV BX,1JMP HOUR1
CMP CX,1JNE H