《单片机与控制技术》实验指导书.docx

上传人:b****4 文档编号:5335331 上传时间:2023-05-08 格式:DOCX 页数:29 大小:282.50KB
下载 相关 举报
《单片机与控制技术》实验指导书.docx_第1页
第1页 / 共29页
《单片机与控制技术》实验指导书.docx_第2页
第2页 / 共29页
《单片机与控制技术》实验指导书.docx_第3页
第3页 / 共29页
《单片机与控制技术》实验指导书.docx_第4页
第4页 / 共29页
《单片机与控制技术》实验指导书.docx_第5页
第5页 / 共29页
《单片机与控制技术》实验指导书.docx_第6页
第6页 / 共29页
《单片机与控制技术》实验指导书.docx_第7页
第7页 / 共29页
《单片机与控制技术》实验指导书.docx_第8页
第8页 / 共29页
《单片机与控制技术》实验指导书.docx_第9页
第9页 / 共29页
《单片机与控制技术》实验指导书.docx_第10页
第10页 / 共29页
《单片机与控制技术》实验指导书.docx_第11页
第11页 / 共29页
《单片机与控制技术》实验指导书.docx_第12页
第12页 / 共29页
《单片机与控制技术》实验指导书.docx_第13页
第13页 / 共29页
《单片机与控制技术》实验指导书.docx_第14页
第14页 / 共29页
《单片机与控制技术》实验指导书.docx_第15页
第15页 / 共29页
《单片机与控制技术》实验指导书.docx_第16页
第16页 / 共29页
《单片机与控制技术》实验指导书.docx_第17页
第17页 / 共29页
《单片机与控制技术》实验指导书.docx_第18页
第18页 / 共29页
《单片机与控制技术》实验指导书.docx_第19页
第19页 / 共29页
《单片机与控制技术》实验指导书.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《单片机与控制技术》实验指导书.docx

《《单片机与控制技术》实验指导书.docx》由会员分享,可在线阅读,更多相关《《单片机与控制技术》实验指导书.docx(29页珍藏版)》请在冰点文库上搜索。

《单片机与控制技术》实验指导书.docx

《单片机与控制技术》实验指导书

《单片机技术》

《单片机与控制技术》

实验指导书

2012.3第2版2011.9第1版

武汉工程大学电气信息学院电气工程教研室

目录

实验1P1口实验一1

实验2P1口实验二4

实验3简单I/O口扩展实验7

实验4中断实验11

实验5定时器实验12

实验6存储器扩展实验14

实验7P1口扩展键盘实验15

实验8A/D转换实验17

实验9D/A转换实验19

附录:

实验设备硬件系统概述21

实验1P1口实验一

一、实验目的:

1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。

四、实验原理:

P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。

作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。

8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。

可以用第二个实验做一下实验。

先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。

再来看一下延时程序的实现。

现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。

在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。

现要写一个延时0.1s的程序,可大致写出如下:

MOVR7,#X

(1)

DEL1:

MOVR6,#200

(2)

DEL2:

DJNZR6,DEL2(3)

DJNZR7,DEL1(4)

上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:

1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶

指令

(1)指令

(2)指令(3)指令(4)

所需时间所需时间所需时间所需时间

X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH

经计算得X=127。

代入上式可知实际延时时间约为0.100215s,已经很精确了。

五、实验原理图:

P1口输出实验

P1口输入实验

六、实验步骤:

执行程序1(T1_1.ASM)时:

P1.0~P1.7接发光二极管L1~L8。

执行程序2(T1_1.ASM)时:

P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。

七、程序框图:

循环点亮发光二极管

通过发光二极管将P1口的状态显示

八、参考程序:

1、循环点亮发光二极管(T1_1.ASM)

NAMET1_1;P1口输实验

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

MOVA,#0FEH

LOOP:

RLA;左移一位,点亮下一个发光二极管

MOVP1,A

LCALLDELAY;延时0.1秒

SJMPLOOP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DELAY:

MOVR1,#127;延时0.1秒

DEL1:

MOVR2,#200

DEL2:

DJNZR2,DEL2

DJNZR1,DEL1

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END

2、通过发光二极管将P1口的状态显示(T1_2.ASM)

NAMET1_2;P1口输入实验

OUT_PORTEQU0CFA0H

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

MOVP1,#0FFH;复位P1口为输入状态

MOVA,P1;读P1口的状态值入累加器A

MOVDPTR,#OUT_PORT;将输出口地址赋给地址指针DPTR

MOVX@DPTR,A;将累加器A的值赋给DPTR指向的地址

SJMPSTART;继续循环监测端口P1的状态

END

 

实验2P1口实验二

一、实验目的:

1.学习P1口既做输入又做为输出的使用方法。

