下载此文档

第2课,用指令方式延时闪烁LED 灯.pdf


文档分类:通信/电子 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
第二课,用指令方式延时闪烁 LED 灯

本章将学习如何使 LED 闪烁,和如何查看变量的值。
单片机内部的 CPU 工作都是要靠时钟驱动的。在标准 51 芯片中,每个指令周期是
12 个时钟。所以只要外部时钟固定,某一条指令运行的时间也是固定的。比如本试验中的
单片机晶振振荡输出的时钟是 22118400HZ,一条单周期指令执行的时间就是 12/22118400
秒=×10-7 秒,这样如果你想在程序里延迟一段时间,就可以用循环执行多少条
指令来实现。这是一个最简单的延时方法,优点是不占用其他的单片机资源,缺点是不容易
计算准确延时时间,而且延时过程中 CPU 无法做其他工作。指令延时方法一般用在一些不
用精确计时的场合。在需要精确计时的场合,需要使用定时器,在之后的课程中将会学到。
现在请打开 lesson02code 目录下的工程文件。
如图:


程序由一个循环组成,在点亮 P10 口的 LED 之后,延时一段时间,再灭掉 LED,又延
时一段时间,之后循环到前面。
for()循环后面直接一个分号,表示这个循环里面什么事情也不做,就等循环完成指定
的次数就退出来。这也是指令循环延时的最常见的 C 写法。
编译后,按进入仿真。
按全速运行,可以看到 的 LED 灯不断地闪烁。

下面我们用另一个更简单的方式点灯,就是取反 IO 口的状态。取反指令将当前 bit 变量
的状态反转,当前是 1,取反后就是 0,当前是 0,取反后就是 1。IO 口相当于一个 bit 变量,
也可以这样取反。
请修改程序如下:
编译成功后,再点全速运行。同样可以看到 LED 闪烁的现象。
可以看到,这种方法,我们只需要一次延时,就可以实现闪烁了。


下面我们再来学习如何查看变量 n 在运行中的值。注意,要查看变量的值,只能在程序
停下来的状态下查看。在程序运行的过程中,程序不断地运行,变量也在不断地变化,一般
是无法查看的。
点停止程序,将鼠标放在程序中的“n”上面,
可以看到旁边出现了一个小框框,上面显示了 n=0x47D3,这就是变量此时的值。
如果觉得这样可能会点不准确,可以选中你要看的变量,同样会显示变量的值,个人感
觉这种操作更为方便。如图:
用上面的选中的方式,你还可以选中一个表达式,也会显示出这个表达式的结果:
如图,选中 n<20000,结果为 1。
在命令行输入的方法也可以看变量,在命令行输入 n,回车,就看到结果了。请注意看
下图的命令行窗口的结果。
这里再教一招,如果我想让 n 现在就变成我想要的值怎么办?
这也是调试常见的手段,设置一个变量的值,比如,让 n =0x1234,只要在命令框里输入
“n=0x1234”就行了,几乎所有变量都可以这样直接设置,包括 IO 口,比如你输入“=0”,
结果第二个灯就亮了。

还有一招常用的,就是在 watch 窗口看变量。点 watch 图标,就是那个有个眼镜的图标,
打开 watch 窗口。如图:
这个窗口里有 locals 页就是当前函数使用的变量的列表,还有有 watch 1 和 2 两个窗口,
就是自定义要看的变量的值

第2课,用指令方式延时闪烁LED 灯 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息