51单片机:数码管的静态显示和动态显示

-回复 -浏览
楼主 2020-10-16 15:19:26
举报 只看此人 收藏本贴 楼主

文章转自:http://blog.csdn.net/yunfeiyang62/article/details/48225697

作者:云飞扬_

数码管(Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。

数码管原理图:

数码管共阴极接法:

数码管共阳极接法:


数码管中有位选和段选,位选就是选择哪个数码管,段选就是被选择的数码管要显示什么数字!

根据数码管的段选,可以总结出数码管的显示数据表:

符号

不显示

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

.

编码

0x00

0x3F

0x06

0x5B

0x4F

0x66

0x6D

0x7D

0x07

0x7F

0x6F

0x77

0x7C

0x39

0x5E

0x79

0x71

0x80



数码管的静态显示:

  1. /*======================================================*/  

  2. /*  时间:2015年8月3日 21:19:03                       */  

  3. /*  功能:数码管的静态显示                             */  

  4. /*  目的:51单片机学习                                  */  

  5. /*      ^_^……!                                          */  

  6. /*======================================================*/  

  7.   

  8. #include <reg52.h>  

  9. #include "commLib.h"  

  10.   

  11. sbit WLE  = P2^7;       // 位选  

  12. sbit DLE  = P2^6;       // 段选  

  13.   

  14. #define DIGITAL_ARR_NUM     18  

  15. unsigned char code digital[DIGITAL_ARR_NUM] = {             // 数码管显示数据表  

  16. /*   0,    1,    2,    3,    4,     5,   6,    7,    8,     */  

  17.     0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,   

  18. /*   9,    A,    B,    C,    D,    E,    F,    .,   不显示     */  

  19.     0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x80, 0x00  

  20. };  

  21.   

  22. int main(void)  

  23. {  

  24.     unsigned int i;  

  25.       

  26.     // 位选  

  27.     WLE = 1;        // 位选端锁存器置高,送数据  

  28.     P0 = 0xC0;      // 送数据  

  29.     WLE = 0;        // 位选端锁存器置低,保存数据  

  30.       

  31.     while(1)  

  32.     {  

  33.         for (i = 0; i < DIGITAL_ARR_NUM; i++)  

  34.         {  

  35.             // 段选  

  36.             DLE = 1;            // 段选端锁存器置高,送数据  

  37.             P0 = digital[i];    // 送数据  

  38.             DLE = 0;            // 位选端锁存器置低,保存数据  

  39.               

  40.             delay(500);         // 延时500ms  

  41.         }  

  42.     }  

  43.   

  44.     return 0;  

  45. }</reg52.h>  


效果截图:



数码管的动态显示:

  1. /*======================================================*/  

  2. /*  时间:2015年8月6日 20:45:09                       */  

  3. /*  功能:数码管的动态显示                             */  

  4. /*  目的:51单片机学习                                  */  

  5. /*      ^_^……!                                          */  

  6. /*======================================================*/  

  7.   

  8. #include <reg52.h>  

  9. #include "commLib.h"  

  10.   

  11. sbit WLE  = P2^7;       // 位选  

  12. sbit DLE  = P2^6;       // 段选  

  13.   

  14. #define DIGITAL_ARR_NUM     18  

  15. unsigned char code digital[DIGITAL_ARR_NUM] = {             // 数码管显示数据表  

  16. /*   0,    1,    2,    3,    4,     5,   6,    7,    8,     */  

  17.     0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,   

  18. /*   9,    A,    B,    C,    D,    E,    F,    .,   不显示     */  

  19.     0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x80, 0x00  

  20. };  

  21.   

  22. int main(void)  

  23. {  

  24.     unsigned int i;  

  25.       

  26.     while (1)  

  27.     {  

  28.         for (i = 0; i < 6; i++)  

  29.         {  

  30.             P0 = 0xFF;              // 消影(必须有)  

  31.             WLE = 1;                // 位选端锁存器置高,送数据  

  32.             P0 = ccCrol(0xFE, i);   // 送数据  

  33.             WLE = 0;                // 位选端锁存器置低,保存数据  

  34.               

  35.             DLE = 1;                // 段选端锁存器置高,送数据  

  36.             P0 = digital[i];        // 送数据  

  37.             DLE = 0;                // 位选端锁存器置低,保存数据  

  38.               

  39.             delay(1);  

  40.         }  

  41.     }  

  42.       

  43.     return 0;  

  44. }</reg52.h>  


效果截图:



本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!

广告

关于立创商城

立创商城(WWW.SZLCSC.COM)成立于2011年,致力于为客户提供一站式电子元器件线上采购服务,成交量全国领先。拥有10000多平方米现代化元器件仓库,现货库存超100000种,集团电子全产业链自营服务涵盖:在线EDA(LCEDA)+行业领先的PCB打样/中小批量+元器件商城+钢网制造+SMT贴片+电子设计教育及方案。作为一家品种齐全、自营库存、质量有保障的电子元器件垂直商城,立创商城所有元器件均从原厂或代理商正规渠道采购,保证原装正品,为您提供专业的一站式元器件采购服务。

我要推荐
转发到

友情链接