微机原理及接口技术实验讲义.docx

上传人:b****8 文档编号:29097155 上传时间:2023-07-20 格式:DOCX 页数:27 大小:106.63KB
下载 相关 举报
微机原理及接口技术实验讲义.docx_第1页
第1页 / 共27页
微机原理及接口技术实验讲义.docx_第2页
第2页 / 共27页
微机原理及接口技术实验讲义.docx_第3页
第3页 / 共27页
微机原理及接口技术实验讲义.docx_第4页
第4页 / 共27页
微机原理及接口技术实验讲义.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

微机原理及接口技术实验讲义.docx

《微机原理及接口技术实验讲义.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验讲义.docx(27页珍藏版)》请在冰豆网上搜索。

微机原理及接口技术实验讲义.docx

微机原理及接口技术实验讲义

微机原理及接口技术

实验讲义

内蒙古大学电子信息工程学院自动化系

微机接口实验室

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、用单脉冲

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1