实验三——LED指示灯循环控制.docx

上传人:小飞机 文档编号:5175104 上传时间:2023-06-11 格式:DOCX 页数:6 大小:368.03KB
返回 下载 相关 举报
实验三——LED指示灯循环控制.docx_第1页
第1页 / 共6页
实验三——LED指示灯循环控制.docx_第2页
第2页 / 共6页
实验三——LED指示灯循环控制.docx_第3页
第3页 / 共6页
实验三——LED指示灯循环控制.docx_第4页
第4页 / 共6页
实验三——LED指示灯循环控制.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《实验三——LED指示灯循环控制.docx》由会员分享,可在线阅读,更多相关《实验三——LED指示灯循环控制.docx(6页珍藏版)》请在三一办公上搜索。

1、O寸学CH E A VNTVH RSET Y OF PKTROLEUM中国石油大学(北京)实验报告实验课程:单片机原理及应用实验名称:实验三一一LED指示灯循环控制总学时:48 教师: 林立 成绩: 实验日期:2013年 10月24日一、实验目的熟悉uVision3编译软件、掌握C51编程与调试方法。二、实验内容1、按照教材P227的图,绘制实验三电路原理图;2、编写C51程序,实现8个LED灯依次点亮的功能:一一 一一 一 一一的顺序,无限循环,间隔约50ms;3、观察仿真结果,完成实验报告。三、实验要求1、采用两种加载并运行可执行文件的方法,即proteus独立运行和proteus + K

2、eil联合运行,体会其中的差异和意义;2、练习采用单步、断点以及监视窗等手段进行程序调试的方法;3、观察仿真结果,完成实验报告:绘制的电路原理图、编程思路分析及C51 源程序、调试过程简述,仿真运行效果以及实验小结。4、提交实验报告的电子邮件主题及存盘文件名格式如,20马晓明实验三。1、电路原理图图1实验原理2、编程思路及C51源程序编程思路:本次实验目的是实现8个LED灯的自上而下,一次亮起通过在两个亮起的动作间加上一个肉眼可辨别的延时动作来实现,可编写一个延时 程序来完成。指示灯的自上而下亮起或自下而上亮起,将这个动态的过程截成一个个单独的自下而上循环亮起。指示灯的|ttlricliide

