数据类型
在写流水灯程序之前,我们了解一下数据类型。
使用对应数据时,应该注意溢出问题,若溢出编译器也有可能编译通过,但是执行结果是错误的。
流水灯
操作LED前必须先了解LED是什么电平点亮,LED连接在什么引脚上,通常需要查找原理图。此处我的8个LED连接在P2口,为低电平点亮(因为灌电流比拉电流能力强)。
1、函数式循环流水灯:
#include "reg52.h"
#include //函数头文件
#define led P2 //对整个LED的P2端口进行定义
/* 延时函数 */
void delay(unsigned int del) //10ms * del
{
unsigned int i,j;
for(i=0; i for(j=0; j<1827; j++);}
/* while(i--);//延时 10 * i us;因为单指令为1us; */
void main()
{
unsigned char i; //使用char 节省RAM
led=0xfe; //初始状态将LED0点亮,1111 1110
while(1)
{
for(i=0;i<7;i++) //将led循环左移一位
{
led=_crol_(led,1);
delay(10); //大约延时100ms,LED显示比较快
}
// 此时 led为 0111 1111
for(i=0;i<7;i++) //将led循环右移一位
{
led=_cror_(led,1);
delay(10);
}
}
}
逻辑移位式(补0)流水灯
#include "reg52.h"
#include //此为函数头文件
#define led P2 //对整个P2端口进行操作
/* 延时函数 */
void delay(unsigned int del) //10ms * del
{
unsigned int i,j;
for(i=0; i for(j=0; j<1827; j++) ;
}
/* while(i--);//大概延时10us;因为单指令为1us; */
void main()
{
unsigned char i;
led=0xfe; //初始状态将LED0点亮
while(1)
{
for(i=0;i<8;i++)// 1111 1110
{
P2=~(0x01< delay(10); //大约延时100ms,比较快哦
}
for(i=0;i<8;i++)
{
P2=~(0x80>>i); //将1右移i位,然后将结果取反赋值到P2口
delay(10);
}
}
}
这两种方式效果一致。至此,LED的操作结束啦。
关键字:51单片机 LED 流水灯
引用地址:
51单片机之LED流水灯
推荐阅读最新更新时间:2024-11-08 11:29
单片机AT89C51--3.点亮LED灯
1. 什么是LED灯 LED:半导体发光二极管。直接将电能,转化为光能 2. LED的工作参数 普通发光二极管工作压降为:1.6-2.1 工作电流为:1-20mA 电流大概为3mA,I=(5-2)/1K 3. 原理图分析 J9表示跳线 控制LED的亮暗,通过P1的高低电平控制。 编程是给P1口赋值0 4. C语言知识 #include reg52.h //引用89c51的头文件 sbit LED1 = P1^0; //定义一个位。把P1.0用LED1代替 void main() { LED1 = 0; //让LED1输出0,LED1就会量,具体看电路图 } sbit 位
[单片机]
51单片机汇编语言带借位减法指令(4条)
这组 指令 包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位位C内容相减,结果送回累加器A中。 这里我们对借位位C的状态作出说明,在进行减法运算中,CY=1表示有借位,CY=0则无借位。OV=1声明带符号数相减时,从一个正数减去一个负数结果为负数,或者从一个负数中减去一个正数结果为正数的错误情况。在进行减法运算前,如果不知道借位标志位C的状态,则应先对CY进行清零操作。 SUBB A,data ;(A)-(data) - (C)→(A) 累加器A中的内容与直接地址单元中的内容、连同借位位相减,结果存在A中 SUBB A,#data ;(A)-#data -(C)→(A) 累加器A中的内容与立即数、连同借位位相减
[单片机]
欧司朗高性能 LED 照亮上海长江隧道
欧司朗光电半导体的 Golden DRAGON Plus LED 获得广东中龙交通科技有限公司的肯定,用于上海长江隧道照明项目。该隧道内径为 12.7 米,单洞长 8.9 公里,采用双管道结构,每一管道均为单向 3 车道设计,共安装有 5,886 套隧道灯,使用的欧司朗 Golden DRAGON Plus LED 超过 41 万多个,是目前全球最长的采用 LED 作为照明光源的隧道。 上海长江隧道将安装以欧司朗 Golden DRAGON Plus LED 作光源的中龙隧道灯 广东中龙交通科技有限公司是中国大陆一家知名的公路 LED 照明灯具专业制造商,凭借其在隧道照明产品开发应用方面的丰富经验以及欧司朗的
[电源管理]
直下式LED背光源驱动应用探讨
LED 应用于电视背 光模块 ,因有着低耗电、薄型化与高色彩饱和度、高对比度的特性,LED背光机种俨然成为中高阶电视的同义词。而LED TV在 背光源 则又分为直下式与侧光式。 侧光式LED背光将LED 灯条 放置在TV模块侧边再搭配导光板,让LED背光模块达到均匀的亮度,而放置在侧边的LED背光可减少整体电视厚度、打造出更轻薄的机身。而直下式LED 背光分为二种,传统直下式LED是把LED 晶粒 均匀地配置在液晶面板后方当作发 光源 ,使背光可以均匀传达到整个屏幕,而传统大尺寸直下式LED TV背光常常须要用到上千颗LED晶粒,成本相对较高,但直下式的好处是能够分别设置不同的背光模块权责区域使后画面细节更细腻逼真,属于
[电源管理]
驱动LED照明应用——MR16设计挑战
探讨LED照明和所应用的驱动器,分析进LED照明设计时可能遇到的难题,介绍如何应用NCP3065设计MR16 LED灯。更多信息参见:http://www.onsemi.com/pub_link/Collateral/DN06048-D.PDF
[电源管理]
低成本、高可用 开启汽车LED照明新时代
车用LED灯作为一种新型照明产品,凭借其体积小、亮度高、能耗低、寿命长、环保等优点,有效减少了更换频率、降低了维护成本,在汽车产品上正逐渐替代传统、低效的卤素灯和氙气灯,成为全球汽车照明市场的主流产品。 与此同时,随着自动驾驶、智能网联等技术的普及,汽车LED的应用场景也将进一步拓展,为市场增长提供更多机会。 目前汽车LED市场规模持续扩大,主要产品类型包括LED车灯、车内照明、氛围灯等 。其中,LED车灯是目前应用非常广泛的产品类型,包括前后大灯组、雾灯等。市场调研公司SkyQuest报告指出,预计未来几年,全球汽车LED市场规模将以年较高的复合增长率实现逐年增长。 从出色的电源转换效率到优异的调光性能,A DI的
[焦点新闻]
S3C2440学习之GPIO按键控制LED灯
/* 名称:S3C2440学习之GPIO按键控制LED灯 说明:这是实验2440GPIO的输入功能。基本的流程和51单片机开发的差不多。都是对GPIO端口寄存器的控制不同的是,51单片机可以直接对进行位控制,而2440中GPIO只能对32位的寄存器进行写入或者读出。这样的话,对于有些逻辑操作要稍微复杂点。还有个不同的是,无论是STM32还是51在进行IO按键输入的时候,都需要进行按键消抖,在这里却没又体现出来按键消抖,这是为什么呢?据我了解是这样,在进行51和STM32实验的时候,按键控制的是数码管(数字增加,降低),所以按键的机械抖动会给数码管数字的变化带来显著的影响。在这里是按键控制led灯的亮和灭,虽然仍然存在机械抖动,
[单片机]
OnSemiNCL30160恒流高亮LED驱动解决方案
On Semi公司的NCL30160是恒流高亮LED驱动器,集成了1.0A MOSFET,输入电压从6.3V到40V,开关频率高达1.4MHz,其滞后控制在负载瞬变和PWM调光时具有良好的电源抑制和快速反应,不需要控制回路补偿,可调整LED电流,主要用在LED驱动器,恒流源,汽车照明,通用照明和工业照明.本文介绍了NCL30160主要特性,方框图,应用电路以及评估板NCL30160GEVB主要特性,电路图,材料清单和评估板NCL30160GEVB测试程序. NCL30160GEVB:Up to 40V, 1A NCL30160 LED Driver Buck Evaluation Board 1.0A Constant-Curren
[电源管理]