微机原理实验指导书资料Word文档下载推荐.docx
- 文档编号:2959198
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:31
- 大小:971.97KB
微机原理实验指导书资料Word文档下载推荐.docx
《微机原理实验指导书资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书资料Word文档下载推荐.docx(31页珍藏版)》请在冰点文库上搜索。
dataends
codesegment
assumecs:
code
start:
movax,data
movds,ax
moves,ax
main:
movdx,io8255b;
设8255为C口输入,A口输出
moval,();
计算控制字
outdx,al
inout:
movdx,();
从C口输入一数据
inal,dx
movdx,();
从A口输出刚才自C口
outdx,al;
所输入的数据
jmpinout;
跳转,则继续自C口输入,A口输出
codeends
endstart
七、思考题
1、根据程序要求补充实验程序,并执行程序观察现象;
2、修改程序,电平开关拨到上方时发光二极管灭,拨到下方时发光二极管亮。
实验二交通灯模拟控制实验
1.进一步掌握8255并行口的使用方法;
2.了解十字路口交通灯的模拟控制。
分别利用三个发光二极管模拟南北路口和东西路口的红、黄、绿灯,通过编程使六个发光二极管按交通灯变化规律执行。
PC0~PC7/8255接L0~L7/LED显示
图2-1实验线路
2、交通灯变化规律要求:
(1)南北路口绿灯、东西路口红灯同时亮30秒左右;
(2)南北路口的黄灯闪烁若干次,东西路口红灯继续亮;
(3)南北路口红灯、东西路口绿灯亮30秒左右;
(4)南北路口红灯继续亮,东西路口黄灯闪烁若干次;
(5)依次重复。
2、参考程序流程图如图2-2所示。
图2-3参考程序流程图
2、根据图2-1实验线路进行电路连接;
***********************************;
*十字路口红绿灯模拟演示程序*;
*端口各灯的设置:
*;
*1红1黄1绿002红2黄2绿*;
io8255aequ28ah
portc1db24h,44h,04h,44h,04h,44h,04h;
六个灯可能
db81h,82h,80h,82h,80h,82h,80h;
的状态数据
db0ffh;
结束标志
code,ds:
data
movax,data
movds,ax
movdx,io8255b
moval,();
8255控制字
outdx,al;
设置8255为C口输出
movdx,io8255a
re_on:
movbx,0
on:
moval,portc1[bx]
cmpal,0ffh
jzre_on
outdx,al;
点亮相应的灯
incbx
movcx,50;
参数赋初值
testal,21h;
是否有绿灯亮
jzde1;
没有,短延时
movcx,500;
有,长延时
de1:
movdi,9000;
di赋初值9000
de0:
decdi;
减1计数
jnzde0;
di不为0
loopde1
jmpon;
转到on
endstart
1、根据要求补充和修改实验程序,达到实验要求;
2、修改电路和程序,利用其他I/O实现交通灯功能;
3、若实现按键修改红绿灯时间,程序和硬件应该怎样设计。
实验三可编程定时器8254应用实验
1.掌握8254各种工作方式的使用;
2.掌握8254的基本工作原理和编程方法。
将8254的计数器0设置为工作方式2,计数器的计数初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用OUT0接LED发光二极管,观察电平的变化(当输入N+1个脉冲后OUT0变高电平)。
图3-18254接口线路
GATE0/8254接+5V
CLK0/8254接单脉冲
CS/8254接Y0/IO地址
OUT0/8254接L0/LED
DI、RW、E/核心板接DI、RW、E/LCD液晶
D0~D7/核心板接D0~D7/LCD液晶
图3-2实验线路
1、参考程序流程图如图3-3所示。
图3-3参考程序流程图
2、8254控制寄存器地址283H;
计数器0地址280H;
计数器1地址281H;
计数器2地址282H;
2、根据图3-3实验线路进行电路连接;
*************************;
*8254计数器0计数实验*;
io8253aequ283h
io8253bequ280h
8254计数器0为方式2,二进制计数
movdx,io8253a
outdx,al
movdx,io8253b;
送计数初值为0FH
moval,0fh
lll:
inal,dx;
读计数初值
calldisp;
调显示子程序
movcx,0ffffh
s1:
loops1
jmplll
dispprocnear;
显示子程序
pushdx
andal,0fh;
首先取低四位
movdl,al
cmpdl,9;
判断是否<
=9
jlenum;
若是则为'
0'
-'
9'
ASCII码加30H
adddl,7;
否则为'
A'
F'
ASCII码加37H
num:
adddl,30h
movah,02h;
LCD显示
int21h
popdx
ret;
子程序返回
dispendp
2、修改程序和硬件,利用计数器1或计数器2完成此内容。
实验四8254控制继电器实验
1.了解微机控制直流继电器的典型电路及方法;
2.进一步熟悉8255、8254的使用方法。
实验电路如图4-1所示,并进行实验电路的搭建,由计数器1输出所需的控制信号,经8255的I/O口输出来驱动继电器的控制电路。
继电器常开触点串联一个发光二极管,编程使用8254定时,让继电器实现闭合5秒钟(指示灯亮),断开5秒钟(指示灯灭)。
图4-1实验线路
CLK0/8254接1M时钟
OUT0/8254接CLK1/8254
GATE1/8254接+5V
OUT1/8254接PC7/8255
PC0/8255接继电器
1、参考程序流程图如图4-2所示。
图4-2参考程序流程图
2、将8254计数器0设置为方式3、计数器1设置为方式0并联使用,CLK0接1MHZ时钟,设置两个计数器的初值(乘积为5000000)启动计数器工作后,经过5秒钟OUT1输出高电平。
通过8255C口查询OUT1的输出电平,用C口PC0输出开关量控制继电器动作。
3、继电器开关量输入量输入“1”时,继电器常开触点闭合,发光二极管接通,指示灯亮,输入“0”时断开,指示灯灭。
2、根据图4-1实验线路进行电路连接;
***************************;
*继电器控制*;
io8253aequ280h
io8253bequ281h
io8253cequ283h
io8255ctlequ28bh
movdx,io8255ctl;
设8255为PC7输入,PC0输出
moval,()
movdx,io8255c
moval,01;
将PC0置位
outdx,al
calldelay;
延时5s
moval,0;
将PC0复位
calldelay;
jmplll;
转lll
delayprocnear;
延时子程序
pushdx
movdx,io8253c;
设8254计数器0为方式3
movdx,io8253a
movax,10000;
写入计数器初值10000
moval,ah
movdx,io8253c
设计数器1为工作方式0
movdx,io8253b
movax,500;
写入计数器初值500
ll2:
inal,dx;
查询8255的PC7是否为高电平
andal,080h
jzll2;
若不是则继续
popdx
ret;
定时时间到,子程序返回
delayendp
codeends
1、分析程序和电路,理解计数器0和计数器1并联的使用方法;
2、修改程序和电路,可否使用2MHZ时钟实现(5秒)功能。
实验五DAC0832数模转换实验
1.了解数/模转换器的基本原理;
2.掌握DAC0832芯片的使用方法。
实验电路如图5-1所示,DAC0832采用单缓冲方式,具有单双极性输出端(图中的Ua、Ub),利用示波器观察单极性输出端和双极性输出端的电压波形,验证数字与电压之间的线性关系。
实验要求:
输出
(1)锯齿波;
(2)正弦波。
图5-1实验线路
CS/0832接Y2/IO地址
1、参考程序流程图如图5-2所示。
a.锯齿波b.正弦波
图5-2参考程序流程图
2、8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:
Ua=UREF×
N/256;
Ub=-2UREF×
N/256-5(UREF表示参考电压,N表示数据),为了编程方便参考电压为5.12V。
3、产生锯齿波只须将输出到DAC0832的数据有0循环递增。
产生正弦波可根据正弦函数建一个数字量表,取值范围为一个周期。
1、锯齿波
**********************;
*数/模转换实验1*;
*产生锯齿波*;
io0832aequ290h
movcl,0
movdx,io0832a
moval,cl
addcl,10
jmplll;
若无则转LLL
movah,4ch;
返回
int21h
2、正弦波
*数/模转换实验2*;
*产生正弦波*;
io0832aequ290h
sindb80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh
db0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h
db80h,66h,4eh,38h,25h,15h,09h,04h
db00h,04h,09h,15h,25h,38h,4eh,66h;
正弦波数据
movds,ax
ll:
movsi,offsetsin;
置正弦波数据的偏移地址为SI
movbh,32;
一组输出32个数据
moval,[si];
将数据输出到D/A转换器
movdx,io0832a
movcx,1
delay:
loopdelay;
延时
incsi;
取下一个数据
decbh
jnzlll;
若未取完32个数据则转lll
jmpll
1、修改程序实现三角波功能;
2、修改程序,使锯齿波输出最大幅值为2.5V。
实验六ADC0809模数转换实验
1.了解模/数转换器的基本原理;
2.掌握ADC0809芯片的使用方法。
实验电路如图6-1所示,通过实验台上的电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),启动A/D转换器,读取转换结果,验证输入电压与转换后数字的关系。
图6-1实验线路
CS/0809接Y3/IO地址
IN0/0809接0~5/直流信号
2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(16进制),采用延时方式采样数据;
3、ADC0809的IN0口地址为298H,IN1口地址为299H。
4、输入电压与转换后数字的关系:
N=Ui/(UREF/256),Ui为输入电压,UREF为参考电压,为了方便编程参考电压为5.12V。
*接收A/D转换器数据在屏幕上显示*;
io0809aequ298h
movdx,io0809a;
启动A/D转换器
movcx,0ffh;
loopdelay
从A/D转换器输入数据
movbl,al;
将AL保存到BL
movcl,4
shral,cl;
将AL右移四位
calldisp;
调显示子程序显示其高四位
moval,bl
andal,0fh
调显示子程序显示其低四位
jmpstart;
若没有转START
dispprocnear;
movdl,al
cmpdl,9;
比较DL是否>
9
jleddd;
若不大于则为'
加30h为其ASCII码
adddl,7;
再加7
ddd:
adddl,30h;
显示
movah,02
int21h
ret
1、修改程序和电路,采用查询或中断方式实现模数转换;
2、编写程序,能否实现两路模拟量采样及显示功能。
实验七串行通信8251应用实验
1.了解串行通信的基本原理;
2.掌握串行接口芯片8251的工作原理和编程方法。
1.实验电路如图7-1和7-2所示,其中8254定时器用于产生8251的发送和接收时钟。
2.编写程序,在发送端(甲机)从键盘输入一个字符,将其ASCII码加1后发送出去,然后在接收端(乙机)接收到数据,并显示在显示屏上,实现数据的串行发送和接收。
图7-1发送端(甲机)实验线路
图7-2接收端(乙机)实验线路
CLK0/8254接1M时钟
GATE0/8254接+5V
OUT0/8254接TX/RCLK/8251
CS/8251接Y7/IO地址
TXD/8251(发送端)接RXD(MAX232模块)
键盘(发送端)接键盘接口(核心板)
RXD/8251(接收端)接TXD(MAX232模块)
1、图示电路中8251的控制口地址为2B9H,数据口地址为2B8H;
8254定时器的控制口地址为283H,定时器0的地址280H。
2、8254计数器的计数初值=时钟频率/(波特率×
波特率因子),这里的时钟频率接1MHZ,波特率若选1200,波特率因子若选16,则计数器初值为52。
图7-3发送和接收参考程序流程图
2、根据图7-1和7-2实验线路进行电路连接;
7、按键盘键值,观察现象,若实验现象有误请重复第4~6步。
************************;
*8251串行通讯(发送)*;
********************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 指导书 资料