51单片机8个跑马灯程序c语言(51单片机来回跑马灯c程序)
若51单片机P1口接了8个LED,编写程序完成跑马灯程序要求大约1秒变化一次
//假设晶振12MHZ,P1控制8个LED低电平亮
#include "reg51.h"
unsigned int YSJS=0;
signed char LED=0XFE;
void main(void)
{
TMOD |= 0X10; //定时器1工作于方式1,16位定时器
TH1 = 0XFE; //定时器1定时时间=500uS
TL1 = 0X0C;
ET1 = 1; //使能定时器1中断
TR1 =1;
EA =1; //开总中断
while(1)
{
}
}
void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFE; //定时器1定时时间=500us
TL1 = 0X0C;
YSJS++;
if(YSJS==2000) //500uS*2000=1000000uS=1S
{
P1 = LED;
LED=LED1;
LED=LED | 1
if(LED==0XFF)LED=0XFE;
YSJS = 0
}
}
51单片机设计跑马灯的程序用(c语言)编写
|P1口接8个发光二极管共阳
#include AT89X51.H
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m0;m--)
for(n=20;n0;n--)
for(s=248;s0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i8;i++)
{
a=tempi;
b=temp(8-i);
P1=a|b;
delay();
}
for(i=1;i8;i++)
{
a=tempi;
b=temp(8-i);
P1=a|b;
delay();
}
}
}
扩展资料:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
参考资料来源:百度百科-51单片机
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)
单片机流水灯C语言程序的源代码如下:
#include //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp=1;
}
temp=0x80;
for(i=0;i8;i++) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp=1;
}
temp=0xFE;
for(i=0;i8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp=1;
}
temp=0x7F;
for(i=0;i8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp=1;
}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt255;bt++);
}
扩展资料
51单片机流水灯的源代码如下
#includereg51.h
#includeintrins.h
void?delay(int?a)
{
int?i;
while(a--)for(i=0;i110;i++);
}
main()
{
int?i;
while(1)
{
P0=0xfe;
for(i=0;i8;i++)
{
P0=_crol_(P0,1);
delay(500);
}
}
}
用51单片机设计8个灯的跑马灯程序拜托各位大神
/**************************************************************** 程序名称: 八位LED双灯右移动流水灯显示 说明:使用本程序你必须把 SE3设置为2-3短接 SE4设置为1-2短接 *****************************************************************/ /*头文件*/ #include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char /*端口定义*/ #define led_port P0 /*定义LED显示的数据脚*/ /*1MS为单位的延时程序*/ void delay_1ms(uchar x) { uchar j; while(x--){ for(j=0;j125;j++) {;} } } /*主程序*/ void main() { uchar led_sdata; /*显示寄存器*/ uchar i; while(1){ led_sdata=0xfe; /*初始化显示寄存器为1号灯亮*/ led_port = led_sdata; /*将显示寄存器输出到LED端口*/ delay_1ms(200); delay_1ms(200); /*延时*/ led_sdata=0xfc; /*显示寄存器为1.2号灯亮*/ for(i=0;i8;i++){ led_port = led_sdata; /*将显示寄存器输出到LED端口*/ led_sdata = (led_sdata1)+1; /*将显示寄存器数据左移1位,并将第一位置高,即熄灭*/ delay_1ms(200); delay_1ms(200); /*延时*/ } led_sdata=0xff; /*灯全灭*/ led_port = led_sdata; /*将显示寄存器输出到LED端口*/ delay_1ms(200); delay_1ms(200); /*延时*/ } }