3、BreB5l ucid delap(uinsigned int time)定义一个延时程序状态,找出各个状态下各的状态值,经观察发现可通过左移或右移数值1来实现。根据这一 思路,可编写以下程序:unsigned int j=0;f ortri mp=r mp;rinipii;Tiiip)uoid nain()( unsigned char i;PO=1 ;delap(S);uhile(1)for(i =1 :i = ;i +) FO=1;delay(如;for (i=1;i = 1 ;dtldy(50);for(J=0;Jl25;l+);P崛初I值,使辟D1亮.D2-DMT灭/延E扣跖打住f畔

4、的决唁1左移.便灯目-iTT亮声住pi叶的我甘】右移,关现虹目下FT上壳区见条1牛循小图2源程序3、调试过程简述1. 建立工程文件单击菜单Project” 一 New project”选项,在“Create New Project”中输入文 件名称,文件自动保存为.uv2格式。2. 选择单片机工程文件保存后,在弹出的“Select Device for Targetl中选择intel下的80C51BH 型单片机。3. 编辑源程序文件单击菜单“ File”一“New ”选项,可弹出一个空白的文本框,在此直接输入或用剪贴 板粘贴文本形式的C51源程序。完成后以.c为扩展名保存源程序。4. 将源程序

5、加入到工程中右键单击工程管理窗口的“Source Group1”选项,在弹出的下拉菜单中单击Add Filesto Group1”,在弹出的对话框中选择所需的扩展名为.c的文件,单击“添加”。5. 设置工程配置选项右键单击工程管理窗口中的“ Target1”目录,在出项的选择菜单中单击 Option forTarget Target1” 选项。单击“Output”选项卡,勾选“Create HEX File”。6. 生成可执行文件完成工程配置后,单击菜单“Project”一Build Target”选项,Keil将自动完成当 前工程中所有源程序模块文件的编译、链接,并在输出窗口中显示编译、链接

6、提示信息。图3源文件编译成功4、仿真运行效果一、proteus 独立运行打开利用proteus画好的实验图,双击其中的51单片机元件,在弹出的对话框中的“Program File ”一栏中添加本实验中利用keil编译产生的hex文件,即可进行仿真运行。图4加载HEX文件图5仿真运行说明:proteus独立运行的基础就是生成HEX文件,然后加载HEX文件,使程序正常运行。 51C语言相比与编译语言来说,编写更加便捷,可读型更强。但是proteus 只能识别汇编语 言,而Keil强大的功能实现了C语言编译为汇编语言。proteus独立运行过程中,Keil所 起的作用就是产生hex文件,仿真的运行只

7、通过proteus控制。二、proteus + Keil 联合运行右键单击工程管理窗口中的“Target1”目录,在出项的选择菜单中单击Option for Target Targetl ”选项。单击对话框中的“Debug”选项卡,在“Use”的下拉对话框中 选择“PROTEUS VSM Simulator”,并选中Use。至此就建立了 proteus和Keil之间的链 接。e-tTax:图6 proteus + Keil联合运行再浏 国 ErmHi:i.8h尊 BrMtEnJils BrwiskXi 11 BEuLtLiH: BrwiSrt0200UIIMCrOODCiOsiOddaF50D

8、PQ(DzD口的 OOUS7T32MZVR7rPi32ClOsiDQn?7EDDMOV刖 RgDEl,口 g叫 9D3SET 日C口 MU 叫吊EFMOVkrR7ClOsiDQnB94 DDSUBBhrJVDzODCiasDQOSElbKTFA 由 6CiQisDUOE91DD凯珈AOxOOCiQssDUin1015JCCrOD27。;0蜀血2El心hC;QiiD(l3TOMffFHd 点C:0s?0D4FTMDV阳#EMU】5GOIH?RS口QMEIMBDDDD1CJ11EHSC!OD:LAC1OSIDQ39DCIbJ?H4EMEJLAEDMOVhrR5匚皿皿日6+7DKRLA/EimCiQ

9、ssDd)4CCRLKFHC!;0MQ】EFDF5JWZCrOOLSMMET呻ArR7C;QssD(l21LTIE:R?CM22FOESJWZ小伽血2嘲LEtec既口 队叫蔓BDEZEJMPCL0DQ9C10SIDQ2722FET口 gUg 日75BDD1MCV?n(DlBD DzDlC!a3EDQ2:BLZDODEITALLCiaDdE G”Elg:ETBOlMdxDlC!;0MQ30E5BDWA.PniBOC;QiiD(l:3225ED孙口K花队血饥s ii sm” d isinrfr.r asl r rc me ak 曲 MgM“ Ar加 /R如 lEEllMJilGvri bH*l f

10、e m 1 Su-?5iLKfthi 山g Atw Eh#氏蛔I图7联合运行说明:在Debug选项卡建立proteus与Keil的联系后,同时打开proteus和keild 文件,在keil的操作界面单击“Start/Stop Debug Session”可在窗口中看到 相关的编译程序,黄色的箭头指着程序的第一行。于此同时可以看到proteus窗 口中的电路处于仿真运行阶段,并停留在电路的复位状态,此时,点击proteus 中的仿真执行按钮或是单击Keil中的“run”按钮都可以实现仿真的正常进行。 从而实现了 proteus与Keil的联合控制。对比:proteus单独控制时,keil所起的

11、作用就是将c语言编译成为可在 proteus中执行的编译语言,从而保证仿真电路的正常运行。而proteus与Keil 的联合控制是要在以下两个前提下进行的,首先proteus的.DNS”和Keil的 “.Uv2”文件必须在同一个文件夹中,其次,在实行联合控制时两个文件必须都 是打开状态。在试验中我还观察到,即使认为将proteus中51单片“编辑元件” 对话框中加载的程序文件去掉,在利用keil实行控制时,proteus界面中的仿 真程序依旧可以正常运行。5、实验小结完成本次试验并非一帆风顺,过程中出现了各种问题,首先是在编程上还是不熟练,问 题不在于C语言的能力,而在于对单片机运行时的相关状态理解的好不够。但是经过不断的 琢磨,最终能顺利完成试验还是很值得庆幸的,在本次试验的过程中,我很惊讶于Keil的 强大功能,它将C语言转化为编译语言从而可在proteus下运行的功能为单片机程序的编写 提供了极大的便利。本次试验的C语言源程序只有短短几行,但在利用keil运行程序时, 我们可以在窗口中看到几百行编译程序。坦白的说本部分的知识我掌握的不是很好,很多试 验时的发现和感受也不知道用何种具体的语言来表达,我会在课后多进行相关的操作,思考 上课时老师所演示的实例,从而更好的学习和体会keil和proteus的功能。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号