- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
02,用指令方式延时闪烁LED 灯
第二课,用指令方式延时闪烁LED 灯
本章将学习如何使LED 闪烁,和如何查看变量的值。
单片机内部的 CPU 工作都是要靠时钟驱动的。在标准 51 芯片中,每个指令周期是
12 个时钟。所以只要外部时钟固定,某一条指令运行的时间也是固定的。比如本试验中的
单片机晶振振荡输出的时钟是Z ,一条单周期指令执行的时间就是 12
秒=5.425347 ×10-7 秒,这样如果你想在程序里延迟一段时间,就可以用循环执行多少条
指令来实现。这是一个最简单的延时方法,优点是不占用其他的单片机资源,缺点是不容易
计算准确延时时间,而且延时过程中CPU 无法做其他工作。指令延时方法一般用在一些不
用精确计时的场合。在需要精确计时的场合,需要使用定时器,在之后的课程中将会学到。
现在请打开lesson02code 目录下的工程文件。
如图:
程序由一个循环组成,在点亮P10 口的LED 之后,延时一段时间,再灭掉LED ,又延
时一段时间,之后循环到前面。
for ()循环后面直接一个分号,表示这个循环里面什么事情也不做,就等循环完成指定
的次数就退出来。这也是指令循环延时的最常见的C 写法。
编译后,按进入仿真。
按全速运行,可以看到P1.0 的LED 灯不断地闪烁。
下面我们用另一个更简单的方式点灯,就是取反IO 口的状态。取反指令将当前bit 变量
的状态反转,当前是1,取反后就是0 ,当前是0 ,取反后就是1。IO 口相当于一个bit 变量,
也可以这样取反。
请修改程序如下:
编译成功后,再点全速运行。同样可以看到LED 闪烁的现象。
可以看到,这种方法,我们只需要一次延时,就可以实现闪烁了。
下面我们再来学习如何查看变量n 在运行中的值。注意,要查看变量的值,只能在程序
停下来的状态下查看。在程序运行的过程中,程序不断地运行,变量也在不断地变化,一般
是无法查看的。
点停止程序,将鼠标放在程序中的“n ”上面,
可以看到旁边出现了一个小框框,上面显示了n=0x47D3,这就是变量此时的值。
如果觉得这样可能会点不准确,可以选中你要看的变量,同样会显示变量的值,个人感
觉这种操作更为方便。如图:
用上面的选中的方式,你还可以选中一个表达式,也会显示出这个表达式的结果:
如图,选中n20000 ,结果为1。
在命令行输入的方法也可以看变量,在命令行输入n ,回车,就看到结果了。请注意看
下图的命令行窗口的结果。
这里再教一招,如果我想让n 现在就变成我想要的值怎么办?
这也是调试常见的手段,设置一个变量的值,比如,让n =0x1234, 只要在命令框里输入
“n=0x1234 ”就行了,几乎所有变量都可以这样直接设置,包括IO 口,比如你输入“P1.1=0 ”,
结果第二个灯就亮了。
还有一招常用的,就是在watch 窗口看变量。点watch 图标,就是那个有个眼镜的图标,
打开watch 窗口。如图:
这个窗口里有locals 页就是当前函数使用的变量的列表,还有有watch 1 和2 两个窗口,
就是自定义要看的变量的值,可以手工输入,也可以选中某个变量,按右键,将出现一个菜
单。选择add 到watch 窗口即可,在程序停止时随时看到此变量的值。
注意要看某个变量,如果这个变量是某个函数私有的,必须是程序停止时并且PC 已经
停止在了这个函数中才可以看到,各种看变量的情况都是这样。
还有一种直接看存储器的方法,可以看到所有存储器的值,但是和变量名称就不是那么
好对应起来了。点memory 窗口图标,打开memory 窗口,如图:
在Address 窗口输入:“d:0x00 ”就可以看到data 空间的从0x00 开始的所有内存。如上
图。
输入“i:0x00 ”,就可以看到idata 空间的所有内存的值。
输入“x:0x00 ”,就可以看到xdata 空间的所有内存的值。
输入“c:0x00 ”,就可以看到code 空间的所有程序。
在实际的硬件调试方式中,如果不用看memery 窗口,就建议不用打开它。因为保持它
的打开会增加仿真时通讯的时间,特别是单步运行的时间。
Keil 调试环境的使用可以千变万化,还有许多方法会在之后的课程中陆续介绍,您可以
可以去看购买dx516 的光盘中附带的uv2 使用文档。
这一章就完成了,我们学会了,指令延时,取反的用法,还有更重
您可能关注的文档
- c51第02课,用指令方式延时闪烁LED灯.pdf
- 不以规矩 难成方圆定ppt.ppt
- 电离层闪烁对GPS系统定位性能的影响研究.pdf
- 大容量闪烁存储器AT45D081 及其在税控加油机中的应用.pdf
- 第3课 战后国际秩序的形成.ppt
- 让社会投给我赞成票课件15.ppt
- 任务1 闪烁LED灯控制.ppt
- 半导体物理复习思考题2.doc
- 5 指示灯闪烁控制.ppt
- 人教版九年级综合探究七如何面对和平与发展的时代主题(共15张PPT).ppt
- 上海海洋大学《海洋环境分析技术》课件-21化学发光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-20分子荧光分析法.pdf
- 上海海洋大学《海洋环境分析技术》课件-22色谱分离过程.pdf
- 上海海洋大学《海洋环境分析技术》课件-25气相色谱仪与固定液.pdf
- 上海海洋大学《海洋环境分析技术》课件-24色谱定性定量方法.pdf
- 上海海洋大学《海洋环境分析技术》课件-26气相色谱检测器.pdf
- 上海海洋大学《海洋环境分析技术》课件-29液相色谱固定相与流动相.pdf
- 上海海洋大学《海洋环境分析技术》课件-27气相色谱分离条件的选择.pdf
- 上海海洋大学《海洋环境分析技术》课件-28液相色谱仪器与类型.pdf
- 上海海洋大学《海洋环境分析技术》课件-3 原子光谱和分析光谱.pdf
文档评论(0)