单片机原理实验与实践实验指导书.docx
- 文档编号:18610369
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:28
- 大小:289.46KB
单片机原理实验与实践实验指导书.docx
《单片机原理实验与实践实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机原理实验与实践实验指导书.docx(28页珍藏版)》请在冰点文库上搜索。
单片机原理实验与实践实验指导书
单片机原理实验与实践
实验指导书
赵艳秋、王广义等编著
自动化学院自动化实验室
2005年10月
目录
第一部分KEIL命令说明2
一.主要菜单说明2
1.文件菜单和命令(File)2
2.编辑菜单和编辑器命令(Edit)2
3.选择文本命令3
4.视图菜单(View)3
5.工程菜单和工程命令(Project)3
6.调试菜单和调试命令(Debug)4
7.外围设备菜单(Peripherals)4
8.工具菜单(Tool)5
9.软件版本控制系统菜单(SVCS)5
10.视窗菜单(Window)5
11.帮助菜单(Help)5
二.简单程序的调试6
第二部分实验指导8
实验一Keil软件开发环境的认识8
实验二软件编程(排序)9
附:
仿真调试的准备10
实验三单片机简单I/O口控制12
实验四单片机的蜂鸣器控制13
实验五串并口转换和译码实验15
实验六LED扫描输出实验17
实验七使用8155扩展I/O、RAM及定时器实验18
实验八并行的模数转换实验20
实验九并行的数模转换实验22
实验十键控数字时钟设计实验25
第一部分KEIL命令说明
一.主要菜单说明
1.文件菜单和命令(File)
菜单快捷键描述
NewCtrl+N创建新文件
OpenCtrl+O打开已经存在的文件
Close关闭当前文件
SaveCtrl+S保存当前文件
Saveas另取名保存文件
Saveall保存所有文件
DeviceDatabase管理器件库
PrintSetup打印机设置
PrintCtrl+P打印当前文件
PrintPreview打印预览
1-9打开最近用过的文件
Exit退出uVision2提示是否保存文件
2.编辑菜单和编辑器命令(Edit)
菜单快捷键描述
Home移动光标到本行的开始
End移动光标到本行的末尾
Ctrl+Home移动光标到文件的开始
Ctrl+End移动光标到文件的结束
Ctrl+<-移动光标到词的左边
Ctrl+->移动光标到词的右边
Ctrl+A选择当前文件的所有文本内容
UndoCtrl+Z取消上次操作
RedoCtrl+Shift+Z重复上次操作
CutCtrl+X剪切选取文本
Ctrl+Y剪切当前行的所有文本
CopyCtrl+C复制选取文本
PasteCtrl+V粘贴
IndentSelectedText选取文本右移一个制表符距离
UnindentSelectedText将选取文本左移一个制表符距离
ToggleBookmarkCtrl+F2设置/取消当前行的标签
GotoNextBookmarkF2移动光标到下一个标签处
GotoPreviousBookmarkShift+F2移动光标到上一个标签处
ClearAllBookmarks清除当前文件的所有标签
FindCtrl+F在当前文件中查找文本
F3向前重复查找
Shift+F3向后重复查找
Ctrl+F3查找光标处的单词
ReplaceCtrl+H替换特定的字符
FindinFiles在多个文件中查找
GotoMatchingBrace寻找匹配大括号圆括号方括号
3.选择文本命令
在uVision2中,你可以通过按住Shift键和相应的光标操作键来选择文本。
如Ctrl+→是移动光标到下一个词,那么,Ctrl+Shift+ →就是选择当前光标位置到下一个词的开始位置间的文本.
当然,你也可以用鼠标来选择文本,操作如下:
要选择鼠标操作
任意数量的文本在你要选择的文本上拖动鼠标
一个词双击此词
一行文本移动鼠标到此行左边,直到鼠标变成右指向的箭头,然后单击
多行文本移动鼠标到此行最左边直到鼠标变成右指向的箭头然后相应拖动
一个距形框中的文本按住Alt键然后相应拖动鼠标
4.视图菜单(View)
菜单快捷键描述
StatusBar显示/隐藏状态条
FileToolbar显示/隐藏文件菜单条
BuildToolbar显示/隐藏编译菜单条
DebugToolbar显示/隐藏调试菜单条
ProjectWindow显示/隐藏工程窗口
OutputWindow显示/隐藏输出窗口
SourceBrowser打开资源浏览器
DisassemblyWindow显示/隐藏反汇编窗口
Watch&CallStackWin显示/隐藏观察和堆栈窗口
MemoryWindow显示/隐藏存储器窗口
CodeCoverageWindow显示/隐藏代码报告窗口PerformanceAnalyzerWindow显示/隐藏性能分析窗口
SymbolWindow显示/隐藏字符变量窗口
SerialWindow#1显示/隐藏串口1的观察窗口
SerialWindow#2显示/隐藏串口2的观察窗口
Toolbox显示/隐藏自定义工具条
PeriodicWindowUpdate程序运行时刷新调试窗口
WorkbookMode工作本框架模式
Options设置颜色.字体.快捷键和编辑器的选项
5.工程菜单和工程命令(Project)
菜单快捷键描述
NewProject创建新工程
ImportuVision1Project转化uVision1的工程
OpenProject打开一个已经存在的工程
CloseProject关闭当前的工程
TargetEnvironment定义工具包含文件和库的路径
Targets,Groups,Files维护工程的对象文件组和文件
FileExtensions选择不同文件类型的扩展名
SelectDeviceforTarget选择对象的CPU
Remove从工程中移走一个组或文件.
OptionsAlt+F7设置对象组或文件的工具选项
ClearGroupandFile…清除文件组和文件属性
BuildTargetF7编译修改过的文件并生成应用
RebuildTarget重新编译所有的文件并生成应用
TranslateCtrl+F7编译当前文件
StopBuild停止生成应用的过程
1-10打开最近打开过的工程
6.调试菜单和调试命令(Debug)
菜单快捷键描述
Start/StopDebuggingCtrl+F5开始/停止调试模式
GoF5运行程序直到遇到一个中断
StepF11单步执行程序遇到子程序则进入
StepoverF10单步执行程序跳过子程序
StepoutofCtrl+F11执行到当前函数的结束
Currentfunction
RuntoCursorline运行到光标行
StopRunningESC停止程序运行
Breakpoints打开断点对话框
Insert/RemoveBreakpoint设置/取消当前行的断点
Enable/DisableBreakpoint使能/禁止当前行的断点
DisableAllBreakpoints禁止所有的断点
KillAllBreakpoints取消所有的断点
ShowNextStatement显示下一条指令
Enable/DisableTraceRecording使能/禁止程序运行轨迹的标识
ViewTraceRecords显示程序运行过的指令
MemoryMap打开存储器空间配置对话框
PerformanceAnalyzer打开设置性能分析的窗口
InlineAssembly对某一个行重新汇编可以修改汇编代码
FunctionEditor编辑调试函数和调试配置文件
7.外围设备菜单(Peripherals)
菜单快捷键描述
ResetCPU复位CPU
Interrupt打开片上外围器件的设置对话框
I/O-Ports对话框的种类及内容依赖于你选择的CPU
Serial串口观察
Timer定时器观察
8.工具菜单(Tool)
利用工具菜单,你可以配置,运行GimpelPC-Lint,SiemensEasy-Case和用户程序。
通过CustomizeToolsMenu菜单,你可以添加你想要添加的程序。
菜单快捷键描述
SetupPC-Lint配置GimpelSoftware的PC-Lint程序
Lint用PC-Lint处理当前编辑的文件
LintallCSourceFiles用PC-Lint处理工程中所有的C源代码文件
SetupEasy-Case配置Siemens的Easy-Case程序
Start/StopEasy-Case运行/停止Siemens的Easy-Case程序
ShowFile(Line)用Easy-Case处理当前编辑的文件
CustomizeToolsMenu添加用户程序到工具菜单中
9.软件版本控制系统菜单(SVCS)
用此菜单来配置和添加软件版本控制系统的命令
菜单快捷键描述
ConfigureVersionControl配置软件版本控制系统的命令
10.视窗菜单(Window)
菜单快捷键描述
Cascade以互相重叠的形式排列文件窗口
TileHorizontally以不互相重叠的形式水平排列文件窗口
TileVertically以不互相重叠的形式垂直排列文件窗口
ArrangeIcons排列主框架底部的图标
Split把当前的文件窗口分割为几个
1-9激活指定的窗口对象
11.帮助菜单(Help)
菜单快捷键描述
VisionHelp打开在线帮助
AboutVision显示版本信息和许可证信息
二.简单程序的调试
学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习KeilC51软件的基本使用方法和基本的调试技巧。
1).建立一个新工程
单击Project菜单,在弹出的下拉菜单中选中NewProject选项。
2).然后选择你要保存的路径,输入工程文件的名字,比如保存到51-exam目录里,工程文件的名字为exam5-1。
然后点击保存.
3).这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keilc51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.
4).完成上一步骤后,到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5).在菜单中,单击“File”菜单,再在下拉菜单中单击“New”选项。
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“SaveAs”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮。
6).回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出菜单。
然后单击“AddFiletoGroup‘SourceGroup1’”选中你的源文件(*.asm),然后单击“Add ”进行添加。
注意到“SourceGroup1”文件夹中多了一个子项“*.asm”了吗?
子项的多少与所增加的源程序的多少相同。
7).现在,请输入如下的asm语言源程序:
;**************************************
;*P1口实验一EXAM5.ASM*
;*用P1口驱动8只LED发光管移位显示*
;**************************************
ORG0000H
JMPSTART
ORG0030H
START:
MOVA,#01H;先让第一个发光二极管点亮
LOOP:
MOVP1,A;从P1口输出到发光二极管
MOVR1,#5;延时0.5秒
DEL1:
MOVR2,#200
DEL2:
MOVR3,#123
DEL3:
DJNZR3,DEL3
DJNZR2,DEL2
DJNZR1,DEL1
RLA;左移一位,点亮下一个发光二极管
JMPLOOP
END
在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keilc51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
8).单击“Project”菜单,再在下拉菜单中单击“OptionsforTarget‘Target1’,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,供仿真器使用。
然后,单击“Debug”中,选中“UseSimulator”为软件仿真;选中“TKStudyEmulator”选择硬件仿真,接着单击“Settings”设置串口波特率。
波特率为115200bps.
到此我们完成了在线仿真器使用设置。
最后,点击“确定”加以确认。
回到主菜单,点击Project菜单中Rebuildalltargetfiles进行编辑及连接,如有错误同时进行修改,直到没有错误为止(显示为0Error(s),0Warning(s));回到IDE界面点单击debug菜单中Start/StopDebugSession(Ctrl+F5)代码下载至仿真器后,您可以根据需要进行单步、断点、全速运行,可参考变量、RAM变得观察。
9).单击“Project”菜单,再在下拉菜单中单击“BuiltTarget”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5).
10).点击RUN键(全速运行)运行监控程序,然后监控程序执行后,执行用户程序.
11).调试程序:
可对汇编程序进行单步、宏单步、断点和全速运行调试.
第二部分实验指导
实验一Keil软件开发环境的认识
一.实验目的:
熟悉Keil软件开发环境:
包括新工程的建立,器件的选择,新文件的建立与保存,源文件的编译,调试等。
1)调试例程软件,写出运行后的制定单元的内容。
实验例程:
已知在内部RAM的30H~34H单元中连续存放5字节的二进制无符号数,编程将其转换成为ASCII码并顺序存放在40H起始的内部RAM中。
参考程序如下:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR0,#30H
MOVR1,#40H
MOVDPTR,#ASCI
MOVR7,#5
LLL:
MOVA,@R0
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOV@R1,A
INCR1
MOVA,@R0
ANLA,#0FH
MOVCA,@A+DPTR
MOV@R1,A
INCR1
INCR0
DJNZR7,LLL
SJMP$
ASCI:
DB‘0’,’1’,’2’,’3’,’4’,’5’
DB’6’,’7’,’8’,’9’,
DB’A’,’B’,’C’,’D’,’E’,’F’
二.实验要求:
1.新建工程文件,选择器件后建立新文件,文件内容见例程进行编译、调试、运行等
2.八位无符号数存放在30H开始的5个单元中,运行结果存放在40H单元开始的单元中。
3.要求写出30H单元开始的原始数据,40H单元开始的运行结果。
实验二软件编程(排序)
一.实验目的:
1.熟悉Keil软件开发环境
2.熟悉汇编指令,以及CPU的结构、内部资源(数据存储单元等)
实验内容:
编程:
设单片机内部RAM从30H起始存放着10个无符号二进制数,试编程将这些数据从大到小排序。
二.实验要求:
1).编写源程序,并进行编译调试。
2).30H单元开始存放10个无符号无顺序二进制数,编写程序,
3).运行程序后,按从大到小的顺序排列存回从30H开始的单元中,并在实验报告中记录运行后的结果。
4).认真完成实验报告:
源程序及运行前后的数据
有兴趣的同学编写附加程序:
按从小到大的排列顺序调整程序,并运行程序,写出运行结果,在实验报告中写出相应程序。
附:
仿真调试的准备
按照实验指导书第四页建立新工程文件开始,建立新文件,编辑新文件,加载文件,直到文件的编译,都与软件仿真相同。
下面要进行硬件仿真调试的准备了。
1).点击菜单栏上的project项,会弹出下拉菜单,再选择optionfortarget‘target1’选项,将出现调试环境设置界面。
2).第2项target属性的设置,对于在dp-(我们使用的设备型号)单片机仿真器、编程器、实验仪三合一综合开发平台上利用tkstudyice进行仿真调试,具体选择如下:
xtal(mhz):
33.0
memorymodel:
small:
variablesindata
coderomsize:
large:
64kprogram
operating:
none
其他选项不选。
3).C51选项设置如下:
evel:
2dtaoverlaying
warnings:
warningglevel2
imphasis:
favorspeed
bitstoroundforfloat:
3
选中interruptvectorsata(0x0000)和enableansiintegerpromotionrul两项。
4).debug环境的设置:
首先选中debug项进入设置界面:
选中use项进行硬件仿真。
Use:
tkstudyemulator
选中loadapplicationatsta和gotillmain,breakpoints,toolbox,wetchpoints,memerydispla五个选项。
后进行setting的设置
comportcom1
baudrate:
15200
internalosc20lhz—50khz:
11.059200
usexbusonly,cachecode两项选中后设置完毕。
进入仿真工作。
5).进入和退出仿真状态
只有在用户程序编绎和连接成功后才能进行调试工作。
点击菜单Debug->Start/Stop
DebugSessionIDE将进入/退出硬件仿真状态。
6).如何运行程序
在Keil的IDE中有以下几种运行方式:
A)Run全速运行遇到断点停下或用户按动Stop按钮或RSTCPU按钮停止。
B)Stepinfo单步跟踪运行一条指令,如果该语句为C中的调用子程序语句或汇编中的CALL指令,Stepinfo指令将跟踪进入子程序内部。
C)Stepover单步运行完一条指令,如果该语句为C中的调用子程序语句或汇编中的CALL指令,Stepover指令将全速完成该子程序的运行,停在下一指令处。
D)RuntillCursorLine从当前位置运行到光标处。
7).如何设置和删除断点
设置断点/删除断点最简单的方法是用鼠标双击待设置断点的源程序行或反汇编程序行,或用断点设置命令“bs……”。
8).如何查看和修改寄存器的内容
仿真时主寄存器的内容显示在主寄存器窗口,用户除了可以观察以外还可自行修改,用鼠标点击选中一个单元,例如单元DPTR,然后再单击DPTR的数值位置,出现文字框后输入相应数值按回车键即可;另外的输入方法是使用命令行窗口,例如输入A=0X34将把A的数值设置为34H。
9).如何观察和修改变量
点击“View->Watch&CallstackWindow”出现相应窗口选择Watch1-3中的任一个窗口,按动F2,在Name栏填入用户变量名如Temp1Counter等,但必须是存在的变量。
如果想修改数值可单击Value栏出现文本框后输入相应数值。
用户可以连续修改多个不同的变量。
10).如何观察存储器区域
在Keil中可以区域性的观察和修改所有的存储器数据,这些数据的获取从Ky51中获取。
KeilIDE把MCS-51内核的存储器资源分成4个部分:
A).内部可直接寻址RAMdata,IDE表示为D:
xx。
B).间接寻址RAM区idata,IDE表示为I:
xx。
C).RAM区xdata,IDE表示为X:
xxxx。
D).代码区code,IDE表示为C:
xxxx。
这四个区域都可以在Keil的MemoryWindows中观察和修改。
IDE集成环境中点击菜单View->MemoryWindows,便会打开Memory窗口,Memory窗口,可以同时显示4个不同的存储器区域,点击窗口下部分的编号可以相互切换显示。
在地址输入栏内输入待显示的存储器区起始地址。
如D:
45h表示从内部可直接寻址RAM的45H地址处开始显示;x:
3f00H显示外部RAM,从3f00H地址开始;c:
0X1234显示代码区域,从1234H地址开始。
I:
32H显示内部间接寻址空间,从32H地址开始。
在Memory窗口中显示的数据可以修改,修改方法如下:
在鼠标对准要修改的存储器单元,按动鼠标右键在弹出的菜单中选择“ModifyMemoryat0x…”,在弹出对话框的文本输入栏内输入相应数值后按回车键,修改完成。
注:
代码区数据不能更改。
实验三单片机简单I/O口控制
一.实验目的:
1)熟悉CPU的P1口准双向口的性质,使学生学会利用P1口作为输入输出口;
2)了解LED共阳极电路的实现;
3)仿真器,编程器实验仪综合开发装置的使用。
二.实验要求:
P1.7与一个开关键相连,P1.0---P1.5与六个LED灯相连;当P1.7键被按下时P1.0---P1.2控制的三个灯点亮,P1.7不被按下时P1.3---P1.5控制的三个灯点亮。
三.实验内容:
4)按要求编写实验程序;
5)按所给的电路连接硬件图;
6)运行调试程序,达到实验要求;
7)认真书写实验报告。
四.实验设备及器件
IBMPC机一台
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 实验 实践 指导书