您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > 51单片机用定时器0实现流水灯 -
本文所属标签:
为本文创立个标签吧:

51单片机用定时器0实现流水灯 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值。原先写的都是用查表来移位的,个人感觉不怎

51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值。原先写的都是用查表来移位的,个人感觉不怎么好,麻烦。直接用位运算的比较好。 n初始值为0,然后n每次循环都加1,P1口赋值语句为: P1=~(0x01<< n) ; 此处注意和P1=~(0xfe<< n) ; 的区别。

本文引用地址: http://www.21ic.com/app/mcu/201806/764291.htm

/*********调用头文件*****************/

#include

#include


/***********宏定义*******************/

#define uint unsigned int

#define uchar unsigned char

#define long_time0 10 //定时器0定时时间,每次50ms


/************定义全局变量************/

uint n=0; //循环移位变量


/************子函数声明**************/

void init_time0(void); //定时器0初始化子函数


/*************主函数*****************/

void main(void)

{

init_time0();


}


/*********定时器0初始化函数**********/

void init_time0(void)

{

EA=1; //开总中断

ET0=1; //开定时器0中断

TMOD=0X01; //选择方式1

TH0=(65536-50000)/256; //每次定时50秒

TL0=(65526-50000)%256;

TR0=1; //开启定时器

while(1); //等待定时器0中断

}

/************定时器中断函数**********/

void time0(void) interrupt 1 using 0

{

static uint i=0;

i++;

if(long_time0==i)

{

P1=~(0x01<

if(++n==8)n=0;

i=0; //定时时间到清零

}

TH0=(65536-50000)/256; //重新装入初值

TL0=(65526-50000)%256;

}






              查看评论 回复



嵌入式交流网主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > 51单片机用定时器0实现流水灯 -
 

"51单片机用定时器0实现流水灯 -"的相关文章

网站地图

围观()