用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
发布网友
发布时间:2022-04-24 09:59
我来回答
共4个回答
热心网友
时间:2023-10-09 14:47
#include<reg51.h>
voiddelay(void)
{
unsignedinti,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
voidmain(void)
{
while(1)
{
P3=0xfe;//第一个灯亮
delay();//延时
P3=0xfd;//第二个灯亮
delay();
P3=0xfb;//第三个灯亮
delay();
P3=0xf7;//第四个灯亮
delay();
P3=0xef;//第五个灯亮
delay();
P3=0xdf;//第六个灯亮
delay();
P3=0xbf;//第七个灯亮
delay();
P3=0x7f;//第八个灯亮
delay();
}
}
扩展资料
单片机C语言16种方式流水灯
voidmain()
{
while(1)
{
P1=0xfe;//点亮第一个发光管
Delay(5000);
P1=0xfd;//点亮第二个发光管
Delay(5000);
P1=0xfb;
Delay(5000);
P1=0xf7;
Delay(5000);
P1=0xef;
Delay(5000);
P1=0xdf;
Delay(5000);
P1=0xbf;
Delay(5000);
P1=0x7f;//点亮第八个发光管
}
}
热心网友
时间:2023-10-09 14:47
#include"reg52.h"//此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;//对数据类型进行声明定义
typedef unsigned char u8;为每个LED灯命名
sbit leda=P0;
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
leda=1;//全部灯亮
//从左到右依次熄灭
led1=0;
delay(50000);//大约延时450ms
led2=0;
delay(50000);//大约延时450ms
led3=0;
delay(50000);//大约延时450ms
led4=0;
delay(50000);//大约延时450ms
led5=0;
delay(50000);//大约延时450ms
led6=0;
delay(50000);//大约延时450ms
led7=0;
delay(50000);//大约延时450ms
led8=0;
delay(100000);//大约延时900ms
leda=1;//全部灯亮
}
}
扩展资料:
main函数用法:
main()函数有三种形式。
1、无参数
#include<stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
2、有两个参数
习惯上第一个参数是整型argc,保存了外部调用命令的参数个数,第二个参数是指针数组或二级指针argv,以字符串形式保存了与argc对应的参数,如下例子:
#include<stdio.h>
int main(int argc,char*argv[])
{
int i=0;
for(;i<argc;i++){
printf("%s\n",argv<i>);
}
printf("Hello World!\n");
return 0;
}
3、有三个参数
在argc和argv的基础上多了一个环境变量参数,环境变量的形式是“ENV=value”,参数类型是指针数组或二级指针,如下例子:
int main(int argc,char*argv[],char*envp[])
{
int i=0;
for(;envp<i>!='\0';i++){
printf("%s\n",envp<i>);
}
printf("Hello World!\n");
return 0;
}
热心网友
时间:2023-10-09 14:48
#include<reg52.h>
sbit LED0=P1^0;发光二极管跟单片机io口对应
sbit LED1=P1^1;
sbit LED2=P1^2;
while(1)
{
LED0=0; 一个二极管对应的单片机io置低
for(i=0;i<10000;i++)非精确延时,调整闪烁频率需要更改中间10000那个值,可以改成5000之类的试试
LED0=1; 置高(io先置高还是先置低需要看你的电路图。。。。。)
for(i=0;i<10000;i++)
LED1=0;
for(i=0;i<10000;i++)
LED1=1;
for(i=0;i<10000;i++)
LED2=0;
for(i=0;i<10000;i++)
LED2=1;
for(i=0;i<10000;i++)
}
类似这样,
热心网友
时间:2023-10-09 14:48
#include"reg52.h"//此文件中定义了单片机的一些特殊功能寄存器
void delay(unsigned char i )
{
unsigned char a
{
for(i=100;i>0;i--)
for(a=10;a>0;a--);
}
}
void main()
{
while(1)
{
P0=0x01;
delay(1);
P0=0x02;
delay(1);
P0=0x04;
delay(1);
P0=0x08;
delay(1);
P0=0x10;
delay(1);
P0=0x20;
delay(1);
P0=0x40;
delay(1);
P0=0x80;
delay(1);
}
}
//这样就可以实现循环了
用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();}...
单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)
while(1){ P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xf7; //点亮第四个...
...流水灯,P1.0接按键k1,P1.1接按键k2,P0口的8位接8个发光二极管...
/* 该实验是花样流水灯(8个发光二极管以各种方式循环点亮),功能是花样流水灯(8个发光二极管以1S间隔以各种方式循环点亮) */ include//包含reg.52文件 define uint unsigned int//宏定义 define uchar unsigned char//宏定义 void delay(uint z);//声明延时函数 uint a;//定义循环用变量 uchar co...
设计流水灯电路图,循环点亮8个led,从左往右点亮后再从右往左,每个led...
include <reg51.h> include <intrins.h> unsigned char i;void main(){ TMOD=0x00;TH1=0x3c;TL1=0xb0;EA=1;ET1=1;TR1=1;while(1){ if(i==20){ i=0;//下面写你要处理的的其他程序,你只要了定时1s。} } } void a(void) interrupt 3 { unsigned char i;TH1=0x3c;TL1=0xb0;...
8个彩灯依次点亮,求电路图和工作原理。
C语言1:/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/ include<reg52.h>//包含reg.52文件 define uint unsigned int//宏定义 define uchar unsigned char//宏定义 void delay(uint z);//声明延时函数 uint a;//定义循环用变量 uchar code table[]={ 0x...
单片机流水灯代码
单片机流水灯代码:#include<reg51.h>//51头文件void delay(int t)//定义延时函数{int j;while(t--){for(j=0;j<500;j++);}}void main(){int i;while(1){for(i=0;i<7;i++)//循环点亮LED,到第7个LED延时一会就结束循环。在这个单片机流水灯代码中,假设使用的是8051...
用单片机p2口接八个发光二极管 实现流水灯控制 画出电路图 编写程序
include<reg51.h> define uchar unsigned char define uint unsigned int uint num=0,i=0;uchar code LED[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};void main(){ EA=1;ET0=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;P1=0;while(1){ if(num==2...
c51流水灯单片机程序
//假设有8个LED通过上拉电阻接到P1端口, 高电平灯灭,低电平灯亮,逐个循环点亮 include <reg51.h> unsigned char data tab1[9]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};void delay(){ unsigned int data n;for (n=0;n<40000;n++){ ;} } void main(){ unsigned char...
单片机汇编程序:有八个小灯,要求依次点亮,时间间隔1s
实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。/ /* 程序详细功能介绍:做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复...