用c语言如何编写按一下开关跑马灯左移一下,按另一个开关右移一下

用c语言如何编写按一下开关跑马灯左移一下,按另一个开关右移一下,第1张

#include"STC12C5A60S2H"

sbit Key=P2^7;

unsigned char LED_TAB[8]=

{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void main()

{

unsigned char i=0;

while(1)

{

if(Key==0)

{

P0=~(LED_TAB[i]);

i++;

if(i>=8)i=0;

}

}

}

for(m=0;m<5;m++)

{

P1=0x0;

delay(300);

P1=0xff;

delay(300);

}

是这里吧

#include

<reg51h>

void

delay()

{

unsigned

char

n,

m;

for(

n

=

0;

n

<

100;

n++

)

for(

m

=

0;

m

<

130;

m++

);

}

void

main()

{

int

loop;

unsigned

char

temp

=

0x01;

for(

loop

=

0;

loop

<

8;

loop++

)

{

P1

=

temp;

temp

=

temp

<<

1;

delay();

}

}

用c51单片机,delay()函数到时自己根据情况再调

哥对你很失望,单片机不同换头文件不就可以了。你得学的灵活些。

#include <reg51h>

void delay(unsigned int i); char LED;

char TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,//共阳极0~4数码管显示数据

0x92,0x82,0xF8,0x80,0x98,//共阳极4~9数码管显示数据

0xA0,0x83,0xa7,0xa1,0x84,0x8e};

main()

{

unsigned char i;

while (1)

{ LED = 0xfe;

for (i = 0 ;i < 8 ; i++)

{

P0 = LED;

delay(500);

LED = LED << 1; LED = LED | 0x01; if (LED == 0x7f) break; }

for (i = 0 ;i < 8 ; i++)

{

P0 = LED;

delay(500);

LED = LED >> 1; LED = LED | 0x80;

}

}

}

while(1)

{

a[0]=s%10; //给显示数组赋值

a[1]=s/10;

a[2]=10;

a[3]=m%10;

a[4]=m/10;

a[5]=10;

/延时函数/

void delay(unsigned int i)

{

unsigned char j;

for(i; i > 0; i--)

for(j = 255; j > 0; j--);

}

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);//把读取的开关值用来控制延时

}

}

}

给个示例程序看看

/-----------------------------------------------

名称:流水灯

公司:上海浩豚电子科技有限公司

编写:师访

日期:20095

修改:无

内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果

------------------------------------------------/

#include<reg52h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

/------------------------------------------------

延时子程序

------------------------------------------------/

void delay(unsigned int cnt)

{

while(--cnt);

}

/------------------------------------------------

主函数

------------------------------------------------/

main()

{

P1=0xfe; //给初始化值 换算成二进制是1111 1110

while(1)

{

delay(30000);//延时程序

P1<<=1; //左移一位 该语句等效于 P1=P1<<1

P1|=0x01; //最后一位补1,该语句等效于 P1=P1|0x01 符号"|"表示"或"

if(P1==0x7f) //检测是否移到最左端?"=="表示检测符号2端的值是否相等

{

delay(30000);

P1=0xfe; //重新赋值

}

}

}

以上就是关于用c语言如何编写按一下开关跑马灯左移一下,按另一个开关右移一下全部的内容,包括:用c语言如何编写按一下开关跑马灯左移一下,按另一个开关右移一下、单片机C语言花式跑马灯程序有一问题解决不了,求大神详解!、求一个八路跑马灯程序(c语言的 )等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9419044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存