MCS51单片机实训指导书.docx
- 文档编号:9729793
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:60
- 大小:544.73KB
MCS51单片机实训指导书.docx
《MCS51单片机实训指导书.docx》由会员分享,可在线阅读,更多相关《MCS51单片机实训指导书.docx(60页珍藏版)》请在冰豆网上搜索。
MCS51单片机实训指导书
目录
目录1
单片机微机实验须知2
前言3
ProteusISIS和Keil软件入门学习4
一ProteusISIS设计单片机电路的基本步骤:
4
二用Keil开发单片机程序9
实训项目18
实验一单片机彩灯控制器的电路设计与仿真18
实验二查表程序设计—通过LED显示数字21
实验三用位操作实现逻辑功能——开关监测报警装置25
实验四分支程序设计与应用——简单的温度控制27
实验五用T0实现电子计数器功能29
实验六方波信号发生器32
实验七利用中断技术实现前后台程序并行处理33
实验八利用中断技术实现的数字时钟34
实验九LED显示和键盘的实现36
综合实训项目39
项目1:
数字频率计的设计与实现39
项目2:
程序控制方波信号发生器42
项目3:
数字时钟与作息时间自动控制器43
项目4:
模拟量采集控制装置44
项目5:
汉字LED点阵显示45
项目6:
多功能智能仪表(小组集体项目)47
项目7:
自选项目47
实训成果与成绩评定:
47
程序附录49
单片机微机实验须知
单片机实验是学好单片机课程的重要环节之一,因为通过各次实验可以使我们书本中学到的单片机理论知识更巩固,可学会常用的编程方法,学会连接线路和检查故障、排除故障,为我们从事生产及进行科研等工作打下基础。
为了达到上述目的,对同学们提出如下要求:
1、每次老师告知实验时间和做什么实验后,在实验前要进行预习,仔细阅读实验指导书和该次实验有关的课本中内容或其他参考书,做到对实验的目的、内容、方法、步骤和应注意的事项都充分了解心中有数,并按指导老师提出的要求完成预习报告,在规定的时间交给老师检阅。
2、为了人身和设备安全,进入实验室后要遵守实验室的规章制度,不可动与该次实验无关的设备。
3、实验时要严肃认真,尤其要注意人身及设备安全。
讨论问题声音尽量小,以免相互干扰。
4、实验完毕,应整理好设备,经教师清点验收后,方可离去。
5、实验后要在老师规定的时间里完成实验报告。
前言
本实训环节采用实际项目法,让学生从以下项目中选择或自行提出一个单片机应用项目,完成电路图绘制、程序编写调试、仿真运行和程序下载等开发过程。
重在训练学生的以下能力:
1.用EDA软件进行单片机硬件电路图绘制和仿真的能力;
2.使用单片机程序开发环境进行简单应用程序设计、调试、下载的能力;
3.电子元器件的识别、选用、安装、焊接能力
4.综合运用所学知识,进行简单单片机应用系统构思、设计、开发的能力;
对实训环境和设备的要求:
1、PC机(P3以上CPU、256MB以上内存、WindowsXP/2K操作系统、带LPT和RS-232接口)
2、单片机电路仿真软件Proteus7以上版本
3、单片机程序开发软件Keil6.12以上版本
4、单片机实验板
5、ISP下载电缆与AT_ISP软件或RS-232电缆与STC_ISP软件
6、万用表、电烙铁、镊子、吸锡器、IC起拔器等常用工具
ProteusISIS和Keil软件入门学习
一ProteusISIS设计单片机电路的基本步骤:
(1)用ProteusISIS进行单片机应用系统设计与仿真的基本步骤:
(2)新建设计文件夹或打开一个现有的设计文件。
(3)选择元器件(通过关键字或分类检索)。
(4)将元器件放入设计窗口。
(5)添加其他模型(电源、地线、信号源等)和相关的虚拟仪器。
(6)编辑和连接电路。
(7)编写单片机所需的源程序。
(8)加入源程序,并通过构造,得到仿真程序或目标程序。
这里的(6)、(7)两步可以选用其他更方便的工具完成。
(9)根据需要,设置对象的属性,如将单片机的”ProgramFile”属性设置为上述仿真调试程序或目标程序。
(10)启动仿真功能,对电路进行仿真操作,验证其功能。
【例1】我们以一个简单的彩灯控制电路为例,介绍用ProteusISIS设计单片机应用电路的基本方法和步骤。
1.创建并保存新的设计。
启动ISIS,出现一个对话框,询问是否要使用软件提供的设计范例,这些范例对学习很有帮助,这里可以选“No”。
如果已经启动了ISIS,可以通过菜单或工具执行“NewDesign(新建)”命令,将出现一张空的图纸供我们进行电路设计。
新设计的缺省名为“UNTITLED.DSN”,设计文件扩展名为“DSN"。
用“SaveDesign(保存)”命令保存文件。
在保存对话框中选择保存路径和文件名,建议保存在D盘或移动U盘中,并按照章节给文件夹命名,按设计内容或练习题号给文件命名,以便以后使用。
这里可取文件夹的路径“D:
\MCU\CH1\EX1-1”,文件为“1-1”。
以后再次使用时,在Windows下双击该文件即可自动启动ISIS并打开该文件,打开该设计文件。
2.选择元器件(关键字筛选或分类筛选)
Proteus提供了丰富的元器件资源,包括30余类、上万种不同型号参数的元器件。
在模型选择工具栏中选中元器件按钮◇,单击"P"按钮,即弹出元器件选择(PickDevices)窗口。
要从众多的元器件中筛选出所需要的元件有两种方法:
分类筛选法和关键字筛选法。
两种方法也可结合使用。
1)分类筛选法
就是根据元器件所在的类别逐步筛选。
在元器件选择窗口的“Category(器件种类)”下面,单击该元器件所在的类别。
元器件分类如表1-2所示。
对于单片机,用单击选择“MicropprocessorIC”类别,在对话框的右侧“Results”栏中,我们会发现这里有大量的常见的各种型号的单片机。
如果嫌结果太多,可以进一步在下方的“SubCategory”中选择子类别。
这里可以单击“8051Family”,使得结果中只包括8051系列单片机,然后从结果栏中找到自己所需要的单片机芯片型号。
2)关键字筛选法
在元器件选择窗口的关键字搜索栏“Keywords”中输入元器件型号或名称,确认后就可以将包含该关键字的元器件筛选出来显示在结果栏中。
支持模糊筛选,即可以用元器件的名称、型号或描述中所包含的部分文字作为搜索关键字,如89C51、10K等。
实际工作中常将分类筛选和关键字筛选两种方法配合起来使用。
例如,如果关键字模糊匹配筛选出来的元器件太多,可以在从“Category”中或“Sub-Category”中限定一下类别以缩小一下范围。
当然也可以先选定类别后再输入关键字,注意若输入关键字,则“Category”中只会显示包含该关键字的类别,如果要显示所有类别,必须将搜索的关键字清空。
在筛选结果栏中单击所需的元器件,右侧会显示出该芯片的原理图符号和外形封装,最终确认后,双击所选元器件即可添加到ISIS主窗口左侧的元器件列表中,供绘制电路图使用。
按照上述方法将实验1的表1-1列出的元器件筛选出来添加到元器件列表中,以供绘制单片机彩灯控制电路使用。
3.将元器件从对象选择器放入原理图编辑区
鼠标左击对象选择器中的某个元器件,然后把鼠标指针移到右边的原理图编辑区的适当位置(蓝色方框),点击鼠标的左键,就把该元器件放到了原理图编辑区。
编辑区的大小可以通过“System”菜单下的“Setsheetsize”来设置。
放置过程有以下技巧:
(1)在对象选择器中选定对象后,其放置方向将会在预览窗口显示出来,如果元器件的方向不对,可以在放置前用方向工具转动后在放入。
如果已经放入图纸,可以用后面将介绍的方法在图纸中选定该对象后,在用快捷菜单或块旋转工具转动。
(2)如果要连续放置相同的对象,,可以在放置第一个元器件后,在编辑区中连续双击。
4.选择和放置其他类别的模型
单击模型选择工具栏中不同的模型工具,可以显示相应的对象列表。
往往不必像元器件那样要经过筛选,可以直接单击使用,再在编辑区中单击就将其放入了原理图。
这里单击模型选择工具栏中的终端接口图标〓,在终端模型中单击Ground(地线),在编辑区中单击将地线放置到原理图中。
用同样的方法放入Power(电源)。
5.编辑和连接电路
1)选中对象
对编辑区中的对象进行各种操均需要先选中对象。
对象被选中后将改变颜色。
在空白处点击鼠标左键可以取消所有对象。
选中对象的方法是:
(1)左击对象可以选中单一对象。
(2)按住(Ctrl)键依次左击各个对象(或用鼠标拖出一个选择框将所需要的对象框选进来)可以选中一组对象。
注意:
右击对象可以在选中单一对象的同时弹出该对象的快捷菜单,通过快捷菜单可以实现对该对象的一些常用操作。
删除对象
删除对象的方法是:
(1)选定对象后按下(Del)键(或单击编辑工具栏中的块删除按钮)可删除这些被选中的对象。
(2)右键双击单一对象可以直接删除该对象。
3)拖动对象
拖动对象的方法是:
(1)选定对象或对象组后可用左键拖动的方法移动对象。
(2)对于对象组,单击编辑工具栏中的块移动按钮,在移动鼠标可移动该组对象。
4)旋转对象的方向
左键单击或框选选定对象或对象组后,单击编辑工具栏中的块旋转按钮,在对话框中输入旋转角度或选择翻转方向,单击“OK”按钮即可实现对象方向旋转。
5)复制对象
复制对象按以下步骤进行:
(1)左键单击或框选以选定对象过对象。
(2)单击编辑工具栏中的块复制按钮。
(3)把拷贝的轮廓拖到需要的位置,左击鼠标放置拷贝。
6)连接
两个对象(器件引脚或导线)间的连接(Toconnectawirebetweentwoobjects)按以下方法进行:
(1)连接电路不需要选择工具,直接用鼠标左击第一个对象连接点后在左击另一个连接点,则自动连接。
注意,连接与2D图形工具中的绘图直线不同,连接具有导线性质,2D线段不具备导线性质。
如果想自己解决走线路径,只要在拐点处左击鼠标。
连接过程中的任何一个阶段,都可以通过按下(Esc)键来放弃连线。
(2)若要重复绘制若干相同的连线,可以在绘制一条后,在下一条位置处直接双击。
(3)为了避免导线太长,太多影响图纸布线的美观,对于较长的导线,可以分别在需要连接的引脚处绘制一条短导线,在短导线末端双击鼠标以放置一个节点,然后在导线上放置一个标签(Label工具),输入标签文字。
凡是标签文字相同的点都相当于之间建立了电气连接而不不必在图纸上绘出连线。
已用过的标签文字可以在标签属性编辑对话框的下拉表中选用。
(4)为了更简洁地表示出一组导线的连接走向,还可以用总线(Bus)工具绘制出总线(单击开始,双击结束),再用绘制导线的方法将各分支导线连接到总线上(若按下(Ctrl)键可绘制45度线),并通过标签Label文字表示对应的连接关系。
作为练习,请仿照实验1的图1-1绘制单片机彩灯控制电路。
二用Keil开发单片机程序
在单片机程序开发过程中,并不是仅有一个源程序就行了,还要选择器件(CPU)种类,确定编译(汇编)、连接的参数,指定调试的方式等,期间还会产生一些相关的文件。
为方便管理和使用,Keil将项目所需的各种设置和相关文件都通过工程来管理(工程文件会自动添加扩展名.uv2)。
强烈推荐按照工程建立文件夹,同一个工程的所有文件存放在同一个文件夹下。
在本课程的学习过程中,建议大家按课程章节号创建文件夹,例如“D:
\mcu\CH2\EX-2\A51”,新建工程时,将本章节的工程文件保存在该文件夹中,工程所产生的其他文件默认位置也就自然为该文件夹了。
用Keil开发单片机程序的一般步骤是:
(1)新建工程并选择单片机型号。
(2)设置工程属性。
(3)编辑源文件并加入工程
(4)构造目标程序。
(5)运行调试,以排除程序中的逻辑错误。
(6)将最终的目标程序下载到单片机芯片中。
1.工程的建立
执行菜单命令“工程(Project)\新建工程(NewProject)”出现创建新工程对话框,起一个工程名(建议按章节和题号取名,如“P2-1”。
不用加扩展名,系统会自动加上扩展名.uv2),并在下拉列表中选择单片机厂家和型号,这里选择Atmel公司的89C51,单击“确定”按钮。
2.工程属性的设置
根据不同的软件配置和仿真调试情况,需要对工程属性进行设置:
鼠标右击工程窗口下的“Target1”,然后选择“目标属性(Optionfortarget1)”,出现工程属性对话框。
该对话框有8个选项卡,大部分设置取默认值即可。
其中下列两张选项卡需要进行设置:
(1)“输出(Output)”选项卡设置
“输出(Output)”如图0-1所示。
图0-1输出属性设置
目标文件夹默认为工程文件所在的文件夹,一般不需修改。
可以单击“选择obj文件”按钮进行查看和修改。
勾选“生成HEX文件”则在构造时会产生HEX格式的目标文件。
这是Intel公司提出的数据格式,所有数据使用16进制数字表示。
在ProteusISIS中进行单片机仿真调试时需要用到这种格式文件;构造实际的单片机应用系统时,也需要将这种格式的文件下载到单片机程序存储器中。
(2)“调试(Debug)”选项卡设置
“调试(Debug)”选项卡如图0-2所示。
图0-2调试属性的设置
Keil提供两类调试方法。
一是在Keil中进行软件仿真调试,这时应选“使用仿真器”。
二是配合硬件仿真器或电路仿真软件进行程序和电路的联合调试,这时要选“使用:
ProteusVSMSimulator”选项,提供的vdmagdi.exe,安装后在此处的列表中将会出现“ProteusVSMSimulator”选项,供于ISIS进行程序和电路的联调使用。
如果Keil和ISIS在同一台计算机上运行,则需单击“设置”,填入运行ISIS计算机的IP地址,端口号为8000。
还要说明的是,两者联调时,要在ISIS中选择“DEBUG”菜单下的“Useremotedebugmonitor”。
3.源文件的建立和添加
Keil内集成有一个文本编辑器,故可以在集成环境中直接进行源程序的输入。
编辑器支持语法着色功能,即对添加到工程中的源程序,不同语法成分用不同颜色着色表示,例如,关键字用蓝色表示,以便查看和发现错误。
但该文本编辑器对汉字的支持较差,故程序注释最好使用英文或汉语拼音。
执行、菜单命令“文件(File)\新建(New)”,在源程序窗口会出现一个新的文件输入窗口,可在该窗口里输入源程序。
输入完毕后,选择“文件(File)\保存(Save)”,输入文件名,把文件保存在工程目录中。
文件取名时必须加上扩展名,汇编程序以.ASM或.A51为扩展名保存,C程序以扩展名.C保存。
图0-3添加源文件
如图0-3所示,程序编写完成以后,并不会自动出现在工程窗口中,还需要同过以下的操作将其加入工程.鼠标左键单击“Sourcegroup1”,在出现的快捷菜单中选择“增加文件到(ADDFilestoGroup“Sourcegroup1”)”,出现添加文件的对话框,选择相应源程序即可。
在工程中添加源文件也可以通过相应的菜单操作完成:
“工程(Project)\目标,组和文件(TargetsGroupsFiles)。
”
Keil默认加入文件格式为C语言源文件,因此在默认情况下,“文件类型”下拉列表框中不显示该文件夹下的汇编文件。
要显示汇编语言源文件,需要单击“文件类型”下拉列表框右侧的下三角按钮,弹出下拉列表,选择“AsmSourcefile(*.a*;*.src)”,这时才会将文件夹下的“*.asm”文件显示出来。
鼠标左键双击要加入的文件,或单击要加入的文件后单击“Add”按钮,都可以将该文件加入到工程中。
如图0-4所示。
回到主界面,加入的文件即出现在工程管理器“SourceGroup1”上午下一级菜单中,如图0-5所示。
双击该文件名,将在右边编辑窗口打开该文件,可以进行第一步编辑。
图0-4选择源文件加入源文件组图0-5加入文件后的源文件组
4.构造目标程序
设置好工程并添加了源程序文件后,即单击构造目标框上的相关构造工具(见图2-11)
或按快捷键
构造过程中,有关信息将出现在屏幕下方输出窗口中的“Build(构造)”页中。
如果程序中有语法错误,这里会出现错误报告;双击错误报告行,可以定位到源程序中相关的出错行。
对源程序反复修改后,最终构造后输出窗口中应出现“0错误”或“0Error”,表示程序已没有语法错误。
构造的目标文件*.HEX被用于下载到单片机芯片中。
这一过程中,在工程文件夹中还会生成其他一些文件,如*.LST列表文件、*.obj目标文件\*.M51程序符号列表文件。
在设计和调试状态下均可以直接修改程序的源代码,但是必须重新构造工程或文件才能得到修改后的目标程序.如对源程序做了修改,必须对工程重新进行构造,从而产生新的目标文件,否则Keil调试所使用的目标文件仍然是上次构造的结果。
5.Keil仿真和调试
虽然系统构造时可以自动检查出源程序中的语法错误,但逻辑错误要靠自己通过调试来发现.程序构造无误后,执行“调试(Debug)”菜单下的“开始\停止调试”命令可进入调试状态.在调试状态下可以查看单片机资源,跟踪调试程序.
(1)查看单片机资源
Keil在调试状态下,通过菜单或工具栏操作,可以以仿真方式查看和修改单片机内部个单元的值,主要包括:
①寄存器
在工程窗口的寄存器页,显示有个寄存器(A、B、R0—R7、DPTR、SP等)的内容,通过鼠标单击可直接选定相关寄存器进行修改。
②外围设备
通过在“外围设备(Peripherals)”菜单中选择不同的设备可以查看和修改这些外围设备对应的特殊功能寄存器(I\O端口、定时记数器、串性口和中断)。
③存储器
执行菜单命令“视图(View)\存储器窗口(MemoryWindow)”或直接单击工具栏上的相应按钮,会出现带有4张选项卡的存储器窗口。
任一选项卡中,在“存储器地址”栏中,使用I、D、X、C命令,可分别观察片内的间接空间的内容(00H—0FFH,命令格式为“I:
xxH”)、片内直接寻址128字节(00H—7FH,命令格式为“D:
xxH”)、片外数据存储器的内容(0000H—FFFFH,命令格式为“X:
xxxxH”)和程序存储器空间的内容(0000H—0FFFH,命令格式为“C:
xxxxH”)。
例如,打开存储器窗口,存储器地址中输入“D:
30H”(D表示直接寻址片内RAM,开始地址30H)。
如图0-6所示。
④监视和调用堆栈
监视和调用堆栈窗口可显示监视表达式的值和程序嵌套调用时堆栈中的相关内容。
(2)跟踪调试程序
通过程序调试可以找出程序中的逻辑错误,常用的手段有跟踪、单步运行、设置断点和监视。
用调试菜单、快捷键或调试工具均可操作。
常用调试快捷键如下:
全速运行,遇到断点停止.
单步,每次执行一步,整个子程序作为一“步”执行。
跟踪,每次执行一条命令,将跟踪进入所调用的子程序。
运行到光标处。
退出。
在程序调试中,常要充分利用设置断点的方法,使程序运行到断点处暂停,然后通过检查个单元内容来判断结果是否正确。
.具体调试方法和技巧将在后面结合练习进行讲解。
图0-6存储器窗口
6.程序下载
所谓程序下载,又称固化或烧写,就是讲目录程序写入单片机片内或片外的程序存储器。
目前常用的程序固化的方法有两种,一是采用专用编程器;二是采用某些芯片支持的ISP功能,通过下载线写入芯片。
具体操作方法见附录4:
ISPSoft-ware使用介绍。
实训项目
实验一单片机彩灯控制器的电路设计与仿真
一、实验要求
(1)仿照图1-1在Proteus中绘制一个基于89C51的流水灯控制器电路,开关可以控制流动的方向,拨码开关可以调整流动的快慢。
(2)参照给出的程序,编写程序以改变LED闪烁频率和彩灯“流水”流动方向。
(3)选择不同的工作寄存器区,修改R0━R7的内容,观察相应片内RAM内容的变化。
二、实验目的
(1)学会使用ProteusISIS绘制硬件电路图,掌握加载程序和仿真运行等基本操作。
(2)理解通过程序控制单片机的输人输出。
(3)掌握KeiluVision2软件的启动方法和使用的基本步骤。
(4)了解编译过程中产生的不同类型的文件及其作用。
(5)掌握查看和修改MCS-51单片机内部资源的操作方法。
(6)学习KeiluVision2常用热键的使用。
三、实验步骤
1.在ProteusISIS中设计硬件电路
(1)创建新的设计。
建议以文件名“1-1”保存在对应的文件夹下,如“D:
\MCU\CH1
\EX1-1"下。
(2)利用关键字或分类检索的方法将电路原理图中需要的元器件挑选至对象选择列表,主要元件可参照表1-1,然后依次选中在设计区单击,放入电路图。
(3)从模型选择工具栏的终端(Terminal)模型中将地线端子(Ground)和电源端子(Power)
放置到电路中。
(4)连接电路原理图,可参考图1-1单片机彩灯控制电路。
表1-1单片机彩灯控制器元器件清单
元器件
类别/子类别
关键字
单片机芯片AT89C51
MicoprocessorIC/8051Family
89C51
红、黄、绿、蓝发光二极管LED
Optoelectrics
LED—RED、YELLOW、GREEN、BLUE
10k
电阻
Resistor
10K
100
电阻
100R
22pF和10uF电容
Capacitor
22pF和10nF
单刀单掷开关
Switches&Relay
SW—SPST
按钮
Button
8位拨码开关
DIPSWC_8
晶振
Miscellaneous
CRYSTAL
图1-1单片机彩灯控制电路
2.编辑源程序,添加源程序并构造目标程序
若有现成的目标程序,此步可跳过。
第一种方法(无程序调试软件KeiluVision2时使用):
(1)用记事本编辑以下源程序(注意,所有标点均为英文符号,不能用中文标点,分号及其后的注释可以不写,用文件名1-1.asm):
(无程序调试软件KeiluVision2时使用):
(2)执行“Source”菜单下的“Add”命令添加程序“1-1.asm”,执行“BuildAll”命令构造目标程序“1-1.hex”。
(3)设置单片机属性。
双击“AT89C51”,在属性中设置“ProgramFile”为目标程序“1-1.hex”。
(4)仿真运行。
单击仿真工具,启动电路仿真,并用鼠标操作电路中的开关,观察程序运行结果,初步认识单片机是如何工作的。
第二种方法(有程序调试软件KeiluVision2时使用):
(1)启动KeiluVision2软件,创建新工程:
P1-1,CPU选择Atmel89C51或89C52。
(2)对工程的属性进行设置:
目标属性中选择“生成HEX文件”。
(3)编写源程序,以asm为扩展名保存在工程文件夹中。
(4)将源程序加入源程序组:
鼠标右键单击源程序组图标,加入文件组。
(5)构造工程:
使用热键
期间可能需要修改源程序,直到没有语法错误为止。
(6)调试:
进入调试状态,打开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)