单片机原理实验指导书.docx

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

单片机原理实验指导书.docx

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

单片机原理实验指导书.docx

单片机原理实验指导书

 

单片机原理

 

 

丁易新编

 

安徽工业大学电气信息学院

 

2012年4月

 

实验01KeilμVision编程平台与汇编指令练习

 

一、实验器材

[1]微型计算机

[2]单片机硬件开发实验装置

[3]实验装置下载线

二、实验目的

1.熟悉uVision3集成调试环境

2.熟悉MCS-51寻址方式及传送类指令

三、实验要求与任务

传送类指令练习。

单步逐条向下执行指令。

每执行一条指令,都要分析一下指令源操作数、目的操作数在存储空间的哪个单元,看一看你所理解的指令执行结果与实际运行结果是否符合,并且把每条指令执行后目的操作数的值记录下来。

MCS-51单片机的存储空间如表所示:

数据空间

程序空间

片内/

片外

片内

片外

片内

片外

寻址

方式

RAM直接

间接

SFR

直接

寻址

RAM

间接

寻址

RAM

间接

寻址

ROM

间接

寻址

ROM

间接

寻址

ROM

间接

寻址

空间

范围

00-7FH

80-FFH

80H-FFH

0000-FFFFH

0000-0FFFH

0000-0FFFH

1000H-0FFFFH

表示

方法

DATA

SFR

IDATA

XDATA

CODE

CODE

CODE

1.直接寻址只能在DATA区和SFR中进行,如下例

ORG0000H

LJMPSTART

ORG0100H

START:

;此处加入RAM的初始化程序(见下文)

MOVA,03H;把地址03H中的数移入累加器

MOV43H,22H;把地址22H中的数移入地址43H中

MOV02H,C;把Cy中的数移入位地址02H中

MOV42H,#18H;把立即数18移入地址42H中

MOV09H,P1;把端口1中的数移入地址09H中

SJMP$

END

2.间接寻址要使用DPTR,PC,R0,R1寄存器作为指针访问各存储器。

可访问的空间为CODE、IDATA、XDATA存储区,对DATA存储区也可进行间接寻址。

只能用直接寻址方式对位地址进行寻址。

①XDATA区寻址:

ORG0000H

LJMPSTART

ORG0100H

START:

;此处加入RAM的初始化程序(见下文)

MOVDPTR,#3048H;DPTR指向外部存储区

MOVXA,@DPTR;读入外部存储区地址3048H中的数

INCDPTR;指针加一

MOVA,#26H;立即数26H写入A中

MOVX@DPTR,A;将26H写入外部存储区地址3049H中

MOVR0,#87H;R0指向外部存储区地址87H

MOVXA,@R0;将外部存储区地址87H中的数读入累加器中

SJMP$

END

②CODE区寻址:

查CODE区的平方表:

ORG0000H

LJMPSTART

ORG0100H

START:

MOVDPTR,#TABLE_BASE;DPTR指向表首地址

MOVA,#5;把偏移量(立即数5)装入累加器中

MOVCA,@A+DPTR;从表中读出数据到累加器中(5的平方)

SJMP$

TABLE_BASE:

DB0,1,4,9,16,25,36;平方表

END

四、实验步骤:

Ⅰ创建项目

⒈第一次使用,首先为我们编写的实验程序在D盘上新建一个文件夹D:

\单片机实验;

⒉启动keiluVision3,新建一个项目文件并从器件库中选择一个器件,操作步骤如下:

⑴启动keiluVision3;

⑵新建一个项目文件:

从菜单Project中选择NewProject。

①选择保存路径(至D:

\单片机实验)

②输入项目文件名(例:

shiyan)

③点击保存

⑶选择CPU:

弹出对话框SelectDeviceforTarget,为项目选择CPU。

我们选择Generic下的8051。

弹出对话框,询问是否添加标准的启动代码到你的项目,不理会,点击NO。

Ⅱ新建一个源文件

