- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二课,用指令方式延时闪烁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 使用文档。
这一章就完成了,我们学会了,指令延时,取反的用法,还有更重
您可能关注的文档
- 建设电工理论试题题库.doc
- 2001年度《北京市建设工程预算定额》.doc
- 2006年故障案例.doc
- 第三单元 空气压缩机操作安全技术交底.doc
- 2010年助工考试题.doc
- 锚杆支护工比武试题要领.doc
- 加油站建筑标准设计.ppt
- 2007年生物竞赛.doc
- 公司各类应急预案(试用版)剖析.docx
- 2011年参考10版二级建造师考试《建筑工程》考试专家指导和题型解析.doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)