×
单片机 > 单片机程序设计 > 详情

LED--8051驱动测试程序

发布时间:2020-06-04 发布时间:
|
  1. /************************************************
  2. 功能:LED--8051驱动测试程序(共阴极)
  3. 使用:调用函数 LEDn_display(*****) 
  4.         n表示用几个数码管显示n<=4
  5.         参数传递跟据具体情况确定
  6. 时间:2011年1月7日
  7. ************************************************/
  8. #include
  9. #include 
  10. #define uint unsigned int
  11. #define uchar unsigned char
  12.  
  13. sbit dula=P2^6;        //段码控制
  14.  
  15. sbit wela=P2^7;        //位码控制
  16.  
  17.  
  18. /*共阴(CC)极显示段码*/
  19. uchar code LED_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  20.  
  21. void LED_delay(unsigned char LED_i)        //1ms延时程序
  22.  
  23. {
  24.     unsigned char LED_j,LED_k;
  25.   for(LED_j=LED_i;LED_j>0;LED_j--)
  26.     for(LED_k=125;LED_k>0;LED_k--);
  27. }
  28.  
  29. void LED1_display(uchar sh_c,uchar g_c)            //1位显示程序
  30.  
  31.     //显示个位
  32.  
  33.    P0=0xfb; wela=1; wela=0;        //第一个数码码管当前显示
  34.  
  35.    P0=LED_table[g_c]; dula=1; dula=0;    //显示的数字
  36.  
  37.    LED_delay(5);
  38. }
  39.  
  40. void LED2_display(uchar sh_c,uchar g_c)            //2位显示程序
  41.  
  42.     //显示十位
  43.  
  44.    wela=0; P0=0xfd; wela=1; wela=0; 
  45.    dula=0; P0=LED_table[sh_c]; dula=1; dula=0;
  46.    LED_delay(5);
  47.    
  48.     //显示个位
  49.  
  50.    P0=0xfb; wela=1; wela=0;
  51.    P0=LED_table[g_c]; dula=1; dula=0;
  52.    LED_delay(5);
  53. }
  54.  
  55. void LED3_display(uchar bai_c,uchar sh_c,uchar g_c)            //3位显示程序
  56.  
  57.   
  58.     //显示百位 
  59.  
  60.     P0=0xfe; wela=1; wela=0;
  61.     P0=LED_table[bai_c]; dula=1; dula=0; 
  62.     LED_delay(5);    
  63.  
  64.     //显示十位
  65.  
  66.    wela=0; P0=0xfd; wela=1; wela=0; 
  67.    dula=0; P0=LED_table[sh_c]; dula=1; dula=0;
  68.    LED_delay(5);
  69.    
  70.     //显示个位
  71.  
  72.    P0=0xfb; wela=1; wela=0;
  73.    P0=LED_table[g_c]; dula=1; dula=0;
  74.    LED_delay(5);
  75. }
  76.  
  77. void LED4_display(uchar qian_c,uchar bai_c,uchar sh_c,uchar g_c)            //4位显示程序
  78.  
  79. {      
  80.     //显示千位 
  81.  
  82.     P0=0xfe; wela=1; wela=0;
  83.     P0=LED_table[bai_c]; dula=1; dula=0; 
  84.     
  85.     //显示百位 
  86.  
  87.     P0=0xfe; wela=1; wela=0;
  88.     P0=LED_table[bai_c]; dula=1; dula=0; 
  89.     LED_delay(5);    
  90.  
  91.     //显示十位
  92.  
  93.    wela=0; P0=0xfd; wela=1; wela=0; 
  94.    dula=0; P0=LED_table[sh_c]; dula=1; dula=0;
  95.    LED_delay(5);
  96.    
  97.     //显示个位
  98.  
  99.    P0=0xfb; wela=1; wela=0;
  100.    P0=LED_table[g_c]; dula=1; dula=0;
  101.    LED_delay(5);
  102. }


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用Atmega 16单片机驱动字符型液晶显示芯片