单片机.docx

上传人:b****7 文档编号:26306420 上传时间:2023-06-17 格式:DOCX 页数:21 大小:30.68KB
下载 相关 举报
单片机.docx_第1页
第1页 / 共21页
单片机.docx_第2页
第2页 / 共21页
单片机.docx_第3页
第3页 / 共21页
单片机.docx_第4页
第4页 / 共21页
单片机.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机.docx

《单片机.docx》由会员分享,可在线阅读,更多相关《单片机.docx(21页珍藏版)》请在冰豆网上搜索。

单片机.docx

单片机

 

《单片机原理与应用》实验指导书

 

睢丙东马洪涛孟志永

 

2004年12月

实验一数制转换实验

一、实验目的:

(1)、熟悉单片机实验系统板、稳压电源及示波器的使用方法。

(2)、培养程序编制及调试的方法。

(3)、输入自己编写的程序(机器码),并通过实验板和示波器观察程序运行结果。

二、实验要求:

(1)、给出程序设计流程图。

(2)、设计数制转换实验程序。

(3)、记录单片机实验板晶体振荡器的波形图。

(4)、记录单片机实验板上电复位电路的波形图。

三、实验原理:

以下是把16进制数转换为10进制数的参考程序清单及机器码表:

程序清单

程序地址

机器码

BINBCD:

MOV

B,

#100

0100H:

75H

F0H

64H

DIV

AB

0103H:

84H

MOV

30H,

A

0104H:

F5H

30H

MOV

A

B

0106H:

E5H

F0H

MOV

B,

#0AH

0108H:

75H

F0H

0AH

DIV

AB

010BH:

84H

SWAP

A

010CH:

C4H

ADD

A,

B

010DH:

25H

F0H

MOV

31H,

A

010FH:

F5H

31H

RET

0111H:

22H

测试程序:

程序清单

程序地址

机器码

TEST:

MOV

A,

#10H

0150H:

LCALL

BINBCD

SJMP

$

四、实验仪器:

稳压电源一台

HB-51教学实验系统一套

五、实验步骤:

1、HB-51教学实验系统简介:

(1)、+5V电源,+12V电源,-12V电源

(2)、CPU、程序存储器、数据存储器、晶体振荡器、手动复位、LED发光管、键盘、显示器(LED数码管)。

(3)、显示器介绍

该系统共有6个数码管,分为两组,左边4个为一组,右边2个为一组。

在大部分情况下,左边4个数码管作为地址显示器,右边2个数码管作为内容显示器。

(4)、键盘介绍

0~F

为数字键,用来输入0~F的数字,并且系统默认十六进制输入

MEM

为程序存储器内容检查/修改键

REG

为寄存器/内部RAM内容检查/修改键

LAST

用来向上跳一个地址单元

NEXT

用来向下跳一个地址单元

EXEC

为连续执行键

SCAL

为单步调用键

STEP

为单步执行键

MON

为返回系统监控状态,相当于让系统回到刚刚上电时的状态。

也是其他功能键的前导按键

2、HB-51教学实验系统与稳压电源的连接。

实验系统上的+5V电源与稳压电源正确相连,接好以后,给稳压电源上电。

此时,如果系统工

作正常,会在显示器上显示“HB--51”。

如果显示内容不是“HB--51”,则说明系统上电复位过程不正常。

此时按一下红色的手动复位按钮,系统就应当正常工作了。

如果系统还是有问题,甚至,显示器什么都不显示,处于黑屏状态,则立刻关掉稳压电源,然后请实验室老师来解决问题。

3、HB-51教学实验系统程序输入方法

(1)、程序输入方法

MON→0100→MEM→75→NEXT→F5→NEXT→64。

NEXT→22。

程序输入完毕。

其中,MON,MEM,NEXT为对应的功能键,0100H为本次输入程序的首地址。

75,F5,64,22等为程序的机器码。

(2)、已输入程序的检查方法:

MON→0102→MEM→NEXT→NEXT→。

其中,0102H为所要检查单元的地址,按NEXT键可以查看下一单元0103H的内容。

(3)、已输入程序的修改方法:

MON→0102→MEM→输入要修改的内容→NEXT→。

其中,0102H为所要修改单元的地址。

(4)、寄存器/内部RAM内容检查和修改方法:

内容检查:

MON→6(AB)→REG

表示查看寄存器A和寄存器B的内容,内容会在最右边的4个数码管上显示,其中左边的2个是A的内容,右边的2个是B的内容,且以16进制的方式表示。

例如,如果看到右边4个数码管显示的内容为5566,则表示A的内容为55H,B的内容为66H。

