一、实例目的
- 熟悉Protues电路原理图绘制
- 熟悉Keil程序编写编译方法
- 熟悉Keil C51 延时程序的用法
- 熟悉Keil C51 位移的方法
- 熟悉单片机引脚的控制方法
二、程序示例图
三、绘制原理图
略,本节可以继续使用上节用的原理图,具体参考:
Proteus + Keil单片机仿真教程(二)炫彩灯_爱折腾的博客-CSDN博客
四、程序代码:
-
传统方式
这里可以继续沿用上节的方法,每个LED发光二极管点亮并熄灭,间隔为100ms,代码如下:
效果如下:
到此,这个程序就结束了,如果需要单片机引脚进行批量且复杂控制的时候,这种程序方法显然是不合适的,这里我们可以使用位移的方式进行控制。
2.位移方式
位移是源自二进制的位移,8051单片机的P0~P3每个接口都对应着八个引脚,就是八位的二进制,将上面的程序转换一下就是:
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x7F |
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0xBF |
1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0xDF |
1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0xEF |
1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0xF7 |
1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0xFB |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0xFD |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0xFE |
LED发光二极管点亮顺序就是每次都是位移一个位,那么在程序里面就可以使用位移方式进行控制,在这里可以调用“intrains.h”函数快速实现这个功能,关于“intrins.h”的具体说明如下所示:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!