单片机学习之项目流水灯.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机学习之项目流水灯.ppt

三、常用调试方法 熟练掌握开发系统提供的各种调试功能,合理选择调试方法可提高调试程序的效率 。 (1)单步运行调试(F8) 每按一次F8键,系统就按照下图中程序计数器PC所指示的地址(黄色箭头处)执行该条指令,且PC的内容将自动指向下一条将要执行指令的地址,黄色光标也向下移动一次。 (2)跟踪运行调试(F7) 与单步运行调试相似,每按一次F7键,系统就执行一条指令。 但当执行调用指令(LCALL XX、ACALL XX)时,跟踪运行可以跟踪到子程序内部。所以跟踪运行调试可观察程序从主程序转入子程序、子程序内部各条指令的运行及子程序返回的运行过程。 (3)全速运行至光标处调试(F4) 先将光标调到某条需要观察执行结果的指令处,如图所示。再按F4键,程序将从当前PC所指示的位置全速运行到光标处。此方法可根据操作者的实际需要快速观察程序运行至某处的执行结果。 (4)全速连续运行调试(F9) 当按F9键时,程序将从当前的PC处开始全速连续运行程序,如图所示。可通过停止按钮终止程序的运行,全速连续运行调试便于观察程序连续运行状态下相关显示及控制过程的动态过程。 (5)设置断点调试(F2) 用鼠标单击某条指令前的园标点,或将光标设置在某条指令处,再按F2键,在该指令前将出现一个黄色标记符!(或红色标记线),表示此处已被设置为断点。若从起始地址开始全速运行程序,程序运行至断点处就停止,如下图所示。此方法可快速观察程序运行到断点处的运行结果。 与全速运行至光标处(F4)调试相比,后者对断点有记忆功能,当重复调试程序时,每当程序运行到此处时都会停在该断点处,该方法特别适合于调试循环程序。可根据需要在程序的不同位置设置多个断点,用鼠标单击断点标记或在断点处再按F2键可取消断点。 (6)自动单步运行调试 该方法可自动地单步运行逐条程序,且两条指令间的间隔时间可调,如图所示。 (7)设置程序计数器PC的内容(Ctrl+N) 单片机在复位时自动将PC的内容设定为0000H,若要修改当前PC的内容,可将光标移到指定位置,再按Ctrl+N键,当前程序计数器PC的内容便被设置在此处。在调试程序时,有时需从某一地址处开始执行程序,可运用此方法修改程序起始地址PC的内容。 本次课内容 任务一、明确流水灯设计要求 通电时,最左边的第1盏灯先亮,然后熄灭,第2盏灯亮,再熄灭,按此方式直到第8盏灯,一个轮回后继续重复上一轮回直到断电。 项目一 流水灯的设计与制作 任务一、明确流水灯设计要求 一、选择元器件(略) 二、设计硬件电路(略) 开发板硬件电路(局部) 任务一、明确流水灯设计要求 三、设计程序 1。编程思路 根据任务要求,通过对硬件电路的分析理解,我们可以控制P1口的8个引脚,使第1脚输出低电平(0V),延时一段时间后再恢复输出高电平,然后使第2脚输出低电平,依次到第8个引脚。然后从第1引脚循环,实现流水灯显示。 人眼的视觉暂留时间约为0.05~0.2S。 2。程序框图和例程分析 (1)程序框图 P1-0=0 延时 P1-7=0 延时 (2)程序分析 #include at89s51.h { unsigned int a; do{ for(a=0;a10000;a++) P1_0=0; for(a=0;a10000;a++) P1_0=1; ………………. for(a=0;a10000;a++) P1_7=0; for(a=0;a10000;a++) P1_7=1; }while(1); } #include 引用系统头文件 #include “ ”引用自定义头文件和系统头文件 #include reg52.h reg52.h文件 #ifndef __REG52_H__ #define __REG52_H__ /* BYTE Registers */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; …… /* BIT Registers */ /* PSW */ sbit CY = PSW^7; sbit AC = PSW^6; …… …… /* P1 */ sbit T2EX = P1^1; //

文档评论(0)

000 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档