单片机实验指导书.docx

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

单片机实验指导书.docx

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

单片机实验指导书.docx

单片机实验指导书

目录

实验一P1口输入、输出实验2

实验二继电器控制实验8

实验三音频控制实验11

实验四程序调试14

实验五5LED静态串行显示实验16

实验六6LED动态扫描显示实验23

实验七查询式键盘实验31

实验八阵列式键盘实验39

实验九计数器实验50

实验十定时器实验52

实验十一外部中断实验58

实验一P1口输入、输出实验

一、实验目的

1、学习P1口的使用方法

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

二、实验说明

P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤

实验

(一):

用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统1模块。

关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。

发光二极管单只从右到左轮流循环点亮。

实验

(二):

用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。

程序读取开关状态,并在发光二极管上显示出来。

1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。

2、添加P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。

向上拨为熄灭,向下拨为点亮。

四、流程图及源程序

1.流程图

 

(A)P1口循环点灯程序框图

(B)P1口输入输出程序框图

2.源程序:

(一)实验一

ORG0000H

LJMPSTART

ORG0030H

START:

mova,#0FEh

movr2,#8

Output:

movP1,a

rla

AcallDelay

djnzr2,Output

LjmpSTART

Delay:

movr6,#0

movr7,#0

DelayLoop:

;延时程序

djnzr6,DelayLoop

djnzr7,DelayLoop

ret

end

(二)实验二

KeyLeftBITP1.0;定义

KeyRightBITP1.1

LedleftBITP1.2

LedRightBITP1.3

ORG0000H

LJMPSTART

ORG0030H

START:

SETBKeyLeft;欲读先置一

SETBKeyRight

Loop:

Movc,keyleft

MovLEDLeft,c

MOVC,KeyRight

MovLEDRIGHt,c

LJMPLoop

END

五、思考题

(1)对于本实验延时子程序

Delay:

MOVR6,0

MOVR7,0

DelayLoop:

DJNZR6,DelayLoop

DJNZR7,DelayLoop

RET

如使用12MHz晶振,粗略计算此程序的执行时间为多少?

六、电路图

 

实验二继电器控制实验

一、实验目的

1、学习I/O端口的使用方法

2、掌握继电器的控制的基本方法

3、了解用弱电控制强电的方法

二、实验说明

现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全。

继电器便能完成这一任务。

继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势。

本电路的控制端为高电平时,继电器常开触点吸合,同时LED灯被点亮。

当控制端为低电平时,继电器不工作。

三、实验内容及步骤

用P1.0作为控制输出口,接继电器电路,使继电器重复吸合与断开。

1、使用单片机最小应用系统1模块,用导线连接P1.0端口到继电器与温度控制部件模块的控制口。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加继电器.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管亮灭情况和听继电器开合的声音,继电器重复延时吸合与延时断开。

四、流程图及源程序

源程序清单:

OutputBITP1.0;P1.0输出

ORG0000H

LJMPSTART

ORG0030H

START:

clrOutput;断开

callDelay

setbOutput;吸合

callDelay

ljmpSTART

Delay:

movr6,#0

movr7,#0

DLoop:

djnzr7,DLoop

djnzr6,DLoop

ret

end

五、思考题

试用单片机的其他输入输出口控制继电器。

六、电路图

 

音频控制实验

一、实验目的

1.学习输入/输出端口控制方法

2.了解音频发声原理

二、实验仪器

实验箱计算机

三、实验内容及步骤

P1.0输出音频信号接音频驱动电路,使扬声器周期性的发声。

1、使用单片机最小应用系统1模块,用导线将P1.0接到音频驱动电路输入端。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加音频.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,扬声器周期性的发出单频声音。

四、流程图及源程序

1.源程序

OUTPUTBITP1.0;P1.0端口

ORG0000H

LJMPSTART

ORG0030H

START:

CLRC

MOVOUTPUT,C

LCALLDELAY

SETBC

MOVOUTPUT,C

LCALLDELAY

AJMPSTART

DELAY:

MOVR5,#4

D1:

MOVR6,#20

D2:

MOVR7,#123

NOP

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RET

END

思考题:

如何改变音调的高低?

 

实验四程序设计

