利用C51单片机控制8个LED灯同时闪烁的程序

作者&投稿:枝娇 (若有异议请与网页底部的电邮联系)
8个LED指示灯循环闪烁的程序(单片机)~

1:设置一个变量zhidaoi,它可以从0循环到3



2:检测一个已取消缓冲的键。按“+1”



3:当I值为每个值时,执行相应的模式。



水量灯参考程序



#include



#include



#定义uchar无符号字符



Ucharj,温度;



无效延迟(无符号整型ms)







Uchart;



(女士)



对于(t = 0;T < 123;T + +);







Voidmain()







P1=0XFF;



延迟(500);



Temp=0xfe;//奇怪,led连接在P2.3~P2.6



对于(j = 0;J < 4;J + +)







P1=temp;



延迟(500);



Temp=_crol_(Temp,1);







P1=0XFF;



(1);





扩展资料:
注意事项:
#include“reg52。这个文件为单片机定义了一些特殊的功能寄存器







Typedef无符号int在16以下;//以声明的方式定义数据类型







无符号charu8;







//LED灯







Sbitleda=P0;







Sbitled1=P0^0;







Sbitled2=P0^1;







Sbitled3=P0^2;







Sbitled4=P0^3;







Sbitled5=P0^4;







Sbitled6=P0^5;







Sbitled7=P0^6;







Sbitled8=P0^7;







无效延迟(16岁以下)















,(我);















Voidmain()















而(1)















勒达=1;//所有的灯都亮着







//从左到右熄灭







Led1=0;







延迟(50000);//延迟时间约为450毫秒







Led2=0;







延迟(50000);//延迟时间约为450毫秒







Led3=0;







延迟(50000);//延迟时间约为450毫秒







Led4=0;







延迟(50000);//延迟时间约为450毫秒







Led5=0;







延迟(50000);//延迟时间约为450毫秒







Led6=0;







延迟(50000);//延迟时间约为450毫秒







Led7=0;







延迟(50000);//延迟时间约为450毫秒







Led8=0;







延迟(100000);//延迟大约900毫秒







//从右到左照明







Led8=1;







延迟(50000);//延迟时间约为450毫秒







Led7=1;







延迟(50000);//延迟时间约为450毫秒







Led6=1;







延迟(50000);//延迟时间约为450毫秒







Led5=1;







延迟(50000);//延迟时间约为450毫秒







Led4=1;







延迟(50000);//延迟时间约为450毫秒







Led3=1;







延迟(50000);//延迟时间约为450毫秒







Led2=1;







延迟(50000);//延迟时间约为450毫秒







Led1=1;







延迟(50000);//延迟时间约为450毫秒







勒达=1;//所有的灯都亮着
















以51位例,使用P1的八个IO口控制。
先定义:
sbit LED0=P1^0;
sbit LED1=P1^1;
........
以此类推,定义八个。
然后在主循环中:
LED0=0;
延时一段时间;
LED0=1;
就可以看到闪烁了。

#include<reg51.h>
#define uchar unsigned char
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
while(1)
    {
    P0=0x00;
    delay(200);
    P0=0xff;
    delay(200);
    }
}



用51单片机控制3个步进电机时的程序!越详细越好。
程序是指基本指令,通过范围内的修改达到使用目的。一个步进电机控制器和3个步进电机的控制器只是脉冲输出点位不一样而已(芯片不一样)当然,输出的IO点也会增加,3个步进电机的控制器可以控制1~3个步进电机不同的工作,基于51单片机的开发代码指令和软件由芯片生产商提供,基础代码由控制器工程师提供,...

