流水灯设计

流水灯设计

目的与要求

通过采用单片机控制8个LED发光二极管顺序点亮的流水灯系统设计与制作,让读者了解C语言的数据类型、常量与变量、运算符和表达式等基本概念及使用方法。
设计要求:首先点亮连接到P1.7引脚的发光二极管,延时一定时间后熄灭,再点亮连接到P1.6引脚的发光二极管,直到电量最后一个连接到P1.0引脚的发光二极管,再从头开始,循环不止,产生一种动态显示的流水灯效果。

电路设计

流水灯控制系统设计电路如 图1 所示。
图1:

Created with Rapha2.2.0 循环 P1<–0x7F P1端口状态右移1位 延时

Keil C51提供_cror_()是循环右移函数,就是把低位移出去的部分补到高位去。
循环右移函数_cror_()需要两个参数。第一个参数存放被移位的数据,例如此例中的P1端口状态;第二个参数是常数,用来说明移位次数,此例中常数为1,表示右移1位。
Keil C51还提供了一个循环左移函数_crol_(),使用原理与_cror_()相同。

任务小结

本任务通过用51单片机控制连接到P1口的8个发光二极管实现流水灯效果的软、硬件设计过程,使读者初步了解C语言程序的基本结构和特点,学习如何用C语言编程来控制单片机的并行I/O端口。

举一反三

C51提供左移运算“<<”和右移运算“>>”,运算的结果是把二进制操作数左移或右移若干位。对无符 数左移后,高位移出的数丢掉,对低位补0。对无符 数右移后,低位移出的数丢掉,对高位补0。

例如:如果 aa=01111111 ,执行命令“aa>>1”后,aa=00111111。使用移位运算符实现流水灯的源程序如下。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113118 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月13日
下一篇 2021年4月13日

相关推荐