从菜单File选择New来新建一个源文件。

在text1编辑窗口中输入程序。

把程序保存在D:

\单片机实验。

由于是汇编程序,输入文件名时一定输入扩展名“.asm”。

例:

shiyan.asm。

Ⅲ将你的源文件加入到你的项目中

⒈在你的ProjectWorkspace窗口中点击Target1前“+”,展开SuorceGroup1;

⒉右击SuorceGroup1,出现菜单,选择AddfilestoGroup“SuorceGroup1”选项;

⒊弹出对话框。

①选择你刚刚生成的文件。

例:

shiyan.asm。

②文件类型选择asmsourcefile

③点击Add后关闭对话框。

Ⅳ编译(或汇编)你的源程序

⒈点击菜单Project下OptionsforTarget弹出对话框OptionsforTarget‘target1’。

Xtal:

定义CPU时钟,12MHz。

下面依次是编译的存储模式、程序空间大小等设置,均使用默认值即可。

若要生成下载文件(.hex文件),点击Output选项,选中CreateHexFiles。

⒉点击菜单Project下BuildTarget即可编译(或汇编)你的源程序(留意一下,在工具栏上可找到相应快捷按钮)。

在下面的输出窗口OutputWindow可看到编译(汇编)的结果,应该没有错误才可继续下面实验。

否则修改你的源程序,直到没有错误为止。

 

Ⅴ调试你的程序

点击菜单Debug下Start/StopDebugSession进入调试模式。

你现在就可以采用连续运行、停止、指令单步、函数单步、运行到光标处行等命令调试你的程序(这些命令在Debug下Run、StopRunning、Step、Stepover,RuntoCursorline。

也可利用快捷按钮)。

你也可以设置断点后,连续执行程序进行调试。

如程序运行到中间想从头再来,只要按RST按钮即可。

常用调试快捷按钮

符号

说明

Rst

Run

StopRunning

Stepinto

Stepover

RuntoCursorline

Start/StopDebugSession

复位

连续运行

停止

指令单步

函数单步

运行到光标处行

调试模式/

编辑模式切换

Ⅵ存储器、寄存器的查看、修改

在调试程序时,经常需要查看存储器内容,你可以查看8051内的4个存储器逻辑空间的任一个。

在调试模式下,依次点击View,MemoryWindow,你可以看到包含4个存储器空间的窗口,你在第一个存储器空间的Address栏内输入C:

0,即可看到从0000H开始的一段程序存储内容;你也可以在其它Address栏内分别填入X:

0、D:

0、I:

0就可以查看外部数据存储器空间、直接寻址的片内存储空间(包括片内00-7FH的RAM,及80H-0FFH的SFR)、间接寻址的片内存储空间(包括片内00-7FH的RAM,及8032的80H-0FFH的数据RAM)。

如要修改MemoryWindow内存储单元内容,可用鼠标右键点击选定存储单元,根据提示即可修改。

在ProjectWorkspace窗口,你还可以看到8051的所有寄存器。

如要查看单片机的外围部件,像端口P0-P3,定时器T0、T1等,可点击Peripherals。

 

实验02二进制数转换成十进制数实验

一、实验器材

[1]微型计算机

[2]单片机硬件开发实验装置

[3]实验装置下载线

二、实验目的

1.熟悉uVision3集成调试环境

2.学习掌握51单片机的汇编语言程序设计。

三、实验要求与任务

将RAM地址30H的16进制数(例如:

在调试送入0ffH,或64H等数据),转换成十进制数,结果送到31H、32H、33H(地位在31H,最高位33H)。

四、实验步骤:

实验步骤同实验01

五、实验程序参考框图:

 

实验03流水灯实验

一、实验器材

[1]微型计算机

[2]单片机硬件开发实验装置

[3]实验装置下载线

二、实验目的

1.熟悉uVision3集成调试环境

2.学习掌握51单片机的I/O端口及编程。

三、实验电路:

 

