任务实施
更新于 2026年10月10日
版权声明
任务实施
一、任务分析
要使发光二极管产生移动效果,可以让一个发光二极管亮一段时间后熄灭,然后转移到下一个发光二极管,使其亮一段时间后熄灭……周而复始。流水灯原理见表3-3-8。
表3-3-8 流水灯原理

方法一:顺序结构D1亮→D2亮→D3亮→D4亮→D5亮→D6亮→D7亮→D8亮。这种方法的程序简单,容易理解,但程序自执行效率比较低,浪费单片机资源。
方法二:采用位运算符及其循环语句,这样可以简化程序,节约单片机资源,提高程序执行效率,原理见表3-3-9。
表3-3-9 采用位运算符的原理

续表

表达式:num=num<<1|0x01;//定义一个保存移位运算的变量num
二、程序设计
程序流程图如图3-3-8所示。
参考程序:


图3-3-8 程序流程图(https://www.daowen.com)
三、电路仿真
1.绘制电路图
打开Proteus软件,建立“流水灯”文件,绘制电路仿真图,并保存。绘制完成的电路仿真图如图3-3-9所示。

图3-3-9 绘制电路图
2.编写程序
打开Keil软件,创建“lsd”工程文件,创建“lsd.c”文件,编写程序,并生成hex文件。编写完成后的程序如图3-3-10所示。

图3-3-10 编写程序
3.电路仿真
双击“AT89C51”元件,加载已生成的hex文件,并仿真查看结果。仿真结果如图3-3-11所示。

仿真视频

图3-3-11 仿真结果
仿真结果显示:8个发光二极管依次点亮呈现流水灯的效果。