1、用精确定族盯时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。
2、#include "盯穗竖reg51.h"首先写出单片机的头函数。
3、#include "intrins.h"输入位凯大移函数。
4、unsigned int count=0,led定义函数。
5、输入主函数,定义单片机的端口,写入延时函数。
6、中断跳转,使流水灯运行起来。
#include<reg52.h>#include <intrins.h>//包含有则让左右循环移位子函数的库
#define uint unsigned int
#define uchar unsigned char void delay(uint z) //延时函数,z的取值为这个函数的延时ms数
{
uint x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
void main() //主函数
{
uchar a,i,j
while(1)
{
for(j=0j<3j++) //寄偶交替
{
P1=0x55
delay(300)
P1=0xaa
delay(300)
}
for(j=0j<3j++)//流汪碰水灯
{
a=0xfe
for(i=0i<8i++)
{
P1=a
delay(300)
a=_crol_(a,1)
}
}
P1=0xff
for(j=0j<3j++) //从两边往中间流
{
P1=0x7e
delay(300)
P1=0xbd
delay(300)
P1=0xdb
delay(300)
P1=0xe7
delay(300)
}
P1=0xff
for(j=0j<3j++)//从中间往两边流
{
P1=0xe7
delay(300)
P1=0xdb
delay(300)
P1=0xbd
delay(300)
P1=0x7e
delay(300)
}
P1=0xff
for(j=0j<6j++)
{
P1=~P1
delay(300)
}
P1=0xff
}
}你试下行不行,是11.0592MHz的,时间上接近,但不精困盯谈确的!
#include<reg51.h>
voiddelay(void)
{
unsignedinti,j
for(i=0i<200i++)
for(j=0j<1000j++)
}
voidmain(void)
{
while(1)
{
P3=0xfe//第一个灯亮拿薯歼
delay()//延时
P3=0xfd//第二个灯亮
delay()
P3=0xfb//第三个灯亮
delay()
P3=0xf7//第四个灯亮
delay()
P3=0xef//第五个灯亮
delay()
P3=0xdf//第六个灯亮
delay()
P3=0xbf//第七个灯亮
delay()
P3=0x7f//第八个灯亮
delay()
}
}
扩展资料
单片机C语言16种方式流水灯
voidmain()
{
while(1)
{
P1=0xfe//点亮第一个发光管
Delay(5000)
P1=0xfd//点亮手烂第消冲二个发光管
Delay(5000)
P1=0xfb
Delay(5000)
P1=0xf7
Delay(5000)
P1=0xef
Delay(5000)
P1=0xdf
Delay(5000)
P1=0xbf
Delay(5000)
P1=0x7f//点亮第八个发光管
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)