㈠ 单片机,跑马灯,交替闪烁,C语言代码
#include<reg51.h>
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
unsigned char i,led;
led=0xfe;
while(1)
{
P0=led;
delay(500);
P0=0xff;
delay(500);
led=(led<<1)|0x01;
if(led==0xff)led=0xfe;
}
}
㈡ 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;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i<8;i++)
{
a=temp<<i;
b=temp>>(8-i);
P1=a|b;
delay();
}
for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<<(8-i);
P1=a|b;
delay();
}
}
}
(2)单片机跑马灯程序c语言扩展阅读:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
㈢ 51单片机 ,设计一个跑马灯程序,用软件延时,p0输出,怎么设计c语言,用p1口的开关控制灯循环的速率
51单片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)
void delay(int times){//延时函数,times控制延时时间
int i, j;
for(i = 0; i < times; i++)
for(j = 0; j < 210; j++)
;
}
int main(void){
unsigned char data, i;
while(1){
data = P1;//把开关值读回来
for(i = 0; i < 8; i++){
P0 = ~(0x01 << i); //某位为高电平某位对应的灯亮
delay(data);//把读取的开关值用来控制延时
}
}
}
㈣ 单片机PO P1口控制16个LED 的跑马灯程序
#include <reg52.h>
void time(unsigned int ucMs);//函数声明
void main(void)
{
unsigned char ucTimes;
#define DELAY_TIME 450
while(1)
{
P1=0xff;
P0=0xff;
for(ucTimes=0;ucTimes<8;ucTimes++){
P0 = P0 - (0x01<<ucTimes);time(DELAY_TIME);}
for(ucTimes=0;ucTimes<8;ucTimes++){
P1 = P1 - (0x01<<ucTimes);time(DELAY_TIME);}
P1=0xff;
P0=0xff;
for(ucTimes=0;ucTimes<8;ucTimes++){
P1 = P1 - (0x80>>ucTimes);time(DELAY_TIME);}
for(ucTimes=0;ucTimes<8;ucTimes++){
P0 = P0 - (0x80>>ucTimes);time(DELAY_TIME);}
}}
void time(unsigned int ucMs)
{
#define DELAYTIMES 239
unsigned char ucCounter;
while(ucMs!=0) {
for(ucCounter=0; ucCounter<DELAYTIMES; ucCounter++) { }
ucMs--;
}
}
㈤ 单片机跑马灯C语言程序,只要实现跑马灯功能,要简单点
#include<stdio.h>
#include<reg51.h>
void main()
{
int a;
unsigned char tmp=0;
while(1)
{
if(tmp==0) tmp=0x80;
else tmp = (tmp>>1);
P1 = tmp; //P1.0到P1.7控制8个灯
for(a=50000;a;a--); //延时一下
}
}
//只是示例,凑和一下
㈥ 怎么用单片机按键控制循环跑马灯
我刚好写过一个这样的程序,参考一下吧,希望对你有帮助
/*硬件电路连接:流水灯接在P0口, 阳极接高电平,
阴极接P0口,4个按键分别接P3.4,P3.5, P3.6,P3.7 ,按下时是低电平 */
#include <regx51.h>
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//左流水灯数组
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//右流水灯数组
int c[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; //逐盏点亮,逐盏灭掉数组
//************************************************************************************************************
void delay()
//延时子程序
{int i;
for(i=0;i<30000;i++);
}
//**********************************************************************************************************
void aa() //实现要求(1)的子程序(key1按下时流水灯,弹开时全灭)
{ int i=0;
while(!key1) //判断是否有键按下
{P0=a[i];delay();i++;if(i==8)i=0;}//流水灯
}
//*************************************************************************************************************
void bb() // 实现要求(2)的子程序(key2按下时实现计数功能,弹开时停止计数;)
{
while(!key2){P0--;delay();if(P0==0)P0=0xff;} //判断是否有键按下,按下则计数器加1
}
//*************************************************************************************************************
void cc() // 实现要求(3)的子程序(key3按下时实现逐盏点亮,逐盏灭掉)
{ int i=0;
P0=0xff ;// 发光二极管全灭
while(!key3) //判断是否有键按下
{P0=c[i];delay();i++;if(i==16)i=0;}//逐盏点亮,逐盏灭掉
}
//*************************************************************************************************************
void dd() // 实现要求(4)的子程序(key4按第一次按下,左流水,第二次按下,右流水,第三次按下,熄灭)
{ int i=0,j=0,k=0,h=0;
loop:P0=0xff;
if(key4==0)
//第一次判断是否有键按下
{for(i=0;i<30000;i++); //延时防抖动
if(key4==1)
//判断按键是否弹起
while(1){P0=a[j];delay();j++;if(j==8)j=0; //左流水灯
if(key4==0)
//第二次判断是否有键按下
{for(i=0;i<30000;i++);
//延时防抖动
if(key4==1)
//判断按键是否弹起
while(1){P0=b[k];delay();k++;if(k==8)k=0; //右流水灯
if(key4==0)
//第三次判断是否有键按下
{for(i=0;i<30000;i++);
//延时防抖动
if(key4==1)
//判断按键是否弹起
goto loop;
//跳转到LOOP处,即P3=0xff,此时灯全灭
}}}}}}
//****************************************************************************************************************
main()
{while(1){P0=0xff;
while(!key1)aa();
while(!key2)bb();
while(!key3)cc();
while(!key4)dd();
}}