图1-38位流水灯显示电路

 

四、实验要求与任务

1.设计节日流水灯。

8051单片机P0口驱动流水灯:

输出“1”时灯亮,“0”时灯灭。

流水灯效果如下图2-1所示。

图中表示灯亮,表示灯灭,流水灯效果在1-8状态中循环。

LD0……LD7LD0……LD7

11

22

33

44

55

66

77

88

99

10

图2-1流水灯111

12

13

14

15

16

17

18

图2-2流水灯2

2.设计节日流水灯。

8051单片机P0口驱动流水灯:

输出“1”时灯亮,“0”时灯灭。

流水灯效果如上图2-2所示。

图中表示灯亮,表示灯灭,流水灯效果在1-16状态中循环。

五、实验步骤:

1.系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),MCU的JD13连接到八位逻辑电平显示模块的JD30。

2.程序输入、编译等实验步骤同实验01。

3.程序下载编程。

系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。

打开STC-ISPV397软件。

⑴步骤一:

选择单片机芯片型号STC89C52RC

⑵步骤二:

打开hex文件

⑶步骤三:

选择COM口,与设备管理器(我的电脑,点击鼠标右键,选择设备管理器)中端口一致。

⑷步骤四:

设置为12T/单倍速

⑸步骤五:

Download/下载。

关学习机电源→握手接线→打开学习机电源

4.程序验证。

 

实验04数码管动态扫描显示实验

一、实验器材

[1]微型计算机

[2]单片机硬件开发实验装置

[3]实验装置下载线

二、实验目的

1.掌握8段数码管硬件线路原理;

2.掌握用HD7279A芯片实现数码管显示的编程方法。

三、实验电路

HD7279A是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能显示驱动芯片,该芯片还可同时连接多达64键的键盘矩阵。

HD7279A内部含译码器,可直接接受16进制码。

HD7279A芯片介绍请见附录一。

 

四、实验要求与任务

根据电路使用HD7279A驱动共阴数码管,显示“123”。

程序可参考附录一。

五、实验步骤:

1.系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),J3打在7279处。

2.程序输入、编译等实验步骤同实验01。

3.程序下载编程。

系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。

打开STC-ISPV397软件,下载程序(同实验03)。

 

 

附录一:

HD7279A芯片介绍

HD7279A是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。

1.主要特性

(1).串行接口,无需外围元件可直接驱动LED。

(2).各位独立控制译码/不译码及消隐和闪烁属性。

(3).(循环)左移/(循环)右移指令。

(4).具有段寻址指令,方便控制独立LED。

(5).64键键盘控制器,内含去抖动电路。

2.引脚说明:

VDD:

正电源VSS:

CS:

片选CLK:

时钟输入端

DATA:

串行数据输入/输出端CLK0:

振荡输出端

KEY:

按键有效输出端RES:

复位端

SG-SA:

段g—段a驱动输出

DP:

小数点驱动输出DIG0-7:

数位0-7驱动输出

RC:

RC振荡器连接端

3.HD7279A硬件电路:

注意:

(1).HD7279A应连接共阴式数码管。

(2).应用中,无需用到的键盘和数码管可以不连接。

(3).应用中,串入DP及SA—SG连接的8只电阻为200欧。

(4).应用中,8只下拉电阻和8只键盘连接位选线DIG0-DIG7的电阻,应遵从一定的比例关系,典型值为10倍,下拉电阻的取值范围是10K—100K,位选电阻的取值围是1K—10K。

(5).HD7279A需要一外接的RC振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15pF。

(6).HD7279A的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接一外部的复位电路,或直接由MCU(单片机)控制。

在上电或RESET端由低电平变为高电平后,HD7279A大约需要经过18-25MS的时间才会进入正常工作状态。

4.控制指令

HD7279A的控制指令分为二大类——纯指令和带有数据的指令。

主要控制指令如下:

A.纯指令

(1).复位(清除)指令A4H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

0

0

1

0

0

当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。

