1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。
2、#include "reg51.h"首先写出单片机的头函数。
3、#include "intrins.h"输入位移函数。
4、unsigned int count=0,led定义函数。
5、输入主函数,定义单片机的端口,写入延时函数。
6、中断跳转,使流水灯运行起来。
#include
unsigned int LED
unsigned int a,i,m
void yiwei()
void delay(unsigned int b)
void main()
TMOD=0x01 //T0为方式1
TH0=(65536-50000)/256
TL0=(65536-50000)%256 //初值
EA=1 //允许中断
ET0=1
while(1)
P2=0x00
delay(2000)
LED = 0x7f
m
=0
for (i = 0 i <8 i++)
{
a=0
TR0=1
delay(100)
while(m)
delay(2000)
P2=0x00
delay(2000)
LED = 0xfe
m=0
for (i = 0 i <8 i++)
a=1
TR0=1
delay(100)
while(m)
}
delay(2000)
}
}
void t0() interrupt 1 using 1
{
TH0=(65536-50000)/256
TL0=(65536-50000)%256
m++
if(m==20)
{
m=0
yiwei()
}
}
void yiwei()
{
if(a==0)
{
P2=LED
LED = LED>>1 // 右移
LED = LED|0x80
}
else
{
P2 = LED
LED = LED <<1 // 左移
LED = LED | 0x01
}
}
void delay(unsigned int b)
{
unsigned char j
for(bb >0b--) //机器在这里执行需要一段时间 也就达到了延时效果
for(j = 255j >0j--)
}
自己调试过,我12晶振
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)