主页 > 焦点科技 >俄塞俄比亚_c51编程 四个灯跑马灯 >

俄塞俄比亚_c51编程 四个灯跑马灯

c51编程 四个灯跑马灯

0xfe 十六的表示方法
换成二进制则为:1111 1110 ,刚好与单片8个端口一一对应
初值设为0xfe1111 1110,就是只点亮0号端口
高位在前,低位在后,排列顺序是 7 6 5 4 3 2 1 0
因为单片机的端口是0有效,即端口为0,所以发光二级管点亮
至于如何换算,你可以使用系统自带的计算器进行换算
计算器的使用方法是,点击查看,再选择科学型即可,就会看到几种进制格式,可以互相转换的
还有就是弄一个速查表,方便,如下图

你的灯应该是低电平亮,设置0xfe,则为位0为低电平,要实现四个跑马灯循环亮,初始值要设为0xee,每四位就重复。追问

为什么要设置成0xee呢追答

这样能保证4位的循环11101110。
用单片机c语言的编程方法,编写一个跑马灯程序,类似于#include……


简单#include
void delay(unsigned int x);
void main()
{
int a;
while(1)

{
for(a=0;a<255;a++)
{
P1=a;//机io口P1.0-P1.7LED//
delay(100);

}
}

}
void delay(unsigned int x)
{
unsigned int y,z;
for(y=0;y{
for(z=0;z<150;z++);
}
}
纯手写纳吧这种在网上很多啊……自己可以查到跑马灯(流水灯)的C程序几种花式?
单片机编程 跑马灯循环十次,,程序怎么没?
#include
#define uchar unsigned char
delay(uchar a)
{
uchar i,j;
for(i=0;ifor(j=0;j<120;j++);
}

main()
{
uchar led=0xfe,i;
for(i=0;i<10;i++)
{
for(j=0;j<8;j++)
{
P0=led;
delay(100);
led=(led<<1)|0x01;
if(led==0xff)led=0xfe;
}}
}本回答被网友采纳哎。。。这么简答的代码,自己不去翻书,问老师,请教同学。直接来要代码。。。可耻!~
这样的处事方法,你永远都不会。。。追问

太可耻了。。。。。。我翻书去了。。。。;追答

孺子可教。。。:)看看是不是在while(1)的循环里,如果是的话,把while(1)加载程序的末尾就可以了。
用C语言编写程序,8个灯的跑马灯,灯在P1口。用左移来编写


#include
intmain()
{
inta=0b11111111;
while(a)
{
printf("%d ",a&1);
a=a>>1;
}
return0;
}

本回答被网友采纳


上一篇: 下一篇: