1、利用定时/计数器T1产生定时时钟,
2、由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,
3、闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。
二、source program:
#include<reg52.h>
#include<intrins.h>
typedef unsigned char uchar;
int n=0;
uchar D1;
int main()
{ P1=0xFE;
D1=P1; //为P1赋初值,使第一个LED亮;
EA=1; //开总中断;
ET1=1; // 开内部中断定时器1;
TMOD=0x10; //设置定时/计数器1为定时器1且工作方式为方式1;
TR1=1; // 开定时器1;
TH1=(65535-50000)/256; //为定时器1高8位赋初值;
TL1=(65535-50000)%256; //为定时器1低8位赋初值;
while(1)
{
if(n==2) //判断n是否为2,若为2则主程序使LED依次一个一个闪烁;
{ n=0; //将n清零;
D1=_crol_(D1,1); //循环左移函数;
P1=D1;
}
}
return 0;
}
void timer1()interrupt 3
{
TH1=(65535-50000)/256; //工作方式为方式1时,每完成一次中断,
TL1=(65535-50000)%256; // 需重新赋初值;
n++;
}