(2)

一、实验目的

1、掌握单片机仿真及简单程序设计与调试方法。

2、掌握KEILC环境中查看指令操作结果的技巧。

二、实验仪器

计算机

三、实验步骤

1、在对工程成功地进行汇编、连接以后,按Ctrl+F5或者使用菜单Debug->Start/StopDebugSession即可进入调试状态,单步调试,全速运行两种模式下调试。

2、在程序行设置/移除断点的方法是将光标定位于需要设置断点的程序行,使用菜单Debug->Insert/RemoveBreakPoint设置或移除断点(也可以用鼠标在该行双击实现同样的功能);Debug->Enable/Disable  Breakpoint 是开启或暂停光标所在行的断点功能;Debug->DisableAllBreakpoint暂停所有断点;Debug->KillAllBreakPoint清除所有的断点设置。

这些功能也可以用工具条上的快捷按钮进行设置。

3建立一个工程添加以下程序:

(1)汇编、连接生成可执行文件。

利用单步,执行到断点处两种方法执行程序。

(2)观察结果、分析程序、说明功能。

实验分析:

设计小程序,观察以下几组指令并分析其操作结果。

ADDADDC

XCHXCHD

ANLORL

ORG0000H

LJMPMAIN

ORG0040H

MAIN:

MOVA,#0FEH

LOOP:

MOVP1,A

LCALLD_1s

RLA

AJMPMAIN

D_1s:

MOVR6,#100;1

D10ms:

MOVR5,#40;1

DL:

MOVR4,#123;1

NOP;1

DJNZR4,$;2*123

DJNZR5,DL;2

DJNZR6,D10ms;2

RET

END

ORG0000H

MOVR2,#32H

MOVA,R2

SWAPA

ANLA,#0FH

MOVB,#0AH

MULAB

 

实验五5LED静态串行显示实验

一、实验目的

1、掌握数字、字符转换成显示段码的软件译码方法

2、静态显示的原理和相关程序的编写

二、实验电路

1、静态显示,电路图中所示。

显示器由5个共阴极数码管组成。

输入只有两个信号,它们是串行数据线DIN和移位信号CLK。

5个串/并移位寄存器芯片74LS164首尾相连。

每片的并行输出作为LED数码管的段码。

74LS164的引脚图如图所示;

74LS164为8位串入并出移位寄存器,1、2为串行输入端,Q0~Q7为并行输出端,CLK为移位时钟脉冲,上升沿移入一位;MR为清零端,低电平时并行输出为零。

三、实验内容及步骤

单片机的P1.0作数据串行输出,P1.1作移位脉冲输出,当然用户也可以用其他I/O口。

1、使用单片机最小应用系统1模块,用导线连接P1.0、P1.1到串行静态显示模块的DIN、CLK端。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加串行显示.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。

5LED显示“80C51”。

停止程序运行,显示不变,说明静态显示模块具有数据锁存功能。

四、流程图及源程序

1、流程图

 

 

 

2、源程序

DBUF0EQU30H;置存储区首址

TEMPEQU40H;置缓冲区首址

DINBITP1.0;置串行输出口

CLKBITP1.1;置时钟输出口

ORG0000H

LJMPSTART

ORG0030H

START:

MOV30H,#8;存入显示数据

MOV31H,#9

MOV32H,#C

MOV33H,#5

MOV34H,#1

DISP:

MOVR0,#DBUF0

MOVR1,#TEMP

MOVR2,#5

DP10:

MOVDPTR,#SEGTAB;表头地址

MOVA,@R0

MOVCA,@A+DPTR;查表指令

MOV@R1,A

INCR0

INCR1

DJNZR2,DP10

MOVR0,#TEMP;段码地址指针

MOVR1,#5;段码字节数

DP12:

MOVR2,#8;输出子程序

MOVA,@R0;取段码

DP13:

RLCA;段码左移

MOVDIN,C;输出一位段码

CLRCLK;发送移位脉冲一位

SETBCLK

DJNZR2,DP13

INCR0

DJNZR1,DP12

SJMP$

SEGTAB:

DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5

DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,b

DB58H,5EH,7BH,71H,00H,40H;C,d,E,F,,-