2.学习数据输入、输出程序的设计方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验原理:

P1口的使用方法这里不讲了。

有兴趣者不妨将实验例程中的“SETBP1.0,SETBP1.1”中的“SETB”改为“CLR”看看会有什么结果。

另外,例程中给出了一种N路转移的常用设计方法,该方法利用了JMP@A+DPTR的计算功能,实现转移。

该方法的优点是设计简单,转移表短,但转移表大小加上各个程序长度必须小于256字节。

四、实验原理图:

P1口输入、输出实验

五、实验步骤:

平推开关的输出K1接P1.0;K2接P1.1;

发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。

运行实验程序,K1做为左转弯开关,K2做为右转弯开关。

L5、L6做为右转弯灯,L1、L2做为左转弯灯。

结果显示:

1:

K1接高电平K2接低电平时,右转弯灯(L5、L6)灭,左转弯灯(L1、L2)以一定频率闪烁;

2:

K2接高电平K1接低电平时,左转弯灯(L1、L2)灭,右转弯灯(L5、L6)以一定频率闪烁;

3:

K1、K2同时接低电平时,发光二极管全灭;

4:

K1、K2同时接高电平时,发光二极管全亮。

六、参考程序:

T2.ASM

NAMET2;P1口输入输出实验

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

SETBP1.0

SETBP1.1;用于输入时先置位口内锁存器

MOVA,P1

ANLA,#03H;从P1口读入开关状态,取低两位

MOVDPTR,#TAB;转移表首地址送DPTR

MOVCA,@A+DPTR

JMP@A+DPTR

TAB:

DBPRG0-TAB

DBPRG1-TAB

DBPRG2-TAB

DBPRG3-TAB

PRG0:

MOVP1,#0FFH;向P1口输出#0FFH,发光二极管全灭

;此时K1=0,K2=0

LJMPSTART

PRG1:

MOVP1,#0F3H;只点亮L5、L6,表示左转弯

ACALLDELAY;此时K1=1,K2=0

MOVP1,#0FFH;再熄灭0.5秒

ACALLDELAY;延时0.5秒

LJMPSTART

PRG2:

MOVP1,#0CFH;只点亮L7、L8,表示右转弯

ACALLDELAY;此时K1=0,K2=1

MOVP1,#0FFH;再熄灭0.5秒

ACALLDELAY

LJMPSTART

PRG3:

MOVP1,#00H;发光二极管全亮,此时K1=1,K2=1

LJMPSTART

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DELAY:

MOVR1,#5;延时0.5秒

DEL1:

MOVR2,#200

DEL2:

MOVR3,#126

DEL3:

DJNZR3,DEL3

DJNZR2,DEL2

DJNZR1,DEL1

RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END

七、程序框图:

实验3简单I/O口扩展实验——交通灯控制实验

一、实验目的:

1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的实现方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。

四、实验原理:

要完成本实验,首先必须了解交通路灯的亮灭规律。

本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。

不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。

而交通灯的亮灭规律为:

初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。

五、实验原理图

六、实验步骤:

74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.

运行实验程序,观察LED显示情况是否与实验内容相符。

七、程序框图:

八、参考程序:

T3.ASM

NAMET3;I/O口扩展实验一

PORTEQU0CFA0H;片选地址CS0

CSEGAT0000H

LJMPSTART

CSEGAT4100H

START:

MOVA,#11H;两个红灯亮,黄灯、绿灯灭

ACALLDISP;调用273显示单元(以下雷同)

ACALLDE3S;延时3秒

LLL:

MOVA,#12H;东西路口绿灯亮;南北路口红灯亮

ACALLDISP

ACALLDE10S;延时10秒

MOVA,#10H;东西路口绿灯灭;南北路口红灯亮

ACALLDISP

MOVR2,#05H;R2中的值为黄灯闪烁次数

TTT:

MOVA,#14H;东西路口黄灯亮;南北路口红灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#10H;东西路口黄灯灭;南北路口红灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,TTT;返回TTT,使东西路口黄灯闪烁五次

MOVA,#11H;两个红灯亮,黄灯、绿灯灭

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#21H;东西路口红灯亮;南北路口绿灯亮

ACALLDISP

ACALLDE10S;延时10秒

MOVA,#01H;东西路口红灯亮;南北路口绿灯灭

ACALLDISP

MOVR2,#05H;黄灯闪烁五次

GGG:

MOVA,#41H;东西路口红灯亮;南北路口黄灯亮

ACALLDISP

ACALLDE02S;延时0.2秒

MOVA,#01H;东西路口红灯亮;南北路口黄灯灭

ACALLDISP

ACALLDE02S;延时0.2秒