用单片机C51驱动直流电机,可调转速的程序
TMOD=0x51;\/\/T0 工作方式1,C1工作方式1 TH0=(65536-46070)\/256;\/\/50ms 定时(在晶振为11.0592M下)TL0=(65536-46070)%256;TH1=0;TL1=0;TR0=1;\/\/启动Timer0 TR1=1;\/\/启动COUNTER 1 ET0=1; \/\/定时器1开中断 EA=1; \/\/全局中断允许 } void timer0() interrupt 1 { number++;if...

用C51单片机,编写脉冲控制步进电机的驱动器
include <Reg51.h> define uchar unsigned char \/\/显示扫描定时常数,定时时间5ms(fosc=6MHz)define TC -2500 \/\/点动软定时常数,定时时间160ms(单位20ms)define TCS 8 \/\/快速软定时常数,定时时间40ms(单位20ms)define TCF 2 void disp(unsigned);sbit DOWN = P3^0;\/\/定义P3...

可以给发一个用C编写通过C51单片机控制步进驱动器的简单案例嘛(包括加...
楼主:步进驱动器是两相电机吧,主要是加一个驱动芯片;然后通过单片机编写代码即可完成;编写时制作几个数组,分别是全步、半步、1\/4步等。然后在单位时间内进行IO控制就好了,主要参考驱动芯片的时序。代码就要自己慢慢写,慢慢调!

单片机C51,三个内容。一个最小系统带一个流水灯。两个按键控制两个灯...
while(1) { P0=_crol_(P0,1); delay(200); }}按键控制两个灯#include<reg51.h>sbit led1=P1^0;sbit led2=P1^1;void ext0() interrupt 0{led1=~led1;}void ext1() interrupt 2{led2=~led2;}main(){EX0=1;EX1=1;IT0=1;IT1=1;EA=1;while(1);} ...

c51单片机:两个独立按键控制一个led,k1按下松开led闪烁,k2按下松开le...
include "reg52.h"typedef unsigned int u16;typedef unsigned char u8;sbit led=P2^0;\/\/把所要控制的led灯定义为p2.0这个口sbit k1=P2^1;sbit k2=P2^2;void delay(u16 i){while(i--);}\/\/一个延时程序void main(){if(k1==1)while(1){led=1;delay(50000); \/\/大约延时450msled=0...

基于51单片机控制交通灯的电路图与C语言程序
\/\/CPU说明:AT89C51型单片机; 24MHZ晶体振荡器 \/\/完成时间:2009年1月6日 \/\/***\/\/ include<stdio.h> include<reg51.h> include<intrins.h> sfr p0 = 0x80;sfr p1 = 0x90;sfr p2 = 0xA0;sfr p3 = 0xb0; \/\/这部分内容其实在“#include<reg51.h>”里已经有,但里面...

C51单片机编程,按键控制流水灯
include "reg51.h"unsigned char led[]={0xfe,0xfd,0xfb,0xf7}; \/\/LED灯的花样数据 void delay(unsigned char time){ \/\/延时函数 unsigned int j=15000;for(;time>0;time--)for(;j>0;j--);} void main(){ bit dir=0,run=0; \/\/标志位定义及初始化 char i;while(1){ ...

写出单片机C51中常用的控制语句有哪些?
if else while switch case

C51单片机定时器1以方式1定时1秒如何设置?
1、先打开我们熟悉的单片机c51编程软件——keil,先把主方法写好。2、然后,我们要定义两个变量。3、接着,设定好定时器的工作方式。4、设置中断发生的机制。5、最后,我们要加进这几行代码进行初值的重装。6、最后,把if语句补充完毕就可以了。

东胜区13920296523: 单片机编程,用一个开关控制8个灯轮流亮,再用一个开关控制两个灯一起亮一起灭 -
叔试澳格: 简单的啊.思路:8个LED接在一个口,如P1口.再将另外两个LED接在另外某个口(如P2)的两个引脚.然后将两个按键分别接在空闲的口的两个引脚. 按下一个按键,使8个LED的输出状态变化,0xFE循环移位实现,LED低电平亮.另外的按键按下,两个LED状态翻转.

东胜区13920296523: C51如何用8个按键,分别控制8个LED亮灭只允许一个LED亮?上电灯全灭.请 -
叔试澳格: #include<reg51.h>#include<INTRINS.h>#define u16 unsigned int#define u8 unsigned char/* P1.0-P1.7接按键 P2.0-P2.7接LED*/ code u8 table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xff};/***********************************/ void main()//...

东胜区13920296523: 如何用C51写出8个LED同时亮,但亮度不同的流水灯程序? -
叔试澳格: 个人见解:既然PWM能实现单个,且最先亮的一个最亮,那么可以依次轮换最先亮的一个(利用PWM写一子函数,对其调用),实现多个啊. 你不妨试一试!

东胜区13920296523: 如何用C51单片机实现P0口接两个按键,P1口接8个LED灯.key1按下左移动1位点亮LED key2按下右移动1位点LED -
叔试澳格: 给个四路: 定意一个变量; if(按键1按下)变量为1; if(按键2按下)变量为2;if(变量==1) {左移控制; } else if(变量==2) {右移控制; }

东胜区13920296523: 你好,我想问一下,怎么让51单片机开发板控制八个led灯同时闪烁 -
叔试澳格: while(1) {P1=0xff; //P1全部高电平,点亮LED Delay(200);//延时 P1=0; //P1全部低电平,LED灭 Delay(200);//延时 }

东胜区13920296523: 关于C51:用key按键控制8个LED以不同的模式显示(我用的数组). -
叔试澳格: 试试看:void main() { uchar key1, key2; uchar a; while(1) { P1 = 0xff; key1 = P1; switch(key1) { case 0x01: for(a = 0; adelay(100); P2 = left_right[a]; P1 = 0xff; key2 = P1; if (key1 != key2) {key1 = key2; break;} //检测按键,不同则跳出循环. } break; case 0x02: ......

东胜区13920296523: 单片机编程8个led灯,让最低灯亮,循环左移s -
叔试澳格: 思路: 控制8个LED灯,使用上拉方式控制,引脚高电平灯灭,引脚低电平灯亮. 这8个LED使用同一P口上的所有引脚,假设为P1口中的P1.0-P1.7共8个脚. 软件中,只需要将这些灯使用一个for循环即可.代码#include <reg51.h> unsigned ...

东胜区13920296523: C51单片机编程 求按下1次按键 8盏LED灯全亮源程序 -
叔试澳格: #include "reg51.h"sbit key=P1^1;//按键IO,按下低电平 void main() {while(key);//等待按键按下P2=0;//8个LED接在P2口的8个IO上,低电平点亮}

东胜区13920296523: 使用C51单片机编程:无中断时8个LED全亮,当相应外部中断0时,8个LED依次从左往右移动并重复三次 -
叔试澳格: #include void delay_ms(unsigned int x) //误差 0us { unsigned char a,b,c; for(c=x;c>0;c--) for(b=142;b>0;b--) for(a=2;a>0;a--); } void main(void) { ET0=1;//外部中断0、1下降沿中断 ET1=1; EX0=1; EX1=1; EA=1; while(1) P0=0xFF; // P1的8个LED,...

东胜区13920296523: 用C51编写程序 实现8个LED灯同时闪烁,请用P2口与LED灯连线 求助 -
叔试澳格: 用汇编语言,还是很简单的: ;ORG 0000HDJNZ R7, $DJNZ R7, $DJNZ R6, 0000HXRL P2, #255SJMP 0000H END即可.

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