单片机原理及应用实验指导书Word下载.docx

上传人:b****4 文档编号:16489634 上传时间:2022-11-24 格式:DOCX 页数:29 大小:476.11KB
下载 相关 举报
单片机原理及应用实验指导书Word下载.docx_第1页
第1页 / 共29页
单片机原理及应用实验指导书Word下载.docx_第2页
第2页 / 共29页
单片机原理及应用实验指导书Word下载.docx_第3页
第3页 / 共29页
单片机原理及应用实验指导书Word下载.docx_第4页
第4页 / 共29页
单片机原理及应用实验指导书Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

单片机原理及应用实验指导书Word下载.docx

《单片机原理及应用实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验指导书Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

单片机原理及应用实验指导书Word下载.docx

其功能为将被加数写入30H、31H单元,

加数写入40H、41H单元,运行程序结果写入50H、51H、52H单元中,加法程序功能为:

(30H)(31H)+(40H)(41H)=(50H)(51H)(52H)(都是高位在前、低位在后)。

三、实验设备

1.PC机一台。

四、实验步骤

1.启动PC机,打开桌面上的KeilμVision4软件,进入μVision4界面,如图2-1。

图2-1μVision4界面

2.创建和打开项目(项目管理)

项目是用来保存文件、链接工具、目标代码生成和窗口配置信息的。

可以使用“Project”

菜单中的“NewμVisionProject”选项来创建项目。

一旦项目被保存,将保存如下信息:

●当前所有打开的文件。

●集成链接工具的设置。

●目标生成配置。

●主IDE窗口及已经打开的调试窗口的位置和大小。

●编辑器的设置如字体和文字颜色等。

2.1创建新项目

2.1.1选择【Project】/【NewμVisionProject】选项,并打开。

如图2-2。

2.1.2在弹出的“CreateNewProject”对话框中选择要保存项目文件的路径,如图2-3。

在“E盘”以自己的学号建立一文件夹,以后自己的实验程序都存在此文件夹中。

例如:

新文件夹为“”,然后单击“保存”按钮。

图2-2Project菜单

图2-3“CreateNewProject”对话框

2.1.3在弹出的“CreateNewProject”对话框中的“文件名”文本框中输入项目名,例如:

shiyan1(该文件名不要用数字开头),然后单击“保存”按钮。

如图2-4。

建立项目完成。

图2-4建立项目

2.1.4在弹出的对话框中要求选择单片机的型号。

在输入项目名称后单击确定后,会弹出器件选择窗口;

在此窗口中选择合适的CPU。

窗口中的器件按公司名称排列。

在此选择“AT89C51”的型号,点击“确定”完成选择

图2-5选择AT89C51型号

2.1.5弹出的对话框点击“确定”按钮后,会弹出的如图2-6的对话框,询问是否要将启动代码“StartupCode”加入到项目中。

点击“否”。

图2-6“StartupCode”

3.源程序编辑

IDE包括一个全功能的编辑器。

可用文件菜单中的“NewFile”命令来新建文件,或用文件工具栏中的“New”按钮,然后开始键入源程序。

只有当文件的扩展名为.asm或.c时,才具有源程序关键字符彩色显示功能。

可用文件保存按钮,或用文件菜单中的“Save”或“SaveAs”命令保存文件。

然后再将编辑好的源代码添加到项目中。

3.1建立一个新的实验源程序文件。

选择【File】/【New】选项,或者单击工具栏

按钮。

如果已经有源程序文件,可以忽略这一步。

3.2在弹出的程序文本框中输入一个简单的程序,如图2-7所示。

图2-7输入新的实验源程序

3.3程序输入完成后,要保存程序文件。

选择【File】/【Save】选项,或者单击工具栏

按钮,保存文件。

在弹出的对话框中选择要保存的路径,在“文件名”文本框中输入文件名。

注意一定要输入文件扩展名,如果是C程序文件,文件名为*.c;

如果是汇编文件,文件名为*.asm。

shiyan1.c,单击“保存”按钮。

注意一定要有扩展名.C。

#include“STC15F2K61S2.H”

#include<

stdio.h>

intrins.h>

unsignedchara[5]_at_0x50;

unsignedcharww0_at_0x30;

unsignedcharww1_at_0x31;

unsignedcharww2_at_0x32;

unsignedcharww3_at_0x33;

unsignedcharww4_at_0x34;

unsignedcharee0_at_0x40;

unsignedcharee1_at_0x41;

unsignedcharee2_at_0x42;

unsignedcharbdataBZW_at_0x20;

