51单片机定时器简单示例

第一次写博客这玩意,不太会,算了,直接粘代码吧。

 1 #include <reg52.h> 2 #include <intrins.h> //头文件,将会用到循环右移 3 //宏定义 4 #define uchar unsigned char 5 #define uint  unsigned int 6 //位、变量声明 7 sbit led1 = P1^0; 8 sbit dula = P2^6; 9 sbit wela = P2^7;10 uchar counter_ms, counter_s, led_flow = 0xfe;11 uchar code digitron_data[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f };12 //延时函数13 void delay(uint z)14 {15     uint x, y;16     for (x = 0; x < z; x++)17         for (y = 0; y < 114; y++);18 }19 //流水灯函数    20 void display_led ()21 {22     while(1) {23             led_flow = _cror_(led_flow, 1);24             P1 = led_flow;25             delay(500);//调用延时函数26     }27 }28 //数码管函数29 void display_digitron(uchar i)30 {31     uchar tens, ones;32     tens = i / 10;//求模得到十位33     ones = i % 10;//求余得到个位34     35     P0   = 0xff;//使所有数码管熄灭36     wela = 1;37     P0   = 0xfe;38     wela = 0;39     40     dula = 1;41     P0   = digitron_data[tens];42     dula = 0;43     delay(1);44     45     P0   = 0xff;46     wela = 1;47     P0   = 0xfd;48     wela = 0;49     50     dula = 1;51     P0   = digitron_data[ones];52     dula = 0;53     delay(1);54 }55 //定时器初始化函数56 void timer_init()57 {58     TMOD = 0x10;//TMOD的地址是0x89,不能被8整除,只能对字节操作,不能位操作59     TH1  = 0x4c;60     TL1  = 0x00;61     TR1  = 1;    //TCON的地址是0x88,可以对位操作62 }63 //主函数main64 void main()65 {66     timer_init();//调用定时器初始化函数67     while(1) {68         if (TF1 == 1) {69             TF1 = 0;70             TH1 = 0x4c;71         TL1 = 0x00;72             counter_ms++;    73         }74         if (counter_ms == 20) {//counter_ms累加20次是1秒75             counter_ms = 0;76             counter_s++;77         }78         if (counter_s ==60) {//counter_s累加60次是1分钟79             wela = 1;80             P0   = 0xff;81             wela = 0;82             TR1 = 0;83             display_led();//调用流水灯函数    84         /*85         led_flow = _cror_(led_flow, 1);86             P1       = led_flow;87             delay(500);88         */89         } else {90         display_digitron(counter_s);//调用数码管函数91         }92     }93 }

而它的种子,就是它生命的延续,继续承受风,

51单片机定时器简单示例

相关文章:

你感兴趣的文章:

标签云: