完整的电路图:
完整的代码:
#include<reg51.h>
#include<intrins.h>
#define LED_PORT P2
#define uchar unsigned char
uchar num;
void time_init();
/**********************************
*函数名 :time0_init
*函数功能 :定时器初始化
*函数参数 : 无
*函数返回值: 无
***********************************/
void time0_init(void){
TMOD = 0x01;
EA = 1;
ET0 = 1;
TH0 = (65536-50000)/256; //设置50ms定时
TL0 = (65536-50000)%256;
TR0 = 1;
}
/**********************************
*函数名 :time0
*函数功能 :中断函数
*函数参数 : 无
*函数返回值: 无
***********************************/
void time0() interrupt 1 {
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
num ++;
}
/**********************************
*函数名 :main
*函数功能 :主函数
*函数参数 : 无
*函数返回值: 无
***********************************/
void main(void){
num = 0;
LED_PORT = 0xfe;
time0_init();
while(1){
if(num==20){//设置了20*50ms=1s的定时,流水灯每隔1s闪烁
LED_PORT = _crol_(LED_PORT,1); //该函数在intrins头文件中
num =0;
}
}
}
最后的效果展示: