目的:实现 LED 流水灯,只需循环让 D1-D8 指示灯逐个点亮。
方法:点亮 D1 且把 D2-D8 熄灭,延时一段时间后再点亮 D2 且把 D1、 D3-D8 熄灭,延时一段时间后再点亮 D3 且把 D1-D2、D4-D8 熄灭,如此循环。
编译软件:keil5
过程:
(1)点亮D1-D8对应端口为P20-P27,所以需要对P2X端口进行宏定义
(2)要使用复循环语句,需定义一个变量i,因为条件只需要循环8次,所以定义一个8字节的变量足够使用
(3)复循环中for语句:第一个为初始条件,第二个为循环条件,第三个为执行行为
(4)P27-P20,0(点亮)左移,11111110//对应十六进制=0xFE,P0.0输出0,其余输出1,让0依次左移
(5)延时代码编译
(6)整体代码
(7)编译未发现错误,得到hex.文件
(8)通过CH340驱动烧录hex.文件到单片机开发板
(9) 通过排线连接P20-P27与D1-D8观察实验现象
c51单片机学习笔记-LED流水灯实验现象(错)
(10)发现实验结果与预期不符,LED灯虽然有延时的以此点亮但是亮后没有熄灭
i=0,fe=1111 1110
i=1,向左移一位1111 1100(自动补零)所以第二指针亮时,第一指针依然亮
(11)重新编写代码
0000 0001
~ (0000 0010)取反为1111 1101
(12)重新编译代码未发现错误,得到hex.文件
(14) 通过排线连接P20-P27与D1-D8观察实验现象
c51单片机学习笔记-LED流水灯实验现象(对)
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113150 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!