//标志位

sbitBB0=BZW^0;

//标志位0

sbitBB1=BZW^1;

//标志位1

sbitBB2=BZW^2;

//标志位2

unsignedcharxx;

yy;

zz;

inti,k,y,z,x;

voidmain()

{

ww0=0x95;

//存储器窗口察看30h

ww1=0xa6;

//察看31h

ww2=0xb7;

//察看32h

ww3=0x88;

//察看33h

ww4=0x08;

//察看34h

k=ww0+ww1+ww2+ww3+ww4;

//观察和堆栈窗口察看k=0x282

ww4=k/4;

//察看34h=0xa0

ee0=ww4/100;

//察看40h=0x01

xx=ww4%100;

//察看xx观察和堆栈窗口察看xx=0x3c

ee1=xx/10;

//察看41h=0x06

ee2=xx%10;

//察看42h=0x00

if(ee0>

2)

BB0=1;

//察看20h位0

if(ee1>

=5)

BB1=1;

//察看20h位1

if(ee2<

9)

BB2=1;

//察看20h位2

for(i=0,k=0x55;

i<

5;

i++,k++)

{

a[i]=k;

//察看存储器窗口(50h---54h)

}

ACC=0xa0;

//专用寄存器窗口察看A

B=0xbb;

//专用寄存器窗口察看B

switch(ACC+1)

{

case0xa1:

TL0=0x77;

TH0=0x88;

//存储器窗口察看8ah,8ch

break;

case0xa2:

TL0=0x33;

TH0=0x44;

//存储器窗口察看8ah,8ch

default:

TL0=0x11;

TH0=0x22;

break;

while

(1);

}

3.4将编辑好的源代码文件添加到项目中。

单击Target1前面的+号,展开里面的内容SourceGroup1,如图2-8所示。

3.5用右键单击SourceGroup1,在弹出的快捷菜单中选择AddFiletoGroup`Source

Group1`选项,如图2-9所示。

3.6如果是C文件,则选择“CSourcefile”;

如果是汇编文件,则选择“AsmSourcefile”,选择刚才源程序文件“shiyan1”,单击“Add”按钮,如果要添加多个文件,可以不断添加。

添加完毕后单击“Close”按钮,关闭该窗口,如图2-10。

图2-8Target展开图

图2-9AddFilestoGroup‘SourceGroup1’菜单

图2-10AddFilestoGroup‘SourceGroup1’对话框

3.7接下来要对目标进行一些设置。

用鼠标右键(注意用右键)单击Target1,在弹出的

会计菜单中选择OptionsforTarget“Target1”选项,如图2-11所示。

图2-11OptionsforTarget“Target1”选项

3.11选择设置Debug选项卡,这里有两类仿真形式可选:

UseSimulator和Use:

KeilMonitor-51Driver,前一种是纯软件仿真,后一种是带有Monitor-51目标仿真器的仿真。

如图2-12所示。

纯软件仿真仿真,选择“UseSimulator”即可。

图2-12设置Debug选项

4.源程序的编译和链接

编译程序,选择【Project】/【Rebuildalltargetfiles】选项.或者单击工具栏中的

按钮,开始编译程序。

如果编译成功,开发环境下面会显示编译成功的信息,图2-13;

如果不成功,图2-14,需修改程序语法等,选中图中程序错误的行,双击左键,则在程序编辑窗口中,在错误源代码所在的行处显示一标记,对程序错误进行修改,全部修改后,重新编译,直至编译成功。

图2-13编译成功

图2-14编译不成功

5.调试,运行程序菜单

5.1编译完毕之后,选择【Debug】/【Start/StopDebugSession】选项,或者单击工具栏中的

铵钮,即就进入调试环境,如图1-16,或图1-17,单击工具栏

铵钮,可在汇编程序与反汇编程序之间来回切换。

开始调试程序。

程序调试前应先要熟悉调试菜单Debug、调试命令,视图菜单View、项目菜单Project和项目命令Project。

见表1、表2、表3

5.2单步执行程序:

A.单击工具栏

铵钮,显示存储器窗口,在MEMORY#1中的/ddress窗口处输入:

D:

30H,然后按回车键,在程序执行过程中,注意观察RAM30H,31H,40H,41H,50H,51H,52HD1数据变化,

注意观察特殊功能寄存器的存数据变化情况。

(A,B,SP,DPTR,PC,PSW,R0—R7)。

B.单击工具栏

或快捷键F11,单步执行程序,观察RAM,特殊功能寄器“A”变化情况。

C.当单步执行程序到“while

(1);

”时,停止向下执行,原地踏步。

D.单击工具栏

复位。

E.重新单步执行程。

图2-15汇编程序

图2-16反汇编程序

5.2.2程序的修改

A.如果程序需要修改,单击工具栏

退出调试状态。

B.对程序进行修改,并保存

C.编译程序

D.重新开始调试程序。

5.2.3断点执行程序:

A.断点的设置:

单击要设置断点的程序行后,移动鼠标到工具栏,单击

,此时要设置断点的程序行前,显示一红色标记,断点设置完成。

可设置多个断点。

或快捷键F5,直到遇到一个中断后停止,

C.再次单击工具栏

或快捷键F5,程序从断点处开始向下执行程序。

D.断点的取消:

单击要取消设置断点的程序行后,移动鼠标到工具栏,单击

,此时设置断点的红色标记消除,断点被取消。

E.单击工具栏

5.2.3连续执行程序:

单击工具栏

或快捷键F5,连续执行程序,单击工具栏

或快捷键Esc,停止程序运行。

6.修改数据:

ww0=0x55;

//存储器窗口察看30h

ww1=0x77;

//察看31h

ww2=0xaa;

//察看32h

ww3=0x44;

//察看33h

ww4=0xdf;

//察看34h

ACC=0xa3;

//专用寄存器窗口察看A

//专用寄存器窗口察看B

7.重新调试。

表2-1视图菜单View。

菜单

工具栏

描述

StatusBar

显示/隐藏状态条

FileToolbar

显示/隐藏文件菜单条

BuildToobar

显示/隐藏编译菜单条

DebugToobar

显示/隐藏调试菜单条

ProjectWindow

显示/隐藏项目窗口

OutputWindow

显示/隐藏输出窗口

SourceBrowser

打开资源浏览器

DisassemblyWindow

显示/隐藏反汇编

Watch&

CallStackWindow

显示/隐藏观察和堆栈窗口

MemoryWindow

显示/隐藏存储器窗口

CodeCoverageWindow

显示/隐藏代码报告窗口

PerformanceAnalyzerWindow

显示/隐藏性能分析窗口

SymbolWindow

显示/隐藏字符变量窗口

SerialWindow#1

显示/隐藏串口1的观察窗口

SerialWindow#2

显示/隐藏串口2的观察窗口

Toolbox

显示/隐藏自定义工具栏窗口

PeriodicWindowUpdate

程序运行时刷新观察窗口

WorkbookMode

显示/隐藏窗口框架模式

Options...

设置颜色,字体,快捷键和编辑器的选项

表2项目菜单Project和项目命令Project

快捷键

NewProject⋯

创建新项目

ImportμVision1

Project⋯

转化μVision1的项目

OpenProject⋯

打开一个已经存在的项目

CloseProject⋯

关闭当前的项目

TargetEnvironment

定义工具、包含文件和库的路径

Targets,Groups,Files

维护一个项目的对象、文件组和文件

SelectDeviceforTarget

选择对象的CPU

Remove⋯

从项目中移走一个组或文件

Options⋯

Alt+F7

设置对象、组或文件的工具选项

FileExtensions

选择不同文件类型的扩展名

BuildTarget

F7

编译修改过的文件并生成应用

RebuildTarget

重新编译所有的文件并生成应用

Translate⋯

Ctrl+F7

编译当前文件

StopBuild

停止生成应用的过程

1~7

打开最近打开过的项目

表3调试菜单和调试命令Debug

Start/StopDebugging

Ctrl+F5

开始/停止调试模式

Go

F5

运行程序,直到遇到一个中断

Step

F11

单步执行程序,遇到子程序则进入

Stepover

F10

单步执行程序,跳过子程序

Stepoutof

Ctrl+F11

执行到当前函数的结束

Currentfunctionstop

Runing

Esc

停止程序运行

Breakpoints⋯

打开断点对话框

Insert/RemoveBreakpoint

设置/取消当前行的断点

Enable/DisableBreakpoint

使能/禁止当前行的断点

DisableAllBreakpoints

禁止所有的断点

KillAllBreakpoints

取消所有的断点

ShowNextStatement

显示下一条指令

Enable/DisableTrace

Recording

使能/禁止程序运行轨迹的标识

ViewTraceRecords

显示程序运行过的指令

MemoryMap⋯

打开存储器空间设置对话框

PerformanceAnalyzer⋯

打开设置性能分析的窗口

InlineAssembly⋯

对某一行重新汇编,可以修改汇编代码

FunctionEditor⋯

编辑调试函数和调试设置文件

ResetCPU

复位CPU

实验3

数据排序

1.熟悉51单片机体系结构,掌握程序设计方法。

2.掌握排序程序的设计方法。

1.本例程采用交换排序法将内部RAM中的30~39H单元中的10个单字节无符号二进制数按从小到大的次序排列;

2.将排序后的数据中的最大的一个数和最小一个数去掉,求其他八个数的和,和放40H,41H中,求这八个数的平均值,放在50H中。

3.数据排序可采用:

冒泡法、插入法等C语言8大经典排序算法。

1.用C语言编写程序。

2.编译、生成项目、下载程序,调试运行程序。

3.用单步、断点、连续执行程序的方法调试程序。

4.打开RAM数据窗口,分别观察看30H—39H、40H,41H(02H)(0C0H)和50H(58H)的单元。

四、程序设计指导

1.变量名是内存中存储空间的地址别名,指定将变量创建到内存的存储空间地址的方法如下:

(1)dataunsignedchara[10]_at_0x30;

//片内地址0x30上定义数组a

(2)#definexDBYTE[0x40];

//片内地址0x40上定义字节变量x

2.求和时,注意数据溢出问题:

比如将字节类型的两个变量a,b相加,此时a和b的最大值为28-1,两者相加后肯定大于28。

所以应该如下处理(变量存储长度加大):

unsignedchara,b;

intx;

……

x=a+b;

实验4

数据搬运

1.熟悉51单片机存储结构,掌握程序设计方法。

2.掌握单片机内的数据搬运。

1.将程序存储器的数据搬运到数据存储区。

2.数据存储区内的数据搬运。

4.打开CODE和RAM数据窗口,对照观察源地址与目标地址的数据是否一致。

1.源数据或目标数据可采用数组或指针

2.采用循环结构实现

实验5

汇编程序实验

1.了解51单片机指令系统

2.了解51汇编程序设计。

1.了解汇编语言编程。

查阅相关资料,尝试汇编程序调试一下题目:

2.调试,并记录实验结果

3.编写源程序,并保存(扩展名用asm)。

实验6

C8051F020单片机基本配置方法

1.熟悉C8051F优先权交叉开关译码器,掌握I/O口交叉开关设置和引脚配置。

2.了解C8051F单片机内部和外部振荡器结构和配置方法。

1.C8051F020单片机系统时钟配置为外部晶体振荡器。

2.I/O口交叉开关配置。

SPI、T0、T1、/INT0和/INT1分配端口引脚。

将P1.5、P1.6和P1.7配置为模拟输入。

3.在P2.1输出一个矩形波,用示波器观察波形,并记录信号频率幅度;

改变系统时钟为外部晶体振荡器的二分频,再次记录信号频率和幅度。

要求:

1.程序调试过程中,要充分利用开发环境提供的调试工具。

(1)用单步调试的方式,观察单片机的运行过程;

用开发环境提供的资源观察窗口,查看P2.1引脚的逻辑状态。

(2)用全速运行查看程序运行的效果。

三、实验说明

通过本实验,进一步初步熟悉KeiluVision4开发环境的使用;

了解C8051F020单片机的I/O口交叉开关和振荡器及配置使用;

了解C语言程序设计和调试方法。

四、实验仪器和设备

PC机,KeiluVision4软件,C8051F020开发板,EC5在线仿真器。

五、实验原理及参考程序流程图

1.C8051F系列MCU振荡器

每个C8051F系列MCU都有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都能产生系统时钟,MCU在复位后从内部振荡器启动。

系统时钟可在内部振荡器和外部振荡器之间进行切换。

也可以在选择内部振荡器时让外部振荡器保持在允许状态,这样可以避免在系统时钟被切换到外部振荡器时的启动延迟。

外部振荡器具有很高的可配置性,为系统设置者提供了多种选择。

时基信号可以从外部CMOS电平时钟源、晶体或陶瓷谐振器、RC组合电路或外部电容获得。

内部和外部振荡器的工作受两个SFR寄存器控制,即OSCICN内部振荡器控制寄存器和OSCXCN外部振荡器控制寄存器。

2.C8051F020交叉开关配置

C8051F020单片机内部的数字和模拟资源可以通过P0~P3,32个I/O引脚使用。

每个端口引脚都可以被定义为通用I/O(GPIO),又可以分配给一个数字外设或功能(例如:

UART0或/INT1),如图所

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

当前位置:首页 > PPT模板 > 商务科技

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

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