C51学习 之 动态数码管

电路图

 

动态数码管代码

 1 //以下代码未经过验证
 2 #include <reg52.h>
 3 
 4 sbit WELA = P2^7;
 5 sbit DULA = P2^6;
 6 unsigned char count = 0;
 7 unsigned char code_count = 0;
 8 unsigned char code[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
 9 
10 void init()
11 {
12     WELA = 0;
13     DULA = 0;
14     P0 = 0x0;
15 }
16 
17 void delay(unsigned int value)
18 {
19     while(value--);
20 }
21 
22 int main()
23 {
24     init();
25     
26     while (1) {
27         //位选  低电平有效
28         WELA = 1;
29         P0 = ~(0x1 << count);
30         WELA = 0;
31 
32         //消影
33         P0 = 0x0;
34         
35         //段选   高电平有效
36         DULA = 1;
37         P0 = code[code_count];
38         DULA = 0;
39         
40         //消影
41         P0 = 0xff;
42         
43         delay(50000);  //500ms
44         
45         count++;
46         if (count == 8) {
47             count = 0;
48         }
49         code_count++;
50         if (code_count == 16) {
51             code_count = 0;
52         }
53     }
54 }

 

posted on 2021-05-30 14:16  向斯拉夫人告别  阅读(175)  评论(0编辑  收藏  举报

导航