DELAY:

MOVR4,#03H;延时子程序

AA1:

MOVR5,#0FFH

AA:

DJNZR5,AA

DJNZR4,AA1

RET

END

五、电路图

 

实验六6LED动态扫描显示实验

一、实验目的

1、掌握数字、字符转换成显示段码的软件译码方法

2、动态显示的原理和相关程序的编写

二、实验说明

动态显示,也称扫描显示。

显示器由6个共阴极LED数码管构成。

单片机的P0口输出显示段码,经由一片74LS245驱动输出给LED管,由PB口输出位码,经由74LS06输出给LED管。

三、实验内容及步骤

单片机P0输出段码,P1口输出位控码,输出6个字符。

1、单片机最小应用系统1的P0口接段码口a~h,P1口接位码口S1~S6。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

3、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加扫描显示.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。

6LED显示“168168”。

程序停止运行后,显示随之变化,说明运态扫描显示模块不具有数据锁存的功能。

四、流程图及源程序

1、源程序

DBUFEQU30H;置存储区首址

TEMPEQU40H;置缓冲区首址

ORG0000H

LJMPSTART

ORG0030H

START:

MOV30H,#1;存入数据

MOV31H,#6

MOV32H,#8

MOV33H,#1

MOV34H,#6

MOV35H,#8

MOVR0,#DBUF

MOVR1,#TEMP

MOVR2,#6;6位显示器

MOVDPTR,#SEGTAB;置段码表首址

DP00:

MOVA,@R0;将段码存入缓冲区

MOVCA,@A+DPTR;查表取段码

MOV@R1,A;存入暂存器

INCR1

INCR0

DJNZR2,DP00

DISP0:

MOVR0,#TEMP;显示子程序

MOVR1,#6;扫描8次

MOVR2,#01H;决定数据动态显示方向

DP01:

MOVA,@R0

MOVP0,A;段码输出

MOVA,R2;取位码

CPLA;低电平驱动

MOVP1,A;位码输出

ACALLDELAY;调用延时

MOVA,R2

RLA

MOVR2,A

INCR0

DJNZR1,DP01

SJMPDISP0

SEGTAB:

DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5

DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,b

DB58H,5EH,7BH,71H,00H,40H;C,d,E,F,,-

DELAY:

;延时子程序

MOVR4,#03H

AA1:

MOVR5,#0FFH

AA:

DJNZR5,A

DJNZR4,AA1

RET

END

 

2、流程图

 

 

五、思考题

1、如何修改程序,实现六位LED数码管只显示其中的两位?

六、电路图

实验七查询式键盘实验

一、实验目的

1、掌握键盘和显示器的接口方法和编程方法

2、掌握键盘和八段码显示器的工作原理

3、静态显示的原理和相关程序的编写

二、实验说明

本实验提供了8个按钮的小键盘,可接到单片机的并行口,如果有键按下,则相应输出为低,否则输出为高。

单片机通过识别,判断按下什么键。

有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

三、实验步骤及内容

1、用一根扁平数据插头线连接查询式键盘实验模块与八位逻辑电平显示模块,无键按下时,键盘输出全为“1”发光二极管全部熄灭,有键按下,对应发光二极管点亮。

此种电路的程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。

阵列式键盘的编程同样也有这样的问题要注意。

2、一根扁平8线插头连接查询式键盘实验模块与扫描显示实验模块。

无键按下时,LED数码显示八段全部熄灭,有键按下时,则对应LED段点亮。

3、使用静态串行显示模块显示键值。

单片机最小应用系统1的P1口接查询式键盘输出口。

P3.6接静态数码显示DIN,P3.7接CLK。

4、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

5、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加查询KEY.ASM源程序,进行编译,直到编译无误。

6、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

7、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。

在键盘上按下某个键,观察数显是否与按键值一致,键值从左至右为0~7。

五、流程图及源程序

 

1、流程图

 

2、源程序

DBUFEQU30H

TEMPEQU40H

DINBITP3.6

CLKBITP3.7

ORG0000H

LJMPSTART

ORG0030H

START:

MOV30H,#16

MAIN:

ACALLDISP

ACALLKEY0

AJMPMAIN