内容修改:

MON→6(AB)→REG→10→20

其中6(AB)代表按键,此时最左边的数码管显示6,右边4个数码管2个一组,从左到右代表寄存器A和寄存器B的内容,此时输入10和20则表示给A寄存器传送了一个数值10H,给B寄存器传送了一个数值20H。

相当于执行了MOVA,#10HMOVB,#20H。

同样,MON→30→REG→10,这个步骤表示给内部RAM30H输入了一个数值10H,相当于执行MOV30H,#10H的语句。

4、HB-51教学实验系统程序运行方法:

(1)、单步运行(STEP)

MON→0102(表示从0102H单元开始执行程序,下同)→MEM→STEP→观察结果→STEP。

每按一次STEP键,程序就会执行一条指令,显示器左边的4个数码管会显示下一条要执行指令的地址,左边2个数码管会显示寄存器A当前的内容。

(2)、全速运行(EXEC)

MON→0102(表示从0102H单元开始执行程序)→MEM→EXEC

程序将连续执行,可以用MON键打断程序执行,回到系统监控状态。

(3)、单步调用(SCAL)

MON→0102(代表从0102H单元开始执行程序)→MEM→SCAL

每按一下SCAL键,程序就会执行一条,如果当前指令遇到的是子程序调用,则当前子程序会被当作一条指令来执行。

5、参照实验原理给出的程序,手工汇编测试程序的机器码,并按照给定的地址输入到实验板中,分别用单步运行、全速运行和单步调用3种方法执行程序,执行完成后,用寄存器检查功能查看30H和31H单元的内容,并记录下来。

修改测试程序中的第一句MOVA,#XX,修改给A传递的数值,然后重新执行程序,并观察和记录30H和31H寄存器的内容,验证程序的正确性。

A的内容

31H的内容

30H的内容

A的内容

31H的内容

30H的内容

六、实验注意事项:

(1)、注意稳压电源的使用,极性不得接反,电压不得超过5V。

(2)、程序输入时要注意把输入的代码和自己的程序代码对照,防止输入错误。

(3)、执行程序时,注意观察结果,记录实验现象。

七、实验报告要求:

写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。

 

实验二模拟交通灯实验

一、实验目的:

(1)、熟悉实验板,稳压电源,示波器的用法。

(2)、掌握单片机P1口作为基本的I/O口的用法。

(3)、培养程序编制以及调试的方法。

(4)、输入自己编写的程序,并通过实验板和示波器观察程序运行结果。

二、实验要求:

(1)、给出程序设计流程图。

(2)、设计交通灯实验程序。

(3)、记录P1口输出的波形。

三、实验原理:

(1)、设计交通灯模拟驱动电路,并与系统电路作比较。

(2)、画出交通灯控制程序流程图。

(3)、编写交通灯模拟程序。

(4)、把编写的程序进行手工汇编,翻译成机器码。

四、实验仪器:

稳压电源一台

HB-51教学实验系统一套

示波器一台

五、实验步骤:

(1)、参照实验一实验步骤部分的内容,将翻译好的机器码录入系统板。

(2)、通过按单步运行键,观察程序执行过程,检查程序执行结果。

(3)、通过按连续执行键,观察程序执行结果,与实际的交通灯控制过程进行比对,验证程序。

(4)、通过实验结果修改程序,以达到用最小代码实现最大的功能。

六、实验注意事项:

(1)、稳压电源的使用,不得将电源接反,或者使用过高电压。

(2)、录入程序时注意检查录入的程序代码和自己翻译的是否一致,防止输入错误。

(3)、观察程序运行结果,并仔细检查思考程序的正确性,明确程序执行的过程。

七、实验报告要求:

写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。

八、附参考电路

由电路图可知当P1.4输出为低电平时,LED发光管L5亮,当P1.4输出高电平时,LED发光管L5灭。

在系统板中从P1.0到P1.5接了6个LED发光管,颜色依次为红黄绿、红黄绿,同学们可以根据实际路口的交通灯变化情况编写程序,下面给出单个指示灯闪烁的例子:

单个LED指示灯闪烁的程序清单

程序地址

机器码

LED_Shine:

CLR

P1.4

;指示灯亮

0100H

LCALL

Delay1s

;延时1秒

SETB

P1.4

;指示灯灭

LCALL

Delay1s

;延时1秒

SJMP

LED_Shine

;循环

RET

延时100ms的子程序

Delay100ms:

MOV

R7,

#100

0300H

Loop1:

MOV

R6,

#250

DJNZ

R6,

$

DJNZ