执行该指令后,芯片所处的状态与系统上电后所处的状态一样。

(2).左移指令A1H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

0

0

0

0

1

例如,原显示为:

4

2

5

2

L

P

3

9

其中第2位‘3’和第4位‘L’为闪烁显示。

执行了左移指令后,显示变为:

2

5

2

L

P

3

9

第2位‘9’和第4位‘P’为闪烁显示。

(3).右移指令A0H

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

0

0

0

0

0

与左移指令类似,但所做移动为自左向右移动,移动后,最左边一位为空

B.带有数据的指令

(1).下载数据且按方式0译码

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

0

a2

a1

a0

DP

X

X

X

d3

d2

d1

d0

命令由二字节组成,前半部分为指令,其中a2,a1,a0为位地址。

d0-d3为数据,收到此指令时,按以下规则进行译码。

小数点的显示由DP位控制:

DP=1时,小数点显示,DP=0时,小数点不显示。

(2).下载数据且按方式1译码

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

1

1

0

0

1

a2

a1

a0

DP

X

X

X

d3

d2

d1

d0

此指令与上一条指令其本相同,所不同的是译码方式。

(3).下载数据但不译码

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

1

0

a2

a1

a0

DP

A

B

C

D

E

F

G

其中,a2,a1,a0为位地址,A-G和DP为显示数据,分别对应7段LED数码管的各段。

当相应的数据位为‘1’时,该段点亮,否则不亮。

此指令灵活,通过造字形表,可以显示用户所需的字符。

(4).闪烁控制88H

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

1

0

0

0

d8

d7

d6

d5

d4

d3

d2

d1

此命令控制各个数码管的闪烁属性,d1—d8分别对应数码管1-8。

0=闪烁,1=不闪烁。

开机后,缺省的状态为各位均不闪烁。

(5).读键盘数据指令15H

D7

D6

D5

D4

D3

D2

D1

D0

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

1

0

1

0

1

d7

d6

d5

d4

d3

d2

d1

d0

该指令从HD7279A读出当前的按键代码。

前一个字节015H为指令代码,而后一个字节d0-d7则为HD7279A返回的按键代码,其范围是00H-3FH(无键按下时为FFH)。

当HD7279A检测到有效的按键时,KEY引脚从高电平变为低电平,并一直保持到按键结束。

在此期间,如果HD7279A接收到‘读键盘数据指令’,则输出当前按键的键盘代码;如果在收到‘读键盘指令’时没有有效按键,HD7279A将输出FFH。

5.串行接口的时序图。

A、HD7279A的指令结构类型:

(1)、不带数据的纯指令,指令的宽度为8个BIT。

即微处理器需发送8个CLK脉冲。

(2)、带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲。

(3)、读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279A的指令,后8个BIT为HD7279A返回的键盘代码。

执行此指令时,HD7279A的DATA端在第9个CLK脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。

B、串行接口的时序图:

(1).纯指令

T1=50us;T2=8us;T3=8us

(2).带数据指令

T4=25us

(3).读键盘指令

T5=25us;T6=8us;T7=8us

6.软件编程

发送一字节子程序:

(发送数存于A中)

KEYBITP1.3

CLKBITP1.6

DATBITP1.7

CSBITP2.7

 

SEND:

MOVR0,#8

CLRCS

CALLLONG_DELAY

SEND_LOOP:

MOVC,ACC.7

MOVDAT,C

SETBCLK

RLA

CALLSHORT_DELAY

CLRCLK

CALLSHORT_DELAY

DJNZR0,SEND_LOOP

CLRDAT

RET

LONG_DELAY:

MOVR7,#80

DELAY_LOOP:

DJNZR7,DELAY_LOOP

RET

SHORT_DELAY:

MOVR7,#6

SHORT_LP:

DJNZR7,SHORT_LP

RET

 

附录二:

系统各跳线器的初始设置状态表

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

当前位置:首页 > 医药卫生 > 基础医学

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

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