本文目录一览:
- 1、单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
- 2、c语言流水灯程序 求具体代码
- 3、如何用c语言编写流水灯?
- 4、很简的51单片机C语言流水灯程序
- 5、用C51单片机控制12个LED流水灯的C语言程序怎么写?
- 6、51单片机流水灯用C语言编写的设计程序是什么?
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。
2、#include "reg51.h"首先写出单片机的头函数。
3、#include "intrins.h"输入位移函数。
4、unsigned int count=0,led;定义函数。
5、输入主函数,定义单片机的端口,写入延时函数。
6、中断跳转,使流水灯运行起来。
c语言流水灯程序 求具体代码
1灭)。编译器keil
C代码如下:
#include
#include
//包含循环左移函数
_cro_l头文件
unsigned
char
tmp;
//中间变量
//////////////////////////////////////////////////////////////////////////////////////////////////
//
延时子程序
////////////////////////////////////////////////////////////////////////////////////////////////
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
//////////////////////////////////////////////////////////////////////////////////////////////////
//
主函数
////////////////////////////////////////////////////////////////////////////////////////////////
main()
{
while(1)
//外层循环
{
tmp
=
0xfe;
P1
=
tmp;
while(1)
//内层循环,执行1、3、5、7亮灯循环
{
delay(30000);
//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定
tmp
=
_crol_(tmp,2);
P1
=
tmp;
if(tmp
==
0xbf)
//判断是否已经点亮到第7灯。是,则退出进入2、4、6、8循环
{
break;
}
}
tmp
=
0xfd;
P1
=
tmp;
while(1)
//内层循环,执行2、4、6、8亮灯循环
{
delay(30000);
//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定
tmp
=
_crol_(tmp,2);
P1
=
tmp;
if(tmp
==
0x7f)
//判断是否已经点亮到第8灯。是,则退出进入1、3、5、7循环
{
break;
}
}
}
}
如何用c语言编写流水灯?
C语言流水灯程序是学习的基础,一定要搞懂!给你发两个!x0dx0a(一)x0dx0a#include //51系列单片机定义文件x0dx0a#define uchar unsigned char //定义无符号字符x0dx0a#define uint unsigned int //定义无符号整数x0dx0avoid delay(uint); //声明延时函数x0dx0avoid main()x0dx0a{x0dx0a uint i;x0dx0a uchar temp;x0dx0a while(1)x0dx0a {x0dx0a temp=0x01;x0dx0a for(i=0;i=1;x0dx0a }x0dx0a temp=0xFE;x0dx0a for(i=0;i=1;x0dx0a }x0dx0a }x0dx0a}x0dx0avoid delay(uint a) //延时函数,毫秒级别x0dx0a{x0dx0a uint i;x0dx0a while(--a!=0) //执行空操作循环,其中a为形参,由调用该函数的函数语句提供值x0dx0a {x0dx0a for(i=0;ix0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0a sbit p2=P2^0;x0dx0avoid main()x0dx0a{x0dx0a TMOD=0x01;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a ;x0dx0a }x0dx0a}x0dx0ax0dx0atimer0() interrupt 1x0dx0a{x0dx0a TH0=0x00;x0dx0a TL0=0x06;x0dx0a p2=!p2;x0dx0a}x0dx0ax0dx0a(三)x0dx0a定时流水灯//x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a if(leda==9)leda=0; x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{x0dx0a static uchar t;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==10)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a} x0dx0ax0dx0a(四)x0dx0a变速流水灯//x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0auchar speed=100;x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a if(leda==9)x0dx0a {x0dx0a leda=0;x0dx0a speed-=10;x0dx0a if(speed==0)speed=100;x0dx0a } x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{x0dx0a static uchar t;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==speed)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a} x0dx0ax0dx0a(五)x0dx0a//每2两圈改变一次亮度x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0auchar speeda=30;x0dx0auint k=0;x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a uchar speed[10]={5,80,70,60,50,40,30,20,10,5};x0dx0a uint i;x0dx0a uint k;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a if(leda==9)x0dx0a {x0dx0a leda=0;x0dx0a k++;x0dx0a if(k==2){x0dx0a k=0;x0dx0a speeda=speed[i];x0dx0a i++;x0dx0a if(i==9)i=0;x0dx0a }x0dx0a } x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{x0dx0a static uchar t;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==speeda)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a} x0dx0ax0dx0a(六)x0dx0a//在上面基础上调灯的亮度(调占空比)x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0auchar speeda=30;x0dx0auint k=0;x0dx0auchar scale; x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a uchar speed[10]={5,80,70,60,50,40,30,20,10,5};x0dx0a uint i;x0dx0a uint k;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay==1)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a scale++;x0dx0a if(scale==10)scale=0;x0dx0a if(leda==9)x0dx0a {x0dx0a leda=0;x0dx0a k++;x0dx0a if(k==2){x0dx0a k=0;x0dx0a speeda=speed[i];x0dx0a i++;x0dx0a if(i==9)i=0;x0dx0a }x0dx0a } x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{ x0dx0a static uchar t;x0dx0a TH0=0x1c;x0dx0a TL0=0xbf;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==speeda)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a if(scale==10)P2=0;x0dx0a if(scale==0)P2=1;x0dx0a}
很简的51单片机C语言流水灯程序
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:
#includereg51.h //51单片机头文件
#include intrins.h //包含有左右循环移位子函数的库
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit beep=P2^3;
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{ //delay(500);大约延时500ms.
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
void main() //主函数
{
uchar a,i,j;
while(1) //大循环
{
a=0xfe; //赋初值
for(j=0;j3;j++) for(i=0;i8;i++) //左移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=0x7f;
for(j=0;j3;j++) for(i=0;i8;i++) //右移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_cror_(a,1); //将a变量循环右移一位
}
}
}
2、51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。
用C51单片机控制12个LED流水灯的C语言程序怎么写?
#include "REG52.H"
//控制引脚定义
sbit LED1 = PX.X; //P0.0-P3.7任意引脚
.... .... .......
sbit LED12 = PX.X;
//宏定义灯亮灯灭
#define LED1_ON( ) LED1 =0 //阳极接电源
#define LED1_OFF( ) LED1 =1 //阳极接电源
....... ............. .............
#define LED12_ON( ) LED12 =0 //阳极接电源
#define LED12_OFF( ) LED12 =1 //阳极接电源
void Init_GPIO( )//端口引脚初始化,关闭所有指示灯
{
LED1_OFF( ) ;
..............
LED12_OFF( ) ;
}
void Delay_ms( u16 dat ) //延时函数
{
u16 i, j;
for(i = dat; i0; i--)
{
for (j=300; j0; j--);
}
}
int main( ) //主函数
{
Init_GPIO( );//引脚初始化
while(1) //大循环
{
LED1_ON( );//点亮第一个LED
LED2_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);//延时 参数自己可以根据晶振频率自己调节
LED1_OFF( ); //点亮第二个LED
LED2_ON( );
LED3_OFF( );
.............
LED12_OFF( );
Delay_ms(1000);
............. //按照上面修改;
LED1_OFF( );//点亮第十二个LED
LED2_OFF );
LED3_OFF( );
.............
LED12_ON( );
Delay_ms(1000);
}
}
51单片机流水灯用C语言编写的设计程序是什么?
#includereg51.h
#includeintrins.h
#define uchar unsigned char
void delay(void)
{
uchar i,j;
for(i=0;i150;i++)
for(j=0;j240;j++);
}
main()
{
uchar led,i,j;
while(1)
{
for(i=0;i8;i++)
{
led=0xfei;
for(j=0;j8-i;j++)
{
P0=led;
led=_crol_(led,1);
delay();
}
}
}
}