#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint) //声明延时函数
void main(void)
{
uint i
uchar temp
while(1)
{
temp=0x01
for(i=0i<8i++) //8个流水灯逐个闪动
{
P1=~temp
delay(100) //调用延时函数
temp<<=1
}
}
void delay(uint t) //定义延时函数
{
register uint bt
for(tt--)
for(bt=0bt<255bt++)
}
跑马灯程序最基本的,c语言还未入门啊!!!
给个示例程序看看/*-----------------------------------------------
名称:流水灯
公司:上海浩豚电子科技有限公司
编写:师访
日期:2009.5
修改:无
内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果
------------------------------------------------*/
#include<reg52.h>
//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
延时子程序
------------------------------------------------*/
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
//重新赋值
}
}
}
你CPU的种类是什么都不说,编个毛的程序呀第一个
P0 = 0x00000000
int t = 3
while(t--) //3次循环
{
while(1)
{
delay(500)//延时500毫秒
P0 <<= 1//点亮下一个灯
P0 |= 1
if(P0==0x7FFFFFFF) //灯全亮后,全部熄灭
{
P0 = 0x00000000
break//跳出小循环
}
}
}
第二个
int d1 = 0x20000000//30号等亮
int d2 = 0x00000001//1号等亮
P0=d1|d2
int t = 10
while(t--) //循环10次
{
while(1)
{
delay(500)//延时500毫秒
d1 >>= 1//控制逆时针依次亮
d2 <<=1 //控制顺时针依次亮
P0=d1|d2//合成输出
if(d1==0) //循环一次结束
{
int d1 = 0x20000000
int d2 = 0x00000001
P0=d1|d2
break
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)