微机原理及接口技术实验讲义.docx
- 文档编号:10040575
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:29
- 大小:115.88KB
微机原理及接口技术实验讲义.docx
《微机原理及接口技术实验讲义.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验讲义.docx(29页珍藏版)》请在冰豆网上搜索。
微机原理及接口技术实验讲义
微机原理及接口技术
实验讲义
电子信息工程学院自动化系
微机接口实验室
目录
第一部分实验台结构及相关电路。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
3
第二部分验证性实验部分
实验一LCD2×16液晶显示接口实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
6
实验二可编程定时器/计数器。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
14
实验三8259中断控制器实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
16
实验四8255A并行口实验PA输入、PB输出。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
20
第三部分综合性实验部分
实验五开关量接口实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
23
实验六模拟量接口实验。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
29
实验报告要求
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
第二部分接口实验
实验一LCD2×16液晶显示接口实验
一、实验目的
1.掌握8088与液晶显示器之间接口设计与编程。
2.初步了解汇编语言的格式及子程序的概念。
二、实验内容
1、编制程序,在液晶显示器上显示:
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
org1000h
;------------定义内存变量--------------------------
lindb0
coldb0
numdb0
dis_numdb0
temp0db0
temp1db0
countdb0
start:
moval,02h;光标归位
callinit_lcd
callsend_com
calldelay;延时
movbx,offsetNMGTAB;显示"InnerMongolia"
movlin,0
movcol,1
movnum,14
calldis_english
movbx,offsetDXTAB;显示"University"
movlin,1
movcol,2
movnum,10
calldis_english
moval,20
calldelay2
callclose_lcd
movbx,offsetDZTAB;显示"Electronic"
movlin,0
movcol,1
movnum,10
calldis_english
movbx,offsetZDHTAB;显示"AUTO"
movlin,1
movcol,5
movnum,4
calldis_english
moval,20
calldelay2
callclose_lcd
moval,20
calldelay2
callclose_lcd
movbx,offsetXXTAB;显示"Information"
movlin,0
movcol,1
movnum,11
calldis_english
movbx,offsetZDHTAB;显示"AUTO"
movlin,1
movcol,5
movnum,4
calldis_english
moval,20
calldelay2
callclose_lcd
moval,20
calldelay2
callclose_lcd
movbx,offsetGCTAB;显示"Engineering"
movlin,0
movcol,1
movnum,11
calldis_english
movbx,offsetZDHTAB;显示"AUTO"
movlin,1
movcol,5
movnum,4
calldis_english
moval,20
calldelay2
callclose_lcd
moval,20
calldelay2
callclose_lcd
movbx,offsetXYTAB;显示"College"
movlin,0
movcol,1
movnum,7
calldis_english
movbx,offsetZDHTAB;显示"AUTO"
movlin,1
movcol,5
movnum,4
calldis_english
moval,20
calldelay2
callclose_lcd
movbx,offsetWDTAB;显示"Temperature"
movlin,0
movcol,1
movnum,11
calldis_english
lgs1:
movlin,1;显示数字
movcol,4
moval,count
movdis_num,al
calldis_number
moval,count
addal,1
movcount,al
moval,10
calldelay2
jmplgs1
;--------------------------
;在指定的行、列显示一个字节数字(0~255)
;参数:
行lin(0~1);列col(0~15)dis_num中放要显示的数字
;--------------------------
dis_numberproc
pushax
moval,lin;以下18条为根据行、列值定位显示英文起始坐标
cmpal,0
jnznu0
moval,80h
jmpnu1
nu0:
cmpal,1
jnznuret
moval,0C0h
nu1:
addal,col
callsend_com
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
;--------------------------
;在指定的行、列显示英文。
每行可显示16个英文字符,共2行
;参数:
行lin(0~1);列col(0~16)英文个数num(0~15);表地址bx
;--------------------------
dis_englishproc
pushax
moval,lin;以下8条为根据行、列值定位显示英文起始坐标
cmpal,0
jnzch0
moval,80h
jmpch1
ch0:
cmpal,1
jnzchret
moval,0C0h
ch1:
addal,col
callsend_com
movah,num
ch2:
moval,[bx]
incbx
callsend_data
decah
jnzch2
popax
chret:
ret
dis_englishendp
;--------------------------
;清LCD屏
;--------------------------
close_lcdproc
pushax
moval,01h;清除命令
callsend_com
popax
ret
close_lcdendp
;--------------------------
;初始化LCD
;col0123456789101112131415
;lin0:
808182838485868788898a8b8c8d8e8f
;lin1:
C0C1C2C3C4C5C6C7C8C9CaCbCcCdCeCf
;--------------------------
init_lcdproc
movdx,LCDWI;启动LCD
moval,30h
outdx,al;第1次启动LCD
calldelay;延时
moval,30h
outdx,al;第2次启动LCD
calldelay;延时
moval,30h
outdx,al;第3次启动LCD
calldelay;延时
moval,38h;设置工作模式:
outdx,al;汇流、2行、5*7点阵
calldelay;延时
moval,08h;关显示
outdx,al
calldelay;延时
moval,01h;LCD清屏
outdx,al
calldelay;延时
moval,0eh;开显示、光标不闪烁
outdx,al
calldelay;延时
callchkbusy;检测LCD状态
lcd_p:
moval,06h;光标右移且地址加1
callsend_com
moval,02h;光标归位
callsend_com
calldelay;延时
ret
init_lcdendp
;-----------------------
;读LCD忙闲状态
;-----------------------
chkbusyproc
pushdx
pushax
movdx,LCDRS
rechk:
inal,dx
movcl,al
rolcl,1
jcrechk
popax
popdx
ret
chkbusyendp
;----------------------
;写LCD命命
;----------------------
send_comproc
callchkbusy
pushdx
movdx,LCDWI
outdx,al
popdx
ret
send_comendp
;-----------------------
;写LCD数据
;-----------------------
send_dataproc
callchkbusy
pushdx
movdx,LCDWD
outdx,al
popdx
ret
send_dataendp
;-----------------------
;延时子程序
;-----------------------
delayproc
pushcx
movcx,1000h
loop$
popcx
ret
delayendp
;--------------------------
;延时子程序
;--------------------------
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
;LCD初始化字符
NMGTAB:
DB"InnerMongolia"
DXTAB:
DB"University"
DZTAB:
DB"Electronic"
XXTAB:
DB"Information"
GCTAB:
DB"Engineering"
XYTAB:
DB"College"
ZDHTAB:
DB"AUTO"
WDTAB:
DB"Temperature"
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
D8253endp
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"IRQ_num:
"
TAB4DB"IRQ_count:
"
4、在实验一的程序中修改主程序;
start:
callinit_lcd
moval,3
calldelay2
movIRQ_count,0
movIRQ_num,0
;---------------------------
movbx,offsettab3;显示"中断号:
"
movlin,0
movcol,0
movnum,8
calldis_english
movbx,offsettab4;显示"中断数"
movlin,1
movcol,0
movnum,9
calldis_english
moval,10
calldelay2
callinit_8259
lgs1:
movlin,0;显示中断号
movcol,10
moval,IRQ_num
movdis_num,al
calldis_number
movlin,1;显示中断数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 讲义
![提示](https://static.bdocx.com/images/bang_tan.gif)