KEY:

MOVP1,#0FFH;输入前,锁存器置“1”

MOVA,P1;读取键盘状况

CJNEA,#0FFH,K00;有键按下

AJMPKEY;无键按下

K00:

ACALLDELAY;延时去抖动

MOVA,P1

CJNEA,#0FFH,K01;确有键按下

AJMPKEY

K01:

MOVR3,#8;8个键

MOVR2,#0;键码

MOVB,A;暂存键值

MOVDPTR,#K0TAB

K02:

MOVA,R2

MOVCA,@A+DPTR;从键值表中取键值

CJNEA,B,K04;键值比较

K03:

MOVA,P1;相等

CJNEA#0FFH,K03;等键释放

ACALLDELAY;延时去抖动

MOVA,R2;得键码

RET

K04:

INCR2;不相等,到继续访问键值表

DJNZR3,K02

MOVA,#0FFH;键值不在键值中,即多键同时按下

AJMPKEY

K0TAB:

DB0FEH,0FDH,0FBH,0F7H;键值表

DB0EFH,0DFH,0BFH,07FH

DISP:

MOVDBUF,A

MOVDBUF+1,#16

MOVDBUF+2,#16

MOVDBUF+3,#16

MOVDBUF+4,#16

MOVR0,#DBUF

MOVR1,#TEMP

MOVR2,#5

DP10:

MOVDPTR,#SEGTAB

MOVA,@R0

MOVCA,@A+DPTR

MOV@R1,A

INCR0

INCR1

DJNZR2,DP10

MOVR0,#TEMP

MOVR1,#5

DP12:

MOVR2,#8

MOVA,@R0

DP13:

RLCA

MOVDIN,C

CLRCLK

SETBCLK

DJNZR2,DP13

INCR0

DJNZR1,DP12

RET

SEGTAB:

DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5

DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,b

DB58H,5EH,79H,71H,00H,40H;C,d,E,F,,-

DELAY:

MOVR4,#02H

AA1:

MOVR5,#0F8H

AA:

DJNZR5,AA

DJNZR4,AA1

RET

END

五、思考题

1、程序如何确保每按一次键,只处理一次。

六、原理图

 

实验八阵列式键盘实验

一、实验目的

1、掌握键盘和显示器的接口方法和编程方法

2、掌握阵列式键盘的硬件组成和软件编程方法

二、实验说明

本实验提供了一个4X4小建盘,向P0口的低四位逐个输出低电平,如果有键盘按下,则相应输出为低,如果没有键按下,则输出为高。

通过输出的列码和读取的行码来判断按下什么键。

有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。

三、实验步骤及内容

1、用一根8位数据线连接阵列式键盘实验模块与LED与单片机接口模块。

无键按下或有键按下,发光二极管全亮。

若将A1-A4接地,则发光二极管显示0000XXXX;B1线上有键按下,则发光二极管显示0000XXX,B2线上有键按下,则发光二极管现世0000X0XX,B1和B2均有键按下,则发光二极管显示000000XX……同样可将B1与B4接地,按键与发光二极管显示情况,用户可以自行判断,自由操作。

2、用一根8位数据线连接阵列式键盘实验模块与扫描显示实验模块。

无键按下或有键按下,八段LED全亮。

用户参照1,观察键盘与八段LED亮熄的关系。

3、使用静态串行显示模块显示键值。

单片机最小应用系统1的P1口接阵列式键盘的A1~B4口,P3.6接静态数码显示DIN,P3.7接CLK。

4、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

5、打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加阵列KEY.ASM源程序,进行编译,直到编译无误。

6、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

在键盘上按下某个键,观察数显是否与按键值一致。

16位建盘的键值从左至右、从上至下依次为0~F(16进制数)。

四、流程图及源程序

 

1、流程图

 

 

2、源程序

DBUFEQU30H

TEMPEQU40H

DINBITP3.6

CLKBITP3.7

ORG0000H

LJMPSTART

ORG0030H

START:

MOVA,#16

MAIN:

ACALLDISP

MOV30H,A

ACALLKEY1

AJMPMAIN

KEY1:

MOV

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

当前位置:首页 > 自然科学 > 物理

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

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