LED指示灯循环控制.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验内容 1、按照教材P227的图A.32,绘制实验三电路原理图; 2、根据功能要求,编写C51程序; 3、练习μVision3程序动态调试方法,并最终实现8个LED灯依次点亮的功能: P0.0→P0.1→P0.2→P0.3→ ┅ →P0.7→P0.6→P0.5→ ┅ →P0.0的顺序,无限循环,间隔约50ms; 4、观察仿真结果,完成实验报告。 实验要求 实验步骤 在ISIS中绘制电路原理图,按照表A4.1将元件添加到编译环境中; 在uVision3中编写C51程序; 利用uVision3的编译调试功能检查语法和逻辑错误; 下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。 实验要求 提交的实验报告中应包括电路的原理图和实验结果分析。 Category Reference Value Microprocessor ICs U1 80C51 Miscellancous X1 CRYSTAL Capacitors C2~C3 CAP Capacitors C1/22uF CAP--ELEC Resistors R2~R8/200 RES Resistors R10~R17/100 RES Optoelectronics D1~D8 LED--YELLOW 1、电路分析及原理图 图1 2、编程思路及C51源程序 编程思路 P0口赋一初值,使D1灯亮,D2~D8灯灭 调用函数delay,传入参数值为50(ms) 采用while结构的无限循环体 由上向下循环控制(变量i的初值为1,终值小于等于7,增量为+1) 使P0中的数值向左移1位 调用函数delay,传入参数值为50(ms) 返回第二部继续进行 源程序 #include reg51.h //预处理命令,将reg51.h头文件包含进来 void delay(unsigned int time ){ //无返回型延时函数delay,传入参数为1个无符号整形变量,time unsigned int j=0; //定义1个初值为0的无符号整形变量,j for (;time0;time--) //采用for结构的外层循环,变量time的初值为time,终值大于0,增量为-1 for (j=0;j125;j++); //采用for结构的内层循环,变量j的初值为0,终 值小于125,增量为+1 } void main(){ //主函数 unsigned char i; //定义1个位于data区的自动无符号字符型变量,i P0 = 0x01; //P0口赋一初值,使D1灯亮,D2~D8灯灭 delay(200); //调用函数delay,传入参数值为50(ms) while( 1 ){ //采用while结构的无限循环体 for(i=1;i=7;i++){ //由上向下循环控制(变量i的初值为1,终值小于等于7,增量为+1) P0=P01; //使P0中的数值向左移1位(左移符为 ) delay(200); //调用函数delay,传入参数值为50(ms) } for(i=1;i=7;i++){ //由下向下上循环控制(变量i的初值为1,终值小于等于7,增量为+1) P0=P01; //使P0中的数值向右移1位(左移符为 ) delay(200); //调用函数delay,传入参数值为50(ms) } 3、调试过程简述 1程序单步调试,如图2所示,当执行到 delay子程序时,按下F10或stop over键,调试光标不进入延时子程序直接到主程序的下一行。 2或者设置断点,接着全速运行到断点时,即停止运行,可在此观察有关变量值如图3所示。 3在进入延时子程序示,使用stop out of current function命令,即可执行完光标所在程序内的函数,并指向程序的下一步如图4所示。 图2 图3 图4 4、仿真运行效果 起始时的情况 运行中的情况 5、实验小结 1,通过实验我们实现了最终实现8个LED灯依次点亮的功能: P0.0→P0.1→P0.2→P0.3→ ┅ →P0.7→P0.6→P0.5→ ┅ →P0.0的顺序,无限循环,间隔约50ms; 2,学会了利用uVision3的编译调试功能检查语法和逻辑错误下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。 3,通过四种不同的途径对程序进行调试,已达到最终的单步调试的目的,还有F10,F11等快捷键的使用。

文档评论(0)

bhl0572 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档