R7,

Loop1

RET

延时1秒的子程序

Delay1s:

MOV

R5,

#10

0400H

Loop2

LCALL

Delay100ms

DJNZ

R5,

Loop2

RET

 

实验三显示实验

一、实验目的:

(1)、熟悉实验板,稳压电源,示波器的用法。

(2)、掌握LED数码管动态扫描的方法,掌握单片机总线控制方法。

(3)、培养程序编制以及调试的方法。

(4)、输入自己编写的程序,并通过实验板和示波器观察程序运行结果。

二、实验要求:

(1)、给出程序设计流程图。

(2)、设计LED数码管动态扫描程序。

(3)、记录LED数码管动态扫描信号的波形。

(4)、在参考程序的基础上编写一个让“123456”闪烁显示的子程序,手工汇编自己编写的程序,并在实验板上验证,程序清单上应有详细的中文注释。

(5)、在参考程序的基础上编写一个让“123456”依次向左循环显示的子程序,手工汇编自己编写的程序,并在实验板上验证,程序清单上应有详细的中文注释。

三、实验原理:

(1)、自己设计动态扫描显示电路的电路图,并与系统实验板电路做比较。

(2)、画出动态扫描显示电路的流程图。

(3)、编写动态扫描显示程序。

(4)、把编写的动态扫描显示程序,进行手工汇编,翻译成机器码。

四、实验仪器:

稳压电源一台

HB-51教学实验系统一套

示波器一台

五、实验步骤:

(1)、参照实验一实验步骤部分的内容,将翻译好的机器码录入系统板。

(2)、通过按单步运行键,观察程序执行过程,检查程序执行结果。

(3)、通过按连续执行键,观察程序执行结果,注意与单步运行时的不同。

(4)、修改程序中显示的参数,观察显示结果。

(5)、修改程序中显示的时间,观察显示结果,进一步深入体会动态扫描。

(6)、用示波器观察并记录动态扫描时各位扫描信号的逻辑关系。

六、实验注意事项:

(1)、稳压电源的使用,不得将电源接反,或者使用过高电压。

(2)、录入程序时注意检查录入的程序代码和自己翻译的是否一致,防止错误输入。

(3)、观察程序运行结果,并仔细检查思考程序的正确性,明确程序执行的过程。

七、实验报告要求:

写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。

阐述动态扫描的原理,动态扫描时各个位的位扫描信号的逻辑关系。

八、附参考电路

参考电路图见附录I。

下面给出动态扫描显示子程序的程序清单:

ORG80E0H;显示子程序

程序地址

机器码

DISP:

MOV

R1,

#75H

;首位地址

MOV

R2,

#20H

;位指针

MOV

A,

R2

DISP1:

MOV

DPTR,

#0E400H

MOVX

@DPTR,

A

;输出字位

MOV

A,

@R1

;取显示缓冲区内容

ADD

A,

#11H

MOVC

A,

@A+PC

;取字型

DISP2:

MOV

DPTR,

#0E000H

MOVX

@DPTR,

A

;输出字型

MOV

R3,

#00H

;延时时间常数

DJNZ

R3,

$

CLR

A

MOVX

@DPTR,

A

;关显示

DEC

R1

;修改缓冲区地址

MOV

A,

R2

RRC

A

;修改位指针

MOV

R2,

A

JNC

DISP1

;未完继续

RET

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;字型表

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;

DB00H,76H,40H,73H,3EH,3DH,5CH,38H,50H;

数码管上面显示“123456”的子程序的程序清单:

显示“123456”子程序的程序清单

程序地址

机器码

Start:

MOV

75H,

#01H

;给显示缓冲区赋值

0100H

MOV

74H,

#02H

MOV

73H,

#03H

MOV

72H,

#04H

MOV

71H,

#05H

MOV

70H,

#06H

Disp_Loop:

LCALL

DISP

;调用显示子程序

SJMP

Disp_Loop

;循环调用

RET

 

实验四键盘实验

一、实验目的:

(1)、熟悉实验板,稳压电源,示波器的用法。

(2)、掌握矩阵键盘的原理,掌握单片机总线控制的方法。

(3)、设计矩阵键盘扫描实验程序。

(4)、培养程序编制以及调试的方法。

(5)、输入自己编写的程序,并通过实验板和示波器观察程序运行结果。

二、实验要求:

(1)、给出程序设计流程图。

(2)、设计矩阵键盘扫描实验程序。

(3)、记录矩阵键盘扫描信号的波形。

