实验三-LED指示灯循环控制_第1页
实验三-LED指示灯循环控制_第2页
实验三-LED指示灯循环控制_第3页
实验三-LED指示灯循环控制_第4页
实验三-LED指示灯循环控制_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

------------------------------------------------------------------------实验三——LED指示灯循环控制中国石油大学(北京)实验报告实验课程:单片机原理及应用实验名称:实验三——LED指示灯循环控制总学时:48教师:林立成绩:实验日期:2013年10月24日实验目的熟悉μVision3编译软件、掌握C51编程与调试方法。实验内容1、按照教材P227的图A.32,绘制实验三电路原理图;2、编写C51程序,实现8个LED灯依次点亮的功能:P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;3、观察仿真结果,完成实验报告。实验要求1、采用两种加载并运行可执行文件的方法,即proteus独立运行和proteus+Keil联合运行,体会其中的差异和意义;2、练习采用单步、断点以及监视窗等手段进行程序调试的方法;3、观察仿真结果,完成实验报告:绘制的电路原理图、编程思路分析及C51源程序、调试过程简述,仿真运行效果以及实验小结。4、提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验三。1、电路原理图图1实验原理2、编程思路及C51源程序编程思路:本次实验目的是实现8个LED灯的自上而下,自下而上循环亮起。指示灯的一次亮起通过在两个亮起的动作间加上一个肉眼可辨别的延时动作来实现,可编写一个延时程序来完成。指示灯的自上而下亮起或自下而上亮起,将这个动态的过程截成一个个单独的状态,找出各个状态下各P0.n的状态值,经观察发现可通过左移或右移数值1来实现。根据这一思路,可编写以下程序:图2源程序3、调试过程简述1.建立工程文件单击菜单“Project”—“Newproject”选项,在“CreateNewProject”中输入文件名称,文件自动保存为.uv2格式。2.选择单片机工程文件保存后,在弹出的“SelectDevicefor‘Target1’中选择intel下的80C51BH型单片机。3.编辑源程序文件单击菜单“File”—“New”选项,可弹出一个空白的文本框,在此直接输入或用剪贴板粘贴文本形式的C51源程序。完成后以.c为扩展名保存源程序。4.将源程序加入到工程中右键单击工程管理窗口的“SourceGroup1”选项,在弹出的下拉菜单中单击“AddFilestoGroup1”,在弹出的对话框中选择所需的扩展名为.c的文件,单击“添加5.设置工程配置选项右键单击工程管理窗口中的“Target1”目录,在出项的选择菜单中单击“OptionforTarget’Target1’”选项。单击“Output”选项卡,勾选“CreateHEXFile”6.生成可执行文件完成工程配置后,单击菜单“Project”—“BuildTarget”选项,Keil将自动完成当前工程中所有源程序模块文件的编译、链接,并在输出窗口中显示编译、链接提示信息。图3源文件编译成功4、仿真运行效果一、proteus独立运行打开利用proteus画好的实验图,双击其中的51单片机元件,在弹出的对话框中的“ProgramFile”一栏中添加本实验中利用keil编译产生的hex文件,即可进行仿真运行。图4加载HEX文件图5仿真运行说明:proteus独立运行的基础就是生成HEX文件,然后加载HEX文件,使程序正常运行。51C语言相比与编译语言来说,编写更加便捷,可读型更强。但是proteus只能识别汇编语言,而Keil强大的功能实现了C语言编译为汇编语言。proteus独立运行过程中,Keil所起的作用就是产生hex文件,仿真的运行只通过proteus控制。二、proteus+Keil联合运行右键单击工程管理窗口中的“Target1”目录,在出项的选择菜单中单击“OptionforTarget’Target1’”选项。单击对话框中的“Debug”选项卡,在“Use”的下拉对话框中选择“PROTEUSVSMSimulator”,并选中Use。至此就建立了图6proteus+Keil联合运行图7联合运行一说明:在Debug选项卡建立proteus与Keil的联系后,同时打开proteus和keild文件,在keil的操作界面单击“Start/StopDebugSession”可在窗口中看到相关的编译程序,黄色的箭头指着程序的第一行。于此同时可以看到proteus窗口中的电路处于仿真运行阶段,并停留在电路的复位状态,此时,点击proteus中的仿真执行按钮或是单击Keil中的“run”按钮都可以实现仿真的正常进行。从而实现了proteus与Keil的联合控制。对比:proteus单独控制时,keil所起的作用就是将c语言编译成为可在proteus中执行的编译语言,从而保证仿真电路的正常运行。而proteus与Keil的联合控制是要在以下两个前提下进行的,首先proteus的“.DNS”和Keil的“.Uv2”文件必须在同一个文件夹中,其次,在实行联合控制时两个文件必须都是打开状态。在试验中我还观察到,即使认为将proteus中51单片“编辑元件”对话框中加载的程序文件去掉,在利用keil实行控制时,proteus界面中的仿真程序依旧可以正常运行。5、实验小结完成本次试验并非一帆风顺,过程中出现了各种问题,首先是在编程上还是不熟练,问题不在于C语言的能力,而在于对单片机运行时的相关状态理解的好不够。但是经过不断的琢磨,最终能顺利完成试验还是很值得庆幸的,在本次试验的过程中,我很惊讶于Keil的强大功能,它将C语言转化为编译语言从而可在proteus下运行的功能为单片机程序的编写提供了极大的便利。本次试验的C语言源程序只有短短几

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论