微机原理综合实验报告.docx
- 文档编号:8971737
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:41
- 大小:433.32KB
微机原理综合实验报告.docx
《微机原理综合实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理综合实验报告.docx(41页珍藏版)》请在冰豆网上搜索。
微机原理综合实验报告
微机原理综合实验报告
一.8255并行口实验
二.8259中断实验
(一)
三.8253定时/计数器实验
四.A/D转换实验
五.步进电机实验
六.综合实验:
十字路口交通灯实验
七.实验体会
四.8255并行口实验
1.实验目的:
(1)学习利用并行接口芯片8255构成并行接口电路的基本方法
(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法
2.实验内容:
编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0~K7作为一个字节读入,在从PB口输出这一反码字节。
3.实验程序:
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,21BH;8255初始化命令字
MOVAL,90H
OUTDX,AL
BG:
MOVDX,218H;从PA口读入数据
INAL,DX
XORAL,FFH;求反
MOVDX,219H
OUTDX,AL;从PB口输出
JMPBG
CODEENDS
ENDSTART
4.实验框图
5.实验电路图
6.实验方法说明
通过8255控制字设定PA口为输入口,PB口为数据输出口,读取PA口的数值并通过求反指令将数据取反后,经由PB口输出。
8259中断实验
(一)
1.实验目的:
(1)了解PC机的中断结构及8259中断控制器的初始化
(2)熟悉8259中断控制器的工作原理和硬件连线方法
(3)了解8259的应用和硬件编程方法
了解8259中断屏蔽
2.实验内容:
编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FFH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
3.实验程序
INT0EQU220h
INT1EQU221h
P8255B EQU 219H
P8255K EQU 21BH
STACKSEGMENT
STADB50DUP(?
)
TOP EQU LENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK
START:
CLI
MOVAX,TOP
MOVSP,AX
PUSHDS
MOVAX,0000H;定义IRQ0中断
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,0000H
MOVSI,20H
MOV[SI],AX
MOVAX,CS
MOVSI,22H
MOV[SI],AX
POPDS
MOVAL,13H;对8259进行初始化ICW1
MOVDX,INT0
OUTDX,AL
MOVAL,8;对8259进行初始化ICW2
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVAL,9;对8259进行初始化ICW4
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVDX,INT1
MOVAL,0FEH;对8259进行初始化OCW1
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVDX,INT0;对8259进行初始化OCW2,普通EOI返回
MOVAL,20H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
STI
MOVDX,P8255K;对8255进行初始化
MOVAL,90H
OUTDX,AL
DSP:
MOVAL,0FFH
MOVDX,P8255B
OUTDX,AL
JMPDSP
IRQ0:
STI
MOVCX,0FFFFH
LOOP$
MOVAL,0FH
MOVDX,P8255B
OUTDX,AL
MOVDX,INT0
MOVAL,20H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVCX,0FFFFH
LOOP$
IRET
CODEENDS
ENDSTART
4.实验框图
5.实验电路图
6.实验方法说明
主程序使8255输出高电平,实现L0~L7指示灯全亮。
设置中断IRQ0,实现L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
将中断向量的入口地址写入后,通过对8259初始化命令字的写入,实现中断的调用。
六.8259中断实验
(二)
1.实验目的
(1)了解PC机的中断结构及8259中断控制器的初始化
(2)熟悉8259中断控制器的工作原理和硬件连线方法
(3)了解8259的应用和硬件编程方法
(4)了解8259中断屏蔽,以及优先级的判别等特性
2.实验内容:
编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,IR0中断服务程序从PB口输出0FH,L0~L3灯亮,L4~L7灯灭,并延时一段时间后返回主程序。
IR1中断服务程序从PB口输出0F0H,L0~L3灭,L4~L7亮,并延时一段时间后返回主程序。
3.实验程序
INT0EQU220h
INT1EQU221h
P8255B EQU 219H
P8255K EQU 21BH
STACKSEGMENT
STADB50DUP(?
)
TOP EQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK
START:
CLI
MOVAX,TOP
MOVSP,AX
PUSHDS
MOVAX,0000H;设置中断向量IRQ0
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,0000H
MOVSI,20H
MOV[SI],AX
MOVAX,CS
MOVSI,22H
MOV[SI],AX
MOVAX,0000H;设置中断向量IRQ1
MOVDS,AX
MOVAX,OFFSETIRQ1
ADDAX,0000H
MOVSI,24H
MOV[SI],AX
MOVAX,CS
MOVSI,26H
MOV[SI],AX
POPDS
MOVAL,13H;对8259进行初始化ICW1
MOVDX,INT0
OUTDX,AL
MOVAL,8;对8259进行初始化ICW2
MOVDX,INT1
OUTDX,AL
movcx,0fffh
loop$
MOVAL,9;对8259进行初始化ICW4
MOVDX,INT1
OUTDX,AL
movcx,0fffh
loop$
MOVDX,INT1
MOVAL,0FCH;对8259进行初始化OCW1
OUTDX,AL
movcx,0fffh
loop$
MOVDX,INT0
MOVAL,20H ;普通EOI返回
OUTDX,AL
movcx,0fffh
loop$
STI
MOVDX,P8255K ;对8255进行初始化
MOVAL,90H
OUTDX,AL
DSP:
MOVAL,0FFH
MOVDX,P8255B
OUTDX,AL
JMPDSP
IRQ0:
STI
MOVCX,0FFFFH
LOOP$
MOVAL,0FH
MOVDX,P8255B
OUTDX,AL
MOVDX,INT0
MOVAL,20H
OUTDX,AL
movcx,0FFFFH
LOOP$
movcx,0FFFFH
LOOP$
IRET
IRQ1:
STI
movcx,0FFFFH
LOOP$
MOVAL,0F0H
MOVDXP8255B
OUTDX,AL
MOVDX,INT0
MOVAL,20H
OUTDX,AL
movcx,0FFFFH
LOOP$
movcx,0FFFFH
LOOP$
IRET
codeends
endstart
4.实验框图
5.实验电路图
6.实验方法说明
主程序使8255输出高电平,实现L0~L7指示灯全亮。
设置中断IRQ0,实现L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
设置中断IRQ1,实现L0~L3灭,L4~L7亮,并延时一段时间后返回主程序。
将中断向量的入口地址写入后,通过对8259初始化命令字的写入,使8259工作在全嵌套方式下,中断优先级IRQ0大于IRQ1,这样通过8259对中断的判断来实现中断的响应。
七.8253定时/计数器实验
1.实验目的:
(1)了解定时器8253的初始化及用法
(2)会用逻辑笔或示波器观察8253的工作状态
2实验内容:
编写程序,使8253工作的定时/计时器2工作在方式3下
3.实验程序:
TIM_CTLEQU203H
TIMER0EQU200H
TIMER1EQU201H
TIMER2EQU202H
MODE23EQU0B6H
MODE13EQU76H
CODESEGMENT
ASSUMECS:
CODE
START:
TT:
CLI
MOVDX,TIM_CTL;初始化8253
MOVAL,MODE23
OUTDX,AL
MOVDX,TIMER2;先写低8位
MOVAL,0FFh
OUTDX,AL
MOVAL,0FFh;后写低8位
OUTDX,AL
WT:
JMPWT
CODEENDS
ENDSTART
4.实验框图
5.实验电路
6.实验方法说明
设置8253计时器工作在方式2实现分频器功能,将实验箱上的频率Q0经行65535分频,再由OUT口输出接到逻辑笔,观察逻辑笔的变化。
八.A/D转换实验
1.实验目的:
(1)了解模/数转换的工作原理
(2)掌握0809的使用方法
2.实验内容:
编写程序,用0809的IN0通道采集数据并在数码管上显示
3.实验程序
B8279EQU212H
D8279EQU210H
LED0EQU00
LED1EQU38H
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H
DB5EH,79H,71H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVDX,B8279;对8279进行初始化
MOVAL,0D0H
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVDX,B8279
MOVAL,LED0
OUTDX,AL
MOVAL,LED1
OUTDX,AL
MOVDX,B8279
MOVAL,95H
OUTDX,AL
MOVDX,D8279;数码管显示
MOVAL,40H
OUTDX,AL
MOVDX,D8279
MOVAL,5eH
OUTDX,AL
MOVDX,D8279
MOVAL,77H
OUTDX,AL
TT:
MOVDX,230H;选通IN0通道
OUTDX,AL
MOVCX,0FFFFH
LOOP$
MOVDX,B8279
MOVAL,83H
OUTDX,AL
MOVDX,230H
INAL,DX
ANDAL,0FH
LEABX,LED
XLAT
MOVDX,D8279
OUTDX,AL
MOVDX,B8279
MOVAL,84H
OUTDX,AL
MOVDX,230H
INAL,DX
MOVCL,4H
RORAL,CL
ANDAL,0FH
LEABX,LED
XLAT
MOVDX,D8279
OUTDX,AL
JMPTT
CODEENDS
ENDSTART
4.实验框图
5.实验电路图
6.实验方法说明
通过A/D转换接口芯片0809实现模拟量到数据量的转变,并通过键盘显示芯片8279将转换后的数据量显示出来。
步进电机实验
1.实验目的:
(1)了解步进电机的工作原理,以及脉冲分配概念
(2)掌握计算机控制步进电机的方法
2.实验内容
编写程序,通过8255控制步进电机的旋转
3.实验程序
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,21BH;8255初始化
MOVAL,90H
OUTDX,AL
BG:
MOVDX,218H
INAL,DX
CMPAL,01H
JNZC2
MOVBX,0FFFFH
JMPWORK
C2:
CMPAL,02H
JNZC4
MOVBX,07FFFH
JMPWORK
C4:
CMPAL,04H
JNZC8
MOVBX,0FFFH
JMPWORK
C8:
CMPAL,08H
JNZCC
MOVBX,07FFH
JMPWORK
CC:
MOVAL,00H
MOVDX,219H
OUTDX,AL
JMPBG
WORK:
MOVAL,01H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,03H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,02H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,06H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,04H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,0CH
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,08H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
MOVAL,09H
MOVDX,219H
OUTDX,AL
MOVCX,BX
LOOP$
JMPBG
CODEENDS
ENDSTART
4.实验框图
5.实验电路图
6.实验方法说明
初始化8255使PA口为输入口,PB口为输出口,通过判别PA口的数据来使步进电机工作在不同的状态。
步进电机的旋转由OUT指令控制,实现步进电机按照预定指令旋转。
十.综合实验:
十字路口交通灯实验
1.实验要求:
(1)正常情况下,红灯、绿灯5~10秒定时变化
(2)分别设置南北行人中断按钮和东西行人中断按钮,当行人过马路是绿灯亮并延时5秒
(3)设置紧急开关,当按下开关时所以路口的信号灯全为红色
2.发挥部分:
(1)红灯和绿灯转换之间设置黄灯,并且黄灯闪烁3次
(2)紧急红灯按下时发出警报声
3.实验电路图
4.实验框图
5.实验程序
P8255AEQU218H;8255连接端口定义
P8255BEQU219H
P8255CEQU21AH
P8255KEQU21BH
TIM_CTLEQU203H;8253连接端口定义
TIMER0EQU200H
TIMER1EQU201H
INT0EQU220H;8259连接端口定义
INT1EQU221H
MDACEQU228H;0832连接端口定义
;'''''''''''''''''''''''
STACKSEGMENTSTACK
STADB50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK
START:
CLI
MOVAX,TOP
MOVSP,AX
PUSHDS
MOVAX,0000H;定义中断向量IRQ0
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,0000H
MOVSI,20H
MOV[SI],AX
MOVAX,CS
MOVSI,22H
MOV[SI],AX
;'''''''''''''''''''''''''''
MOVAX,0000H;定义中断向量IRQ1
MOVDS,AX
MOVAX,OFFSETIRQ1
ADDAX,0000H
MOVSI,24H
MOV[SI],AX
MOVAX,CS
MOVSI,26H
MOV[SI],AX
;............................
MOVAX,0000H;定义中断向量IRQ2
MOVDS,AX
MOVAX,OFFSETIRQ2
ADDAX,0000H
MOVSI,28H
MOV[SI],AX
MOVAX,CS
MOVSI,2AH
MOV[SI],AX
POPDS
;............................
MOVDX,TIM_CTL;计数器0工作在方式1构成单稳态触发器
MOVAL,00100010B
OUTDX,AL
MOVDX,TIMER0
MOVAL,0F0H;只写低8位
OUTDX,AL
MOVDX,TIM_CTL
MOVAL,01110110B;计数器1工作在方式3构成方波发生器
OUTDX,AL
MOVDX,TIMER1
MOVAL,0FFH;写低8位
OUTDX,AL
MOVAL,0FFH;写高8位
OUTDX,AL
;............................
MOVAL,13H;初始化ICW1,沿触发且需要ICW4
MOVDX,INT0
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVAL,8;初始化ICW2,自定义8号中断
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVAL,9;初始化ICW3,自定义9号中断
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVAL,10;初始化ICW2,自定义10号中断
MOVDX,INT1
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVDX,INT1;设置命令字OCW1,只响应IR0、IR1、IR2引脚中断请求
MOVAL,0F8H
OUTDX,AL
MOVCX,0FFFH
LOOP$
MOVDX,INT0;设置命令字OCW2,普通EOI命令
MOVAL,20H
OUTDX,AL
MOVCX,0FFFH
LOOP$
STI
;'''''''''''''''''''''''''''''
MOVDX,P8255K;8255初始化,B口输出接LS240
MOVAL,10000001B
OUTDX,AL
;'''''''''''''''''''''''''''''
STATE1:
MOVDX,P8255B;东西红,南北绿
MOVAL,01011010B
OUTDX,AL
MOVCX,10;计时10秒
S1:
CALLDELAY
LOOPS1
STATE2:
MOVDX,P8255B;东西绿,南北黄
MOVAL,00000101B
OUTDX,AL
CALLSHANSHUO
STATE3:
MOVDX,P8255B;东西绿,南北红
MOVAL,10100101B
OUTDX,AL
MOVCX,10;计时10秒
S3:
CALLDELAY
LOOPS3
STATE4:
MOVDX,P8255B;东西黄,南北绿
MOVAL,00001010B
OUTDX,AL
MOVCX,3
CALLSHANSHUO
JMPSTATE1;循环到状态STATE1,即东西红,南北绿
;**----------------------------------------------------**
DELAYPROC;延时子程序1,交通灯持续时间
PUSHCX
PUSHDX
MOVDX,20
DL500:
MOVCX,2801
DL10ms:
LOOPDL10ms
DECDX
JNZDL500
POPDX
POPCX
RET
DELAYENDP
;**----------------------------------------------------**
HALF_DELAYPROC;延时子程序2,黄灯闪烁时间
PUSHAX
PUSHCX
MOVAX,2
DELAY1:
MOVCX,50000
DELAY2:
LOOPDELAY2
DECAX
JNZDELAY1
POPCX
POPAX
RET
HALF_DELAYENDP
;**----------------------------------------------------**
SHANSHUOPROC;黄灯闪烁子程序
PUSHAX
PUSHDX
PUSHCX
MOVCX,6
ZAIYICI:
MOVDX,P8255B
INAL,DX
CMPAL,00000101B
JZFLITTER1
CMPAL,10101111B
JZFLITTER1
CMPAL,00001010B
JZFLITTER2
CMPAL,01011111B
JZFLITTER2
FLITTER1:
CMPAL,00000101B
JZMIE1
MOVAL,00000101B
OUTDX,AL
CALL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 综合 实验 报告