(4)、在参考程序的基础上,编写子程序实现每按一个键,键值就在数码管上依次向左滚动显示,对自己的程序进行手动汇编,并在实验板上进行验证,程序清单上应有详细的中文注释。

三、实验原理:

(1)、自己设计矩阵键盘电路的电路图,并与系统实验板电路做比较。

(2)、画出矩阵键盘电路驱动的程序流程图。

(3)、编写矩阵键盘的驱动程序。

(4)、把编写的矩阵键盘程序,进行手工汇编,翻译成机器码。

四、实验仪器:

稳压电源一台

HB-51教学实验系统一套

示波器一台

五、实验步骤:

(1)、参照实验一实验步骤部分的内容,将翻译好的机器码录入系统板。

(2)、通过按单步运行键,观察程序执行过程,检查程序执行结果。

(3)、通过按连续执行键,观察程序执行结果,注意与单步运行时的不同。

(4)、用示波器观察并记录矩阵键盘扫描时行列信号的逻辑关系。

六、实验注意事项:

(1)、稳压电源的使用,不得将电源接反,或者使用过高电压。

(2)、录入程序时注意检查录入的程序代码和自己翻译的是否一致,防止错误输入。

(3)、观察程序运行结果,并仔细检查思考程序的正确性,明确程序执行的过程。

七、实验报告要求:

写出实验目的,实验原理,实验仪器,实验步骤以及实验结果,并写出个人编写的程序及在实验中感触最深的体会。

阐述矩阵键盘的驱动原理,记录矩阵键盘扫描时行列信号的逻辑关系。

八、附参考电路

参考电路图见附录I。

矩阵键盘扫描子程序的程序清单

ORG8120H;键盘扫描子程序

程序地址

程序代码

KBS:

MOV

R2,

#0DFH

;行指针

MOV

R3,

#06H

;行数

KB1:

MOV

DPTR,

#0E400H

MOV

A,

R2

MOVX

@DPTR,

A

;输出一行

MOV

DPTR,

#0E800H

MOVX

A,

@DPTR

;读键盘

CPL

A

ANL

A,

#1FH

JNZ

KB2

;有键按下转出

MOV

A,

R2

RR

A

;修改行指针

MOV

R2,

A

DJNZ

R3,

KB1

;未完继续

CLR

A

KB2:

RL

A

;拼键值

RL

A

RL

A

ORL

A,

R3

MOV

R2,

A

MOV

DPTR,

#TAB

MOV

R3,

#1CH

KB3:

MOV

A,

R3

;查表

MOVC

A,

@A+DPTR

CJNE

A,

02H,KB4

;未找到转走

MOV

A,

R3

;键值->A

RET

KB4:

DJNZ

R3,

KB3

MOV

A,

R3

;键值为#00H

RET

TAB:

DB81H,82H,42H,22H,83H,43H,23H,84H;键值表

DB44H,24H,14H,13H,12H,11H,21H,41H;

DB00H,85H,45H,25H,15H,86H,46H,26H;

DB16H,0CH,0BH,0AH,09H;

每按下一个按键(仅限于0~F),把按键数值在数码管上显示的子程序的程序清单

子程序的程序清单

程序地址

程序代码

Start:

MOV

A

#10H

0100H

74

10

MOV

75H,

A

F5

75

MOV

74H,

A

F5

74

MOV

73H,

A

F5

73

MOV

72H,

A

F5

72

MOV

71H,

A

F5

71

MOV

70H,

A

;清空显缓区75~70

F5

70

Loop:

LCALL

KBS

;调用键盘扫描

010EH

12

81

20

CJNE

A,#10H,

Next

;如果有按键则转

0111H

B4

10

05

LCALL

DISP

;刷新显示

12

80

E0

SJMP

Loop

;无按键则重新判断

80

F5

Next:

LCALL

Delay10ms

;软件去抖动

0119H

12

03

00

LCALL

KBS

;调用键盘

12

81

20

CJNE

A,#10H,

Loop1

;有按键则送显示

B4

10

02

SJMP

Loop

;无按键则继续扫描

80

EA

Loop1:

MOV

75H,

A

;键值送显示缓冲区

0124H

F5

75

Wait:

LCALL

DISP

;调显示

0126H

12

80

E0

LCALL

KBS

;调用按键扫描

12

81

20

CJNE

A,#10H,

Wait

;等待按键抬起

B4

10

F7

SJMP

Loop

;重新开始检测按键

80

DD

RET

;

注:

程序中需要的Delay10ms子程序,需要同学们自己编写。

 

附录I:

键盘显示电路图

附录II:

系统译码电路图

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

当前位置:首页 > 农林牧渔 > 林学

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

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