利用C51单片机控制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语句补充完毕就可以了。
叔试澳格: 简单的啊.思路: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即可.