微机原理及接口技术实验讲义.docx
- 文档编号:29097155
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:27
- 大小:106.63KB
微机原理及接口技术实验讲义.docx
《微机原理及接口技术实验讲义.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验讲义.docx(27页珍藏版)》请在冰豆网上搜索。
微机原理及接口技术实验讲义
微机原理及接口技术
实验讲义
内蒙古大学电子信息工程学院自动化系
微机接口实验室
2008年5月
目录
第一部分实验台结构及相关电路。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
第二部分验证性实验部分
实验一LCD128×64液晶显示接口实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
实验二可编程定时器/计数器。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
14
实验三8259中断控制器实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
16
实验四8255A并行口实验PA输入、PB输出。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
20
第三部分综合性实验部分
实验五开关量接口实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
21
实验六模拟量接口实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
26
实验报告要求
1、实验一、二、三不写实验报告。
2、实验报告第一页要求使用学校统一的封面,后续页自便,要求整齐。
3、实验报告由实验题目、实验目的、电路框图、编程思想或流程图、程序组成。
4、实验报告要在课前预习完成,程序部分靠左写,以便课上右面写修改内容。
5、实验课结束时交实验报告。
第一部分实验台结构及相关电路
⒈逻辑电平开关电路
实验系统上有8+1位逻辑电平开关,与之相对应的K1~K9引线孔为逻辑电平输出端。
开关向上拨输出逻辑“0”,向下拨输出逻辑“1”。
⒉发光二极管显示电路
实验系统上装有12位发光二极管及相应驱动电路。
L1~L12为相应发光二极管驱动信号输入端,该输入端为低电平“0”时点亮发光二极管。
⒊脉冲发生器电路
实验台上提供一4.9152MHz的脉冲源,见下图:
⒋计数器电路
该电路由1片74LS393组成。
实验系统上为Tx:
T0~T7为分频输出插孔,T为脉冲输入端(已连脉冲源4.9152MHz)。
该计数器在上电时由RESET信号清零。
当脉冲输入为4.9152MHz时,T0~T7输出脉冲频率依次为2.4576MHz、1.2288MHz、614.4KHz、307.2KHz、153.6KHz、76.8KHz、38.4Hz、19.2Hz。
⒌单脉冲电路
采用RS触发器产生±单脉冲。
实验者每按一次AN按钮,即可以从两个插座上分别输出一个正脉冲SP及负脉冲/SP,供“中断”、“CLR”、定时器/计数器等实验使用。
⒍继电器及驱动电路
⒎直流电机及驱动电路及电子音响及驱动电路
如图所示,系统中设计有一个+5V直流及相应的驱动电路。
小直流电机的转速是由加到其输入端“DJ”的脉冲电平及占空比来决定的,正向占空比越大转速越快,反之越慢。
驱动电路输出接直流电机。
⒏步进电机及驱动电路
微电脑控制步进电机最适宜系统中设计使用20BY-0型号步进电机,它使用+5V直流电源,步距角为18度,电机线圈由四相组成。
如下图所示,即A、B、C、D四相。
驱动电路由脉冲信号控制,所以调节脉冲信号的频率便可改变步进电机的转速。
图中BA、BB、BC、BD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。
9.系统资源分配
实验系统寻址范围定义如下:
系统数据区
F000:
0000~00FFH
系统堆栈区
F000:
0100~01FFH
系统程序区
F000:
0200~07FFH
用户程序区
用户数据区
0000:
1000~0FFFFH
用户堆栈区
0000:
0600~0400H
中断向量区
0000:
0000~03FFH
系统已定义的I/O地址如下:
接口芯片
口地址
用途
74LS273
FFDDH
字位口
74LS273
FFDCH
字形口
74LS245
FFDEH
键入口
8255A口
FFD8H
EP总线
8255B口
FFD9H
EP地址
8255C口
FFDAH
EP控制
8255控制口
FFDBH
控制字
10.8259中断向量表
中断序号
0
1
2
3
4
5
6
7
变量地址
20~23h
24~27h
28~2Bh
2C~2Fh
30~33h
34~37h
38~3Bh
3C~3Fh
第二部分接口实验
实验一LCD128×64液晶显示接口实验
一、实验目的
1.掌握8088与液晶显示器之间接口设计与编程。
2.初步了解汇编语言的格式及子程序的概念。
二、实验内容
1、编制程序,使用内部字库,在液晶显示器上显示:
内蒙古大学
电子信息工程学院
自动化系
2008.08.08
2、修改程序将自己名字、生日显示到合适的位置。
三、实验电路
四、实验连线
1.连接译码电路,将138译码单元的A、B、C、G分别与地址总线A2、A3、A4、A15相连;
2.LCD实验板的E信号与02门电路的第1脚相连;
3.将138译码单元的Y0与02门电路的第2脚相连;
4.将08门电路的第3脚与02门电路的第3脚相连;
5.将08门电路的第2脚、第1脚分别与系统控制信号IOR、IOW相连;
五、程序清单
;**************硬件地址定义************************
LCDEQU7FE0H
WRICODEEQULCD+0;写命令
WRDATAEQULCD+1;写数据
RDSTATEQULCD+2;读状态
RDDATAEQULCD+3;读数据
;*************代码区******************************
codesegment
assumecs:
code
;------------定义内存变量--------------------------
lindb0
coldb0
numdb0
dis_numdb0
temp0db0
temp1db0
countdb0
org1000h
start:
callinit_lcd
moval,3
calldelay2
movcount,0
;---------------------------
movbx,offsettab1;显示"内蒙古大学"
movlin,0
movcol,1
movnum,5
calldis_china
movbx,offsettab2;显示"电子信息工程学院"
movlin,1
movcol,0
movnum,8
calldis_china
movbx,offsettab3;显示"自动化系"
movlin,2
movcol,1
movnum,4
calldis_china
movbx,offsettab4;显示"2008.08.08"
movlin,3
movcol,1
movnum,4
calldis_china
moval,10
calldelay2
moval,10
calldelay2
callclose_lcd
movbx,offsettab5;显示"温度"
movlin,0
movcol,0
movnum,3
calldis_china
lgs1:
movlin,0;显示数字
movcol,4
moval,count
movdis_num,al
calldis_number
moval,count
addal,1
movcount,al
moval,10
calldelay2
jmplgs1
;--------------------------
;在指定的行、列显示一个字节数字(0~255)
;参数:
行lin(0~3);列col(0~7)dis_num中放要显示的数字
;col01234567
;lin0:
80h,81h,82h,83h,84h,85h,86h,87h
;lin1:
90h,91h,92h,93h,94h,95h,96h,97h
;lin2:
88h,89h,8ah,8bh,8ch,8dh,8eh,8fh
;lin3:
98h,99h,9ah,9bh,9ch,9dh,9eh,9fh
;--------------------------
dis_numberproc
pushax
moval,lin;以下18条为根据行、列值定位显示数字起始坐标
cmpal,0
jnznu0
moval,80h
jmpnu3
nu0:
cmpal,1
jnznu1
moval,90h
jmpnu3
nu1:
cmpal,2
jnznu2
moval,88h
jmpnu3
nu2:
cmpal,3
jnznuret
moval,98h
nu3:
addal,col
callsend_com;定位显示数字坐标
nu4:
movah,0;以下10条为把3位十进制数个位、十位、百位分离
moval,dis_num
movbl,10
divbl
movtemp0,ah
movah,0
movbl,10
divbl
movtemp1,ah
addal,30h;转为ASC码
callsend_data;百位送LCD显示
moval,temp1
addal,30h;转为ASC码
callsend_data;十位送LCD显示
moval,temp0
addal,30h;转为ASC码
callsend_data;个位送LCD显示
popax
nuret:
ret
dis_numberendp
;--------------------------
;在指定的行、列显示汉字。
每行可显示8个汉字或16个字符,共4行
;参数:
行lin(0~3);列col(0~7)汉字个数num(0~7);表地址bx
;--------------------------
dis_chinaproc
pushax
moval,lin;以下18条为根据行、列值定位显示汉字起始坐标
cmpal,0
jnzch0
moval,80h
jmpch3
ch0:
cmpal,1
jnzch1
moval,90h
jmpch3
ch1:
cmpal,2
jnzch2
moval,88h
jmpch3
ch2:
cmpal,3
jnzchret
moval,98h
ch3:
addal,col
callsend_com
movah,num
addah,num;汉字个数乘2,1个汉字占2位
ch4:
moval,00h;以下循环2*汉字个数,将汉字显示
xlat
callsend_data
incbx
decah
jnzch4
popax
chret:
ret
dis_chinaendp
;--------------------------
;清LCD屏
;--------------------------
close_lcdproc
pushax
moval,01h;清除命令
callsend_com
calldelay1
popax
ret
close_lcdendp
;--------------------------
;初始化LCD
;--------------------------
init_lcdproc
pushax
moval,30h;30H--基本指令操作
callsend_com
moval,01h;清除显示
callsend_com
calldelay1
moval,06h;指定在资料写入或读取时,光标的移动方向
callsend_com
moval,0ch;开显示,关光标,不闪烁
callsend_com
popax
ret
init_lcdendp
;--------------------------
;向LCD发送数据
;--------------------------
send_dataproc
calldelay1
pushdx
movdx,WRDATA
outdx,al
popdx
ret
send_dataendp
;--------------------------------
;向LCD发送命令
;--------------------------------
send_comproc
calldelay1
pushdx
movdx,WRICODE
outdx,al
popdx
ret
send_comendp
;--------------------------
;延时子程序
;--------------------------
delay1proc
pushcx
movcx,0080h
loop$
popcx
ret
delay1endp
;--------------------------
;延时子程序
;AL是延时参数
;--------------------------
delay2proc
pushax
pushcx
movah,0
movcx,ax
dloop:
pushcx
movcx,65535
loop$
popcx
loopdloop
popcx
popax
ret
delay2endp
;--------------------------------------------
TAB1DB"内蒙古大学"
TAB2DB"电子信息工程学院"
TAB3DB"自动化系"
TAB4DB"2008.8.8"
TAB5DB"温度:
"
codeends
endstart
实验二可编程定时器/计数器
一、实验目的
掌握8253的基本工作原理和编程方法,用示波器观察不同模式下的波形。
二、实验内容
1、完成编程,将定时器0设为模式3(方波),定时器l设为模式2(分频)。
,在示波器中观察定时器0和l的输出波形及其关系,并在纸上画出(CLK、GATE、OUT)波形。
2、分别修改程序中将定时器0的计数初值为4和5,与主时钟同步观察奇数、偶数波形的变化。
3、修改程序在液晶屏显示“定时器零为模式三”,“定时器一为模式二”。
三、实验电路
四、实验连线
1.译码电路,与实验一相同。
2.将138译码单元的Y1与8253CS相连;
3.将数据D0~D7用10芯排线与8253上方的IDC10座相连;
4.将实验一电路连好;
五、程序清单
TIM_CTLEQU7FE7H
TIMER0EQU7FE4H
TIMER1EQU7FE5H
MODE03EQU36H
MODE12EQU74H
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,ES:
CODE
ORG3490H
main:
callD8253
JMP$
D8253PROC
MOVDX,TIM_CTL
MOVAL,MODE03
OUTDX,AL
MOVDX,TIMER0
MOVAL,0F4h
OUTDX,AL
MOVAL,01H
OUTDX,AL
MOVDX,TIM_CTL
MOVAL,MODE12
OUTDX,AL
MOVDX,TIMER1
MOVAL,0aH
OUTDX,AL
MOVAL,00
OUTDX,AL
RET
CODEENDS
ENDmain
实验三8259中断控制器实验
一、实验目的 1、掌握8259中断控制器的接口方法。
2、掌握8259中断控制器的应用编程。
二、实验内容 1、编制程序,利用8259芯片的IR7作为中断源,产生单一中断,LCD显示中断号“7”,中断次数。
2、修改一些必要的参数,改变中断源。
三、实验电路
四、实验连线
1、译码电路,与实验一相同。
2、将138译码单元的Y2与8259CS相连;
3、将数据D0~D7用10芯排线与8259右方的IDC10座相连;
4、将实验一电路连好;
五、程序清单
1、在实验一的程序中添加如下定义
硬件地址定义:
Port0EQU7FE8H
Port1EQU7FE9H
变量定义
IRQ_numdb0
IRQ_countdb0
2、在实验一的程序中添加如下子程序及中断服务程序;
;------------------------------------
;中断7的服务程序
;------------------------------------
INT8259:
cli
pushax
MOVAL,20H;写OCW2命令,使ISR相应位复位即发EOI命令
MOVDX,Port0
OUTDX,AL
movIRQ_num,7
moval,IRQ_count
addal,1
movIRQ_count,al
popax
STI
IRET
;-------------------------------
;初始化8259
;-------------------------------
init_8259proc
CLI
MOVAX,OFFSETINT8259
MOVBX,003CH;中断入口地址(8+7)*4=60(3cH),7中断号
MOV[BX],AX
MOVBX,003EH;3ch,3dh放指令指针IP。
3eH,3fH放指令段码
MOVAX,0000H
MOV[BX],AX
MOVAL,13H;设置ICW1,1级8259,需设置ICW4,边沿触发
MOVDX,Port0
OUTDX,AL
MOVAL,08H;写ICW2,中断类型号从8开始
MOVDX,Port1
OUTDX,AL
MOVAL,09H;写ICW4,缓冲工作方式,8088配置
OUTDX,AL
MOVAL,7FH;IRQ7写OCW11屏蔽,0允许中断
OUTDX,AL
movsi,0000h
STI
RET
init_8259endp
3、在实验一的程序中修改汉字表;
TAB3DB"中断号:
"
TAB4DB"中断数:
"
4、在实验一的程序中修改主程序;
start:
callinit_lcd
moval,3
calldelay2
movIRQ_count,0
movIRQ_num,0
;---------------------------
movbx,offsettab1;显示"内蒙古大学"
movlin,0
movcol,1
movnum,5
calldis_china
movbx,offsettab2;显示"电子信息工程学院"
movlin,1
movcol,0
movnum,8
calldis_china
movbx,offsettab3;显示"中断号:
"
movlin,2
movcol,1
movnum,4
calldis_china
movbx,offsettab4;显示"中断数"
movlin,3
movcol,1
movnum,4
calldis_china
moval,10
calldelay2
callinit_8259
lgs1:
movlin,2;显示中断号
movcol,4
moval,IRQ_num
movdis_num,al
calldis_number
movlin,3;显示中断数
movcol,4
moval,IRQ_num
movdis_num,al
calldis_number
calldelay2
jmplgs1
实验四8255A并行口实验PA输入、PB输出
一、实验目的
1、掌握8255A和微机接口方法。
2、掌握8255A的工作方式和编程原理。
二、实验内容
使8255A端口A工作在方式0并作为输入口,读取K1—K8八个开关量。
PB口工作在方式0作为输出口,驱动L1-L8共8个发光二极管。
编程实现拨动K1~K8、L1~L8会跟着亮灭。
三、实验电路
四、编程提示
在本实验箱8255的地址是固定的,不能自己定义。
其地址如下:
PAEQU0FFD8H
PBEQU0FFD9H
PCEQU0FFDAH
PCTLEQU0FFDBH
五、选作实验内容:
在液晶屏显示开关状态。
开关量接口实验
题目1:
交通灯
一、实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,LCD显示秒计时,掌握对并行口的使用.
二、实验要求 1、通过8255A控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯,以模拟交通路灯的管理。
2、要完成本实验,必须先了解交通路灯的亮灭规律,没有一个十字路口1、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程,同时在LCD显示秒倒计时。
3、定时要用硬件定时,可用8253分频得到单位时间,out经74LS02反向给8259中断或由8255的输入判断。
题目2:
竞赛枪答器
一、实验目的
l、了解微机化竞赛抢答器的基本原理。
2、学习使用并行接口。
二、实验要求 1、设置8255为C口输入连接八个开关作为抢答开关,A口输出选一个口驱动喇叭,读取C口数据,若为0表示无人抢答,若不为0则有人抢答.根据读取数据可判断其组号。
在LCD屏显示组号,喇叭响一声。
2、用单脉冲
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 讲义
![提示](https://static.bdocx.com/images/bang_tan.gif)