DJNZR2,GGG;返回GGG,使南北路口;黄灯闪烁五次

MOVA,#03H;两个红灯亮,黄灯、绿灯灭

ACALLDISP

ACALLDE02S;延时0.2秒

LJMPLLL;转LLL循环

DE10S:

MOVR5,#100;延时10秒

LJMPDE1

DE3S:

MOVR5,#30;延时3秒

LJMPDE1

DE02S:

MOVR5,#02;延时0.2秒

DE1:

MOVR6,#200

DE2:

MOVR7,#126

DE3:

DJNZR7,DE3

DJNZR6,DE2

DJNZR5,DE1

RET

DISP:

MOVDPTR,#PORT;273显示单元

CPLA

MOVX@DPTR,A

RET

END

 

 

实验4中断实验

———按键控制LED亮灭

一、实验目的:

1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

使用用单片机的INT0中断资源控制发光二极管(LED)的亮灭。

当按下实验装置的单脉冲按钮时,触发单片机的INT0中断,在INT0的中断服务程序中,将LED的状态取反,即原来LED状态亮的话,将LED熄灭,反之点亮。

四、实验原理:

使用单片机的IO口驱动发光二极管LED,如用P1.0引脚驱动LED0。

显然,由实验装置的LED硬件电路可知,当P1.0输出高电平时,LED0点亮。

本实验中断服务程序的功能比较简单,如果中断服务程序占用了一些公用资源(如寄存器等),还需要采取一些保护措施。

最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到中断前的状态。

要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意,通用工作寄存器R0~R7是否也有必要保护。

试着在该实验项目中将这些现场保护指令添加进去!

五、实验原理图:

(结合实验装置自行绘出!

六、实验步骤:

CPU板的I/O口与要驱动的LED相连(具体:

......)。

单脉冲输出端P-接CPU板上的INT0。

七、程序框图:

1、主程序框图

2、中断程序框图

(实验同学自行绘出)

八、参考程序:

实验5定时器实验

———按键控制LED亮灭

一、实验目的:

1.学习8031内部计数器的使用和编程方法。

2.进一步掌握中断处理程序的编写方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容

使用用单片机的定时计数器资源及中断资源控制发光二极管(LED)的亮灭。

用定时计数器T0对外部脉冲计数(脉冲由单脉冲按钮产生),每按下实验装置的单脉冲按钮5次时,进入单片机的定时计数器中断,在中断服务程序中,将LED的状态取反,即原来LED状态亮的话,将LED熄灭,反之点亮。

四、实验原理:

1.定时器模式确定及计数初值计算。

2.初始化程序

包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行

正确的设置,并将时间常数送入定时器中。

由于只有定时器中断,IP便不必设置。

3.设计中断服务程序和主程序

中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。

主程序则用来控制发光二极管按要求顺序燃灭。

五、实验电路:

(根据实验系统自行绘出)

六、实验步骤:

CPU板的I/O口与要驱动的LED相连(具体:

......)。

单脉冲输出端P-接CPU板上的INT0。

七、程序框图:

1、主程序框图

2、中断程序框图

八、实验程序:

九、实验扩展

本实验如果不对外部脉冲计数,二是改为定时方式来控制LED亮灭,比如每0.5秒钟将LED状态取反一次,该如何实现?

提示:

定时常数的确定

定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。

本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。

时间常数可按下述方法确定:

机器周期=12÷晶振频率=12/(6×10⁶)=2us

设计数初值为X,则(2e+16-X)×2×-610=0.1,可求得X=15535

化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH

实验6存储器扩展实验

一、实验目的:

1.掌握PC存储器扩展的方法。

2.熟悉62256芯片的接口方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

向外部存储器的7000H到8000H区间循环输入00~0FFH数据段。

设置断点,打开外部数据存储器观察窗口,设置外部存储器的窗口地址为7000H—7FFFH。

全速运行程序,当程序运行到断点处时,观察7000H—7FFFH内数据是否正确。

四、实验原理图:

实验系统上的两片6264的地址范围分别为:

3000H~3FFFH,4000H~7FFFH,既可作为实验程序区,也可作为实验数据区。

62256的所有信号均已连好。

五、程序框图:

T16.asm

 

实验7P1口扩展键盘实验

一、实验目的:

掌握P1口的使用方法,行列式键盘的工作原理及编程方法。

二、所需设备

1、CPU挂箱

2、对象挂箱

3、CPU模块(80C31)

4、LED/数码管/键盘模块

三、实验内容

P1.4~P1.7接键盘的列,P1.0~P1.3接键盘的行。

通过扫描键盘确定是否有键按下,如有则确定键值,并在CPU模块的数码管上显示(高位为行号,低位为列号)。

四、实验原理说明

本实验中键值的确定采用线反转法。

五、实验步骤

1、实验连线

P1.4~P1.7接KEYY1~KEYY4,P1.0~P1.3接KEYX1~KEYX4。

2、运行实验程序P1KEY.asm,按动键盘,查看显示键值。

六、实验结果

按动键盘时,数码管上显示出该键所在的行列号。

如“12”表示第一行第二列。

七、实验提示

在判断是否有键按下时,应有去抖动处理,以防止误操作。

具体做法为延时10ms再次判断是否有键按下。

只有两次判断均为有键按下才进行处理。

八、程序框图

 

实验8A/D转换实验

一、实验目的:

1.掌握A/D转换与单片机的接口方法。

2.了解A/D芯片ADC0809转换性能及编程方法。

3.通过实验了解单片机如何进行数据采集。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。

四、实验原理:

A/D转换器大致有三类:

一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。

实验用的ADC0809属第二类,是八位A/D转换器。

每采集一次需100us。

ADC0809START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。

实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需如下两条指令:

MOVDPTR,#PORT

MOVX@DPTR,A

A中为何内容并不重要,这是一次虚拟写。

在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031CPU板上的INT0相连接。

在中断处理程序中,使用如下指令即可读取A/D转换的结果:

MOVDPTR,#PORT

MOVXA,@DPTR

五、实验电路:

 

六、实验步骤:

1.0809的片选信号CS0809接CS0。

2.电位器的输出信号AN0接0809的ADIN0。

3.EOC接CPU板的INT0.

七、程序框图:

T15.ASM

主程序中断服务程序

实验9D/A转换实验

一、实验目的:

1.了解D/A转换的基本原理。

1.了解D/A转换芯片0832的性能及编程方法。

2.了解单片机系统中扩展D/A转换的基本方法。

二、实验设备:

CPU挂箱、8031CPU模块

三、实验内容:

利用DAC0832,编制程序产生锯齿波、三角波、正弦波。

三种波形轮流显示。

四、实验原理:

D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。

产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。

取值范围为一个周期,采样点越多,精度就越高。

本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。

两个寄存器均对数据独立进行锁存。

因而要把一个数据通过0832输出,要经两次锁存。

典型程序段如下:

MOVDPTR,#PORT

MOVA,#DATA

MOVX@DPTR,A

INCDPTR

MOVX@DPTR,A

其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。

启动D/A。

五、实验电路:

六、实验步骤:

1、DAC0832的片选CS0832接CS0,输出端OUT接示波器探头。

2、将短路端子DS的1、2短路

七、程序框图T14.ASM

主程序MAIN锯齿波显示子程序:

PRG1

三角波显示子程序:

PRG2正弦波显示子程序:

PRG3

中断子程序:

DELAY

附录:

实验设备硬件系统概述

1、8051单元

1)、微处理器:

