下面是我一个移位的流水灯程序,你先看看这个程序,延时这里你修改一下就是哈,用定时器来租裂姿触发移位。提示你,你每秒移动移位,那你每个亮多久呢?要考虑好哦!后面我附加一个1s的定时器,你就自己稍微拼凑哈,挺简单的,希望你能解决!
#include
<reg52.h>
#include
<intrins.h>
#define
uint
unsigned
int
#define
uchar
unsigned
char
void
delay(uint)
void
main()
{
uchar
aa
aa=0xfe
while(1)
{
P1=aa
delay(800)
aa=_crol_(aa,1)
}
}
void
delay(uint
z)
{
uint
x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
定时器的
void
T0_time()
interrupt
1
//隔50ms跑过来到中断程序里源铅来,
{
TH0=(65536-50000)/256
TL0=(65536-50000)%256
num++
if(num==20)//50ms*20为1s
{
num=0
led1=~led1//实现灯的闪动
led2=~led2
}
}
稍微融合一下就OK
//稿搏没有编译过,大概思路就键橘祥这伍烂样#define P_LED P1//定义到你自己的端口
void main(void)
{
unsigned char circledata=0x01,i=0
while(1)
{
for(i=0i<4i++) //显示范围 P_LED.0:P_LED3
{
P_LED=circledata<<i
Delay_ms(1000)//根据自己的晶振写延时1S的函数
}
circledata=0xfe
for(i=3i>=0i--) //显示范围 P_LED.3:P_LED.0
{
P_LED=circledata<<i
Delay_ms(1000)//根据自己的晶振写延时1S的函数
}
}
return
}
/改拦*单片机,用定时中断稿歼改实现每隔0.2秒让接在P1口的8个小灯从左往右键判循环点亮。*/ #include #include #define uchar unsigned char uchar a,buchar b=1uchar a=0xfevoid main() { EA=1IT1=1ET0=1TH0=-5000/256TL0=-5000%256TMOD=0x01...(火星人)2086欢迎分享,转载请注明来源:内存溢出
评论列表(0条)