单片机实验教材石伟.docx
《单片机实验教材石伟.docx》由会员分享,可在线阅读,更多相关《单片机实验教材石伟.docx(22页珍藏版)》请在冰豆网上搜索。
![单片机实验教材石伟.docx](https://file1.bdocx.com/fileroot1/2022-12/15/ebbbc390-118d-4df7-800b-d365e3e72de5/ebbbc390-118d-4df7-800b-d365e3e72de51.gif)
单片机实验教材石伟
《单片机原理与应用》
实验指导书
湖南工业大学
电气与信息工程学院
实验要求
1、实验前必须做好预习,并写出预习报告和绘制相关表格,明确实验的目的、内容和步骤,了解仪器设备的操作规程和实验设备的特性。
2、实验课不得迟到早退。
3、进入实验室,必须衣着整洁、保持安静、爱护财物,保持实验室清洁,严禁喧哗、打闹、吸烟、吃零食、随地吐痰。
4、遵守实验室规则,服从教师指导,按规定和步骤进行实验。
实验过程中,应正确操作,认真观察并如实记录,认真观察和分析实验现象,如实记录实验数据,不得抄袭他人的实验数据、结果,实验结果须经实验指导人员认可。
5、注意安全,严格遵守操作规程。
所有的实验电路严禁带电接线、拆线、改接线路。
严禁违反用电安全规程和指导老师指明的注意事项作业。
爱护仪器设备,节约用电、元器件等。
不许动用与本实验无关的仪器设备及其他物品,不准私自将公物带出实验室。
6、在实验过程中随时观察仪器设备运行情况,如发现有超量程、过热、异味、冒烟、火花等现象,应立即断电然后报告指导老师检查处理。
凡违反操作规程或不听从指导而造成仪器设备损坏等事故者,必须写出书面检查,并按学校有关规定赔偿损失。
7、在电路通电的情况下,人体严禁接触电路中不绝缘的金属导线或连接点带电部位,万一遇到触电事故,应立即切断电源,进行必要处理。
8、实验时应精力集中,同组者必须密切配合,接通电源前必须通知同学,以防触电。
9、实验完毕后,应做好仪器设备的复位工作、主动协助指导教师整理好实验室,切断电源,清洁实验台面和仪器设备,清扫实验场地,得到实验指导人员的允许后方可离开实验室。
10、按指导教师要求及时认真完成实验报告。
凡实验报告不合要求者,该实验按不合格处理。
实验成绩不及格者,不得参加本门课程的考试。
目录
第1章软件实验项目4
实验一存储器读写4
实验二数据排序实验6
第2章硬件实验项目9
实验一I/O端口操作9
实验二定时中断10
实验三外部中断实验11
实验四计数器实验13
实验五 RS232通信实验15
第3章课程设计17
第4章μVision开发环境简介18
第5章Proteus7仿真软件介绍21
第1章软件实验项目
实验一存储器读写
一、实验目的:
1、掌握寄存器、存储器读写等汇编指令;
2、掌握编程软件编辑、编译、调试等基本操作;
3、学习简单程序的基本调试方法。
二、实验内容:
将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:
ORG0000H
SJMPSTART
ORG0030H
START:
MOV70H,#00H
MOV71H,#01H
MOV72H,#02H
MOV73H,#03H
MOV74H,#04H
MOV75H,#05H
MOV76H,#06H
MOV77H,#07H
MOV78H,#08H
MOV79H,#09H
MOV7AH,#0AH
MOV7BH,#0BH
MOV7CH,#0CH
MOV7DH,#0DH
MOV7EH,#0EH
MOV7FH,#0FH
MOVR1,#10H
MOVR0,#70H
MOVDPTR,#2000H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR1,LOOP
END
三、上机操作及调试步骤
1、启动PC机,打开KEIL软件,软件设置为模拟调试状态。
在所建的Project文件中添加Tran.ASM文件,打开Tran.ASM文件,阅读、分析、理解程序,编译程序进行调试。
2、打开VIEW菜单中打开MEMORYWINDOW数据窗口,分别观察70H(在MEMORY#1中输入D:
70H并在其中输入任意的值)、2000H(MEMORY#2窗口输入X:
2000H)。
运行程序,观察内外70H和2000H的相对应的数据区的数据是否一致。
3、可单步执行程序,观察数据传送过程。
四、实验报告
1、说明实验操作的基本步骤;
2、为每一条汇编指令写出中文注释;
3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、内部存储器(70H—7FH单元)、外部存储器(2000H—200FH单元)的数据变化。
实验二数据排序实验
一、实验目的
掌握排序程序的设计方法。
二、实验内容
本例程采用交换排序法将内部RAM中的50~59H单元中的10个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部RAM1000H开始处。
三、实验步骤
1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。
在所建的Project文件中添加Order.ASM文件,打开Order.ASM文件,阅读、分析、理解程序,编译程序进行调试。
2)在VIEW菜单中打开MEMORYWINDOW数据窗口,分别观察50H(在MEMORY#1中输入D:
50H)、1000H(MEMORY#2窗口输入X:
1000H)
3)可在程序指令NOP处设置断点,在第一个断点处可观察50~59H单元内容是否为10个任意排列原始数据。
4)在第二个断点处可观察每次排序的结果。
5)可单步执行程序观察排序过程。
四、实验参考程序
ORG0000H
JMPMAIN
ORG0100H
MAIN:
MOVR0,#50H
MOV@R0,#5FH
INCR0
MOV@R0,#56H
INCR0
MOV@R0,#5AH
INCR0
MOV@R0,#5EH
INCR0
MOV@R0,#51H
INCR0
MOV@R0,#5BH
INCR0
MOV@R0,#53H
INCR0
MOV@R0,#58H
INCR0
MOV@R0,#57H
INCR0
MOV@R0,#55H;将10个随机数送入内部RAM的50~59H单元
NOP;可在此处设置断点
ACALLQUE;调用排序子程序
OUT:
MOVR0,#50H
MOVDPTR,#1000H
MOVR7,#10
OUT1:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR7,OUT1
HERE:
AJMPHERE
NOP;可在此处设置断点,观察每次排序结果
QUE:
CLR00H;清交换标志
MOVR1,#50H
MOVR6,#09H
I3:
MOVA,R6
MOVR7,A
MOVA,R1
MOVR0,A
MOVA,@R0
I2:
INCR0
MOVR2,A
SUBBA,@R0
MOVA,R2
JCI1
SETB00H
XCHA,@R0
I1:
DJNZR7,I2
JNB00H,STOP
MOV@R1,A
INCR1
DJNZR6,I3
RET
END
第2章硬件实验项目
实验一I/O端口操作
一、实验目的:
1、掌握I/O端口读写等基本汇编指令;
2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。
二、实验内容:
编写一段汇编程序,使与单片机IO口(具体IO口由自己的硬件电路决定)相连的发光二极管D2-D9循环点亮,亮灭时间必须大于0.5秒。
能做出花样的加分。
三、实验步骤:
1、参考下图,用PROTEUS完成单片机硬件电路设计
图2.1单片机硬件电路设计
2、用keil软件完成发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成16进制文件(.HEX),加载到PROTEUS中仿真验证。
四、延时参考程序:
DE02S:
MOVR5,#02;延时0.2秒
DE1:
MOVR6,#200
DE2:
MOVR7,#126
DE3:
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
RET
实验二外部中断实验
一、实验目的
1.掌握外部中断技术的基本使用方法
2.掌握中断处理程序的编写方法
二、实验内容
每按一次中断按钮(6/INT0)产生依次中断,并将中断累加次数用LED灯(D2-D9)予以显示。
三、实验说明
1)外部中断的初始化设置共有三项内容:
中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。
中断方式设置一般有两种方式:
电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。
因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入,本实验由INT0(P3.2)引入。
2)中断服务的关键:
a、保护进入中断时的状态。
堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。
b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。
c、用POP指令恢复中断时的现场。
3)中断控制原理:
中断控制是提供给用户使用的中断控制手段。
实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:
TCON、IE、SCON及IP。
4)中断响应的过程:
首先中断采样然后中断查询最后中断响应。
采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。
所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。
中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。
实验三定时中断
一、实验目的:
1、熟悉单片机定时器工作原理;
2、掌握定时器定时控制的编程方法。
二、实验基本原理
1、定时/计数器工作原理
图2.2定时/计数器原理图
(1)定时时间的求取。
例:
设单片机晶振频率为12MHZ,定时时间为1s,求时间常数?
定时器计数周期=12/fosc=1us,1s/1us=1000000,显然已经超出16位计数器的范围,只能采用软件定时和硬件定时相结合的办法。
每次定时50ms,经过20次中断取反P2.3
因此,计数初值=65536-50000=15536=3CB0H
(2)定时/计数器初始化
三、实验内容:
编写一段汇编程序,使单片机P2.3口输出一段时钟周期为2s的方波。
要求采用T1中断方式,工作方式1。
用PROTEUS软件完成仿真电路设计,并进行硬件下载验证。
实验四数码管显示实验
一、实验目的
学会数码管动态扫描显示方法
二、实验要求
设计一个0-255计数器,计满后自动清0并重新计数;
将计数结果用三个数码管显示
三、设计思路
1.255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。
然后对TL1的内容进行相应的二进制---十进制转换;
2.二进制--十进制转换:
首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。
3.将相应的十进制数进行七段查表译码,并在数码管上进行动态扫描显示出来。
实验五 RS232通信实验
一、实验目的
1.了解8051串行口的工作原理以及发送的方式。
2.了解PC机通讯的基本要求。
二、实验说明
8051串行口经RS232电平转换后,与PC机串行口相连。
PC机使用串口调试应用程序V2.2.exe,实现上位机与下位机的通讯。
本实验使用查询法接收和发送资料。
上位机发出指定字符,下位机收到后返回原字符。
波特率设为4800。
三、实验内容及步骤
1.用串口连接线将PC机与单片机开发板连接好(市面上连接线有平行线和交叉线两种,选择时要依据单片机硬件电路进行选择)。
2.在所建的Project文件中添加“8051通信.ASM”,编译无误后,全速运行程序。
2.打开串口调试V2.2.exe应用程序,选择下列属性:
(注意选择通信串口)
波特率——4800数据位——8
奇偶校验——无停止位——1
在V2.2.exe‘发送的字符/数据’区输入一个字符/数据,点击手动发送或自动发送,接收区收到相同的字符/数据。
四、实验参考程序:
汇编程序:
ORG0000H
JMPSTART
ORG30H
START:
MOVSP,#60H
MOVSCON,#01010000B;串行方式1,8位异步,允许接收
MOVTMOD,#20H;设定计数器1为模式2
ORLPCON,#10000000B;波特率加倍
MOVTH1,#0F4H;设定波特率为4800
MOVTL1,#0F4H;如晶振为11.0592MHz,则初值为#0F4H
SETBTR1;计数器1开始计时
AGAIN:
JNBRI,$;等待接收
CLRRI;清接收标志
MOVA,SBUF;接收数据缓冲
NOP
MOVSBUF,A;送发送数据
JNBTI,$;等待发送完成
CLRTI;清发送标志
SJMPAGAIN
END
C51程序:
#Include
Charsw;
VOIDUARTINIT(VOID)
{
TMOD=0X20;
TL1=0XF4;
TH1=0XF4;
SCON=0X50;
PCON=0X80;
}
Main()
{
UARTINIT();
TR1=1;
while
(1)
{
while(RI==0);
RI=0;
sw=SBUF;
SBUF=sw;
while(TI==0);
TI=0;
}
}
第3章课程设计
设计任务:
编写十字路口交通灯控制程序,模拟十字路口交通灯的工作流程。
功能要求:
1东西南北方向都有红绿黄灯交替显示,交替顺序为绿—黄—红,黄灯时间固定3秒
2红绿黄灯的建议分配方案
D2:
东西红灯D3:
东西黄灯D4:
东西绿灯
D7:
南北红灯D8:
南北黄灯D9:
南北绿灯
3时间分配方案:
东西方向绿灯时间40秒;南北方向绿灯时间20秒
4数码管显示分配方案
左边两个数码管:
显示南北方向剩余时间
右边两个数码管:
显示东西方向剩余时间
延时参考程序:
DE10S:
MOVR5,#100;延时10秒
JMPDE1
DE3S:
MOVR5,#30;延时3秒
JMPDE1
DE02S:
MOVR5,#02;延时0.2秒
DE1:
MOVR6,#200
DE2:
MOVR7,#126
DE3:
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
RET
第4章μVision开发环境简介
μVision4IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、项目管理器和一个MAKE工具。
其中KeilC51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
μVision4的界面如图4.1所示,它有一般软件的典型风格,如菜单栏和快捷工具栏,另外还可以打开工程窗口和对应的文件编辑窗口、运行信息显示窗口、存储器信息显示窗口及调试信息显示窗口等。
图4.1μVision4界面
1.建立项目工程
μVision4包括一个项目管理器,它可以使80X51应用系统的设计变得简单。
要创建一个应用,需要按下列步骤进行操作:
(1)启动μVision4,新建一个项目文件并从器件库中选择一个器件。
单击Project→NewProject选项,在弹出的窗口中输入准备建立的工程文件名,其后缀名系统会自动添加为*.uvproj。
同时系统会要求选择单片机芯片型号。
KeilC51几乎支持所有的51核的单片机,设计者可以根据使用的单片机型号来选择。
(2)用文本编辑器编写源文件。
源文件可以包括汇编语言源文件、C语言源文件、库文件等。
不过不同类型的源文件的扩展名不同,C语言程序文件扩展名为*.c,汇编文件扩展名为*.asm。
(3)添加源文件。
右击SourceGroup1,在弹出的快捷菜单中选择AddFiletoGroupSourceGroup1选项,就可将多个源文件添加到项目工程中。
2.配置项目工程
工程的配置是编译成目标程序的关键,所以在编译前一定要对工程进行正确的配置。
右击Target1,在弹出的菜单中选择OptionsforTarget‘Target1’选项,弹出OptionsforTarget‘Target1’对话框,如图4.2所示。
该对话框有8个选项卡,为了让读者能尽快使用软件,下面就3个主要选项进行介绍。
(1)Target选项:
外围硬件设置
Xtal(MHz):
设置单片机工作的频率,默认是24.0MHz。
图4.2编译设置界面
UseOn-chipROM(0x0-0xFFF):
表示使用片上的FlashROM,如果单片机的
引脚接高电平,则选中这个选项,表示使用内部ROM;如果
引脚接低电平,则不选中该项。
Off-chipCodememory:
表示片外ROM的开始地址和大小,最多可以外接3块ROM。
如果没有外接程序存储器,那么不需要输入任何数据。
Off-chipXdatamemory:
外接Xdata数据存储器的起始地址和大小。
CodeBanking:
如果代码超过64KB,那么就要使用CodeBanking技术,以支持更多的程序空间,最大可以有2MB的程序代码。
MemoryModel:
有Small、Compact和Large三种存储类型。
一般使用Small来存储变量,此时单片机优先将变量存储在内部RAM里,如果内部RAM空间不够,才会存在外部RAM中。
(2)Output选项:
输出文件格式设置
SelectFolderforObjects:
单击该按钮可以选择编译后目标文件的存储目录,如果不设置,就存储在项目文件的目录里。
NameofExecutable:
设置生成的目标文件的名字,默认情况下和项目的名字一样。
CreateExecutable:
如果要生成OMF及HEX文件,一般选中DebugInformation和BrowseInformation。
选中这两项,才有调试所需的详细信息,比如要调试C语言程序,如果不选中,调试时将无法看到高级语言写的程序。
CreateHEXFile:
编译后要生成HEX执行代码文件,一定要选中该选项。
CreateLibrary:
选中该项时将生成lib库文件。
一般应用是不需要的。
(3)Debug选项:
调试方式设置
这里有两类仿真形式可选:
UseSimulator和UseKeilMonitor-51Driver,前一种是纯软件仿真,后一种是带有Monitor-51目标仿真器的仿真。
LoadApplicationatStart:
选择该项Keil会自动装载程序代码。
Gotillmain:
调试C语言程序时可以选择该项,PC会自动运行到main程序处。
要创建一个应用,需要按下列步骤进行操作:
(1)建立文件夹:
LED。
(2)启动μVision4,选择Project→NewProject选项,新建一个项目文件,并从器件库中选择一个单片机芯片,如Atmel公司的AT89C51。
(3)选择File→New选项建立一个汇编或C文件,如果已经有源程序文件,可以忽略这一步。
(4)右击SourceGroup1,在弹出的快捷菜单中选择AddFiletoGroup‘SourceGroup1’选项,将源文件添加到项目中。
(5)在Project菜单的下拉选项中,单击OptionsforTarget‘Target1’选项,完成以下设置:
单片机工作频率设置为11.0592MHz;
Output标签下的CreateHEXFile前小框中要打钩;
在Debug标签下选择UseSimulator(软件模拟)。
(7)选择Project→RebuildallTargetfile选项完成汇编。
(8)在Debug菜单选项中单击Start/StopDebugSession进入调试状态。
(9)在Debug菜单下选择Step(单步)运行方式,可以实时观察程序运行状态;如果选择Run,则程序进入到连续运行方式。
第5章Proteus7仿真软件介绍
安装完Proteus后,运行ISIS7Professional,进入仿真软件的主界面,如图5.1所示。
主界面分为菜单栏,工具栏,模型选择元器件栏,原理图编辑窗口,预览窗口,元器件列表区,方向工具栏,仿真工具条栏。
下面简单介绍其各部分的功能。
图3.1Proteus的用户界面
1.原理图编辑窗口
原理图编辑窗口用来绘制电路原理图,与其他WINDOWS应用软件不同,这个窗口是没有滚动条的,可以在左上角的预览窗口来改变原理图的可视范围。
2.预览窗口
预览窗口可以显示两个内容:
在元器件列表中选择一个元器件时,它会显示该元器件的预览图;当鼠标焦点落在原理图编辑窗口时,会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色方框里面的内容就是当前原理图窗口中显示的内容,因此可以用鼠标单击来改变绿色方框的位置,从而改变原理图的可视范围。
3.模型选择元器件栏
模型选择元器件栏分为主要模型、配件、2D图形3个部分,各部分的功能如下:
(1)主要模型部分由上向下功能如下。
:
用于即时编辑元器件参数(先单击该图标再单击要修改的元件)。
:
选择元器件。
:
放置连接点。
:
放置标签(相当于网络标号)。
:
放置文本。
:
用于绘制总线。
:
用于放置子电路。
(2)配件部分由上向下功能如下。
:
终端接口,有Vcc、地、输出、输入等接口。
:
器件引脚,用于绘制各种引脚。
:
仿真图表,用于各种分析,如NoiseAnalysis。
:
录音机。
:
信号发生器。
:
电压探针,使用仿真图表时用到。
:
电流探针,使用仿真图表时用到。
:
虚拟仪表:
示波器等。
(3)2D图形部分由上向下功能如下。
:
画各种直线。
:
画各种方框。
.
:
画各种圆。
:
画各种圆弧。
:
画各种多边形。
:
画各种文本。
:
画符号。
:
画原点等。
4.元器件列表区
元器件列表区用于选择元器件、终端接口、信号发生器等。
例如,单击元器件选择按钮P会打开挑选元器件对话框,选择了一个元器件后(单击了OK按钮后),该元器件会在元器件列表中显示,以后要用到该元器件时,只需要在元器件列表区中选择即可。
5.方向工具栏
方向工具栏有旋