i80c31,它的P1口、P3口皆对用户开放,供用户使用。

2)、时钟频率:

6.0MHz

3)、存储器:

程序存储器与数据存储器统一编址,最多可达64k,板载ROM(监控程序27C256)12k;RAM1(程序存储器6264)8k供用户下载实验程序,可扩展达32k;RAM2(数据存储器6264)8k供用户程序使用,可扩展达32k。

(RAM程序存储器与数据存储器不可同时扩至32k,具体与厂家联系)。

(见图1-1:

存储器组织图)。

在程序存储器中,0000H----2FFFH为监控程序存储器区,用户不可用,4000H----5FFFH为用户实验程序存储区,供用户下载实验程序。

数据存储器的范围为:

6000H----7FFFH,供用户实验程序使用。

注意:

因用户实验程序区位于4000H-----5FFFH,用户在编写实验程序时要注意,程序的起始地址应为4000H,所用的中断入口地址均应在原地址的基础上,加上4000H。

例如:

外部中断0的原中断入口为0003H,用户实验程序的外部中断0的中断程序入口为4003H,其他类推,见表1-1。

4)、可提供的对8051的基本实验

为了提高微机教学实验质量,提高实验效率,减轻主讲教师和实验教师的劳动强度,在该系统的实验板上,除微处理器外、程序存储器、数据存储器外,还增加了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合,能满足各类学校,不同层次微机实验与培训要求。

可提供的实验如下:

(1)、8051P1口输入、输出实验

(2)、简单的扩展输入、输出实验

(3)、8051定时器/计数器实验

(4)、8051外中断实验

(5)、8279键盘扫描、LED显示实验

(6)、8255并行口输入、输出实验

(7)、8253定时器/计数器实验

(8)、8259中断实验

(9)、串行口通讯实验

(10)、ADC0809A/D转换实验

(11)、DAC0832D/A转换实验

(12)、存储器扩展实验

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

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2