单片机流水灯实现3个LED同时亮 先左移动,向有移动.

作者&投稿:家可 (若有异议请与网页底部的电邮联系)
单片机C语言如何实现8个LED流水灯来回流动?~

1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。
2、具体实现方法可以参考如下程序:

拓展资料:
1、单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

2、单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
3、单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
参考资料:百度百科:单片机

#include
#include
typedef unsigned int u16;
typedef unsigned char u8;

sbit led=P2;//这里填你LED连接的端口(引脚),不一定是P2,也有可能是P3、P0

void delay(u16 i)
{
while(i--);
}

void shan1()
{
u8 i;
led=0x01;//我默认led输入高电平1是亮,具体按照你实际情况,低电平亮就0xfe;
for(i=0;i<7;i++)//已经点亮一个了,所以剩7个。
{
led=_crol_(led,1);//左移1位
}
led=0x00;
}

void shan2()
{
u8 i;
led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况
for(i=0;i<6;i++)已经点亮两个个了,所以剩6个。
{
led=_cror_(led,1);//右移一位
delay(1000);
}
led=0x00;
}
void shan2()
{
u8 i;
led=0xc0;//我默认led输入高电平1是亮,具体按照你实际情况
for(i=0;i<6;i++)
{
led=_cror_(led,1);
delay(1000);
}
led=0x00;
}


void main()
{
while(1)
{
shan1();
delay(1000);
shan2();
}
}

#include <reg52.h>

#include <math.h>

#define uchar unsigned char


void delay100ms(void)   //?? 0us

{

unsigned char a,b,c;

for(c=7;c>0;c--)

for(b=74;b>0;b--)

for(a=95;a>0;a--);

}


void main(){

uchar i,j,k,seg;

P0 = 0;

while(1)

for(i=0;i<8;i++){

seg = 0;for(j=0;j<=i;j++)seg += pow(2,j);

for(k=0;k<7-i;k++){

P2 = seg;

seg <<= 1;

delay100ms();

}

for(k=0;k<7-i;k++){

P2 = seg;

seg >>= 1;

delay100ms();

}

}

}



#include<reg51.h>
#define uchar unsigned char
uchar num;
sfr led=P0;
sbit speaker=P1^0;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchar i;
while(1)
{
for(i=0;i<3;i++)
{
led=0xf0;
delay(200);
clr speaker;
led=0xff;
delay(200)
setb speaker;
for(i=0;i<3;i++)
{
led=0x0f;
delay(200);
clr speaker;
led=0xff;
delay(200)
setb speaker;
}
for(i=0;i<2;i++)
{
led=0x00;
delay(200);
clr speaker;
led=0xff;
delay(200)
setb speaker;
}
}


学电子有哪些级别,从学校出来的时候一般找什么工作
“传闻”(之所以用这个词是为了强调)中阿炳哥去面试的时候就是带着一块 自己做电路板面试的,这是一个很好的经验可以借鉴。所以建议大家有条件的话面 试时可以带上一块自己做的有一定深度(数字钟,流水灯之类的就免了)的作品, 在别人与面试官大肆吹水的时候,你和面试官讨论一下电路板的问题,其效果大家 也应该...

电子信息工程女生的就业前途如何?
自己做电路板面试的,这是一个很好的经验可以借鉴。所以建议大家有条件的话面 试时可以带上一块自己做的有一定深度(数字钟,流水灯之类的就免了)的作品, 在别人与面试官大肆吹水的时候,你和面试官讨论一下电路板的问题,其效果大家 也应该明白。我面试时就是带一块我参加挑战杯作品的电路板。 选择找工要准备充分...

新日电动车价格
降低损耗,延长电机运行寿命。内嵌LED透镜大灯,照明亮度高,穿透性更强,搭配日间行车灯,“照”顾周全。一体式彩屏仪表,高清显示行车数据,白天防眩目,晚上更柔和。液压减震系统,大幅度提升机械结构抗冲击能力,路途不惧颠簸,更能延长整车使用寿命。双鼓刹制动器,灵敏制动,...

电子信息工程专业以后可以做什么工作
这个行业就业的薪资起点就要高一些,而且前景很好,缺点就是吃个年轻饭,40岁以后基本都转行了,选择这行你要慎重。第三,转行。其实大学毕业就业于本专业的人员真的很少,尤其是IT业的,我们班只有40%的人算是就业于IT行业,其他的全部都转行去做了别的,我的铁哥们去干了医疗器械销售,本来也是干了...

电子信息工程毕业生去哪里工作
电子类厂商 华为一类的企业

请问89C52单晶片流水灯,如何通过RS485连接电脑,让电脑可显示?_百度...
你这个 既有硬件问题,如 89C52 如何与电脑 RS485 连接?电脑 是 没有 RS485 接口的,除非是 工业控制机 普通电脑 有RS232 的话,可以用 232-485,如 E485A 或者 E485C 没有RS232 的话,可以用 USB-485,如 E820A 或者 E820B 再就是 程序 问题,通常说的 上位机程序,可以用 VB +...

电子信息工程专业是学什么的,以后做什么工作
可以从事电子工程师,设计开发一些电子、通信器件等,也可以从事软件工程师,设计开发与硬件相关的各种软件,项目主管、质量管理等

单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

20款速腾有转向流水灯吗
1、转向灯不亮,开双闪是灯亮,转向灯开关部分损坏;2、个别转向灯不亮,是灯泡损坏,更换灯泡即可解决问题;3、全部灯泡不亮,转向灯保险片损坏,导致全部转向灯不亮。速腾豪华版和旗舰版的转向灯是流水灯。京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,...

奥迪q5l转向灯是不是流水灯
【太平洋汽车网】奥迪q5l转向灯是流水灯,奥迪q5l转向灯故障原因可能是断路、闪光继电器故障、触点间隙过大等因素造成的。需要打开闪光继电器盖,检查线圈、电阻是否完好;如果电阻发热,而触点又不能闭合时,可按下活动触点,此时若转向灯亮,表明继电器有故障;触点间隙过大时应进行调整。转向灯是表示汽车...

台湾省17545744164: 单片机一个按键控制3个led灯,多种状态 -
时届冠心: #include <reg51.h>sbit key =P1^1; sbit led1=P1^2; sbit led2=P1^3; sbit led3=P1^4; bit key_flag; bit flag_500ms;void InitTimer0(void) {TMOD |= 0x01;TH0 = 0x3C;TL0 = 0x0B0;EA = 1;ET0 = 1;TR0 = 1; } unsigned char stat; void main(void) ...

台湾省17545744164: 如何用单片机一个按钮开关控制3个灯3种效果.流水.闪烁.还有一直亮.用keil编程. -
时届冠心: 下面是用C51编写的简单程序:#include <reg51.h>#include <intrins.h> sbit io_Key = P1 ^ 1; sbit led1 = P1 ^ 2; sbit led2 = P1 ^ 3; sbit led3 = P1 ^ 4; unsigned char ucCount = 0; bit flag05s = 0;//--------------------------------- void delay125us(void) //@12....

台湾省17545744164: 谁有单片机中3个led灯闪烁控制的流程图与汇编语言,c语言程序 -
时届冠心: 可以用外部中断计数,来实现流水灯的正转、暂停、以及反转和爆闪..这是我前几天写的一个这样的程序,楼主可以结合protues 画图仿真,注意程序中所用到的IO端口就行了. #include<reg52.h> #include<intrins.h> #define uchar unsigned ...

台湾省17545744164: 如何用51单片机写两LED灯两两一起闪烁的流水灯C程序 -
时届冠心: 这个比较简单吧uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void delay();//自己写吧 延迟一秒 void led_blink();//~~~~~~~~~~~~ void single_stream();//单向流水函数声明 void double_stream();//~~~~~~~~void led_blink() //全...

台湾省17545744164: 用89c51单片机制作一个由开关控制的流水灯通过按下不同的开关来控制led p1.0 - 1.2接三个 -
时届冠心: #include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2;sbit LED1=P2^4; sbit LED2=P2^5; sbit LED3=P2^6;//---------延时子程序-----------// void DelayMS(uint ms) {uchar t;while(ms--...

台湾省17545744164: 单片机中流水灯如何控制 -
时届冠心: 单片机中流水灯控制:硬件连接很简单,只要将8个LED指示灯接在P1口上 另一端通过220欧姆的电阻接+5V电源上,就可以了.主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭.复杂点: 可以进行花式流水控制.例如: 可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭. 还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一个熄灭.在程序的实现上 可以把各种花式流水的P1口亮灭状态字 事先定义成数组 然后每隔一定的时间 取出送P1口显示. 呵呵 俺只提供给你一个号的算法 程序就自己动手自立更生.

台湾省17545744164: 单片机控制流水灯 -
时届冠心: 郭天祥51教程里面的,如果有其他问题,追问或私信/*************************************************************************************** LED闪烁的简单试验 ** 延时实现p2口LED流水灯效果 (用循环移位指令) ** 连接方法: JP11(P2)和JP1(LED灯) ...

台湾省17545744164: 怎么用单片机实现以下流水灯功能 -
时届冠心: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#2 LOOP1: MOV DPTR,#TAB MOV R3,#8 LOOP2: CLR A MOVC A,@A+DPTR MOV P0,A LCALL DELAY DJNZ R3,LOOP2 DJNZ R2,LOOP1 LOOP3: MOV P0,#55H LCALL DELAY MOV P...

台湾省17545744164: 大佬们,单片机汇编语言编写流水灯,全部八次闪烁,怎么编啊 -
时届冠心: 51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果.以下是程序: ;假设晶振12MHZ,P1控制8个LED低电平亮 ;...

台湾省17545744164: keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) -
时届冠心: #include "reg51.h"main(){unsigned int i,j;while(1){P1=0xfe; //点亮第一个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LEDfor(i=200;i>0;i--)for(j=500;j>...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网