標題: 這單片機程序 數(shù)碼管顯示不完全 [打印本頁]

作者: 萌新小白一個    時間: 2021-4-7 21:55
標題: 這單片機程序 數(shù)碼管顯示不完全
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;


sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;


#define  GPIO_KEY P1
#define  GPIO_DIG P0
#define  NEGATIVE_SIGH_SUB=10
u8 KeyValue;
u8 code smgduan[]={1,2,3,0,
                         4,5,6,0,
                         7,8,9,0,
                         0,0,0,0};
u8 code smgduan1[]={1,2,3,0x2f-0x30,
                         4,5,6,0x2a-0x30,
                         7,8,9,0x2d-0x30,
                         0x01-0x30,0,0x3d-0x30,0x2b-0x30};


void delay(u16 i)
{
     while(i--);
}
void KeyDown()
{
    u8 a=0;
    GPIO_KEY=0x0f;
                if( GPIO_KEY!=0x0f)
                {
                    delay(1000);
                                if( GPIO_KEY!=0x0f)
                                {
                                    GPIO_KEY=0x0f;
                                                switch(GPIO_KEY)
                                                {
                                                case(0x07):  KeyValue=0;break;
                                                case(0x0b):  KeyValue=1;break;
                                                case(0x0d):  KeyValue=2;break;
                                                case(0x0e):  KeyValue=3;break;
                                                }
                                                GPIO_KEY=0xf0;
                                                switch(GPIO_KEY)
                                                {
                                                case(0x70):  KeyValue=KeyValue;break;
                                                case(0xb0):  KeyValue=KeyValue+4;break;
                                                case(0xd0):  KeyValue=KeyValue+8;break;
                                                case(0xe0):  KeyValue=KeyValue+12;break;
                                                }
                                                while((a<50)&&(        GPIO_KEY!=0xf0))
                                                {
                                                     delay(1000);
                                                                 a++;
                                                }
                                }
                }
}
                                                                        
void main()
{
    LSA=0;
                LSB=0;
                LSC=0;
                while(1)
                {
                    KeyDown();
                                GPIO_DIG=smgduan[KeyValue];
                }
}



作者: wulin    時間: 2021-4-8 06:37
  1. //順序共陰極數(shù)碼管段碼表,段碼a-h順序接PX0-PX7
  2. unsigned char code table[]={//共陰數(shù)碼管段碼"0~f-."
  3.                 0x3f,0x06,0x5b,0x4f,
  4.                 0x66,0x6d,0x7d,0x07,
  5.                 0x7f,0x6f,0x77,0x7c,
  6.                 0x39,0x5e,0x79,0x71,0x40,0x80};

  7. //反序共陰極數(shù)碼管段碼表,段碼a-h順序接PX7-PX0
  8. unsigned char code Table[]={//共陰數(shù)碼管段碼"0~f-."
  9.                 0xFC,0x60,0xDA,0xF2,
  10.                 0x66,0xB6,0xBE,0xE0,
  11.                 0xFE,0xF6,0xEE,0x3E,
  12.                 0x9C,0x7A,0x9E,0x8E,0x02,0x01};

  13. //順序共陽極數(shù)碼管段碼表,段碼a-h順序接PX0-PX7
  14. unsigned char code table[]={//共陽數(shù)碼管段碼"0~f-."
  15.                 0xc0,0xf9,0xa4,0xb0,
  16.                 0x99,0x92,0x82,0xf8,
  17.                 0x80,0x90,0x88,0x83,
  18.                 0xc6,0xa1,0x86,0x8e,0xbf,0x7f};

  19. //反序共陽極數(shù)碼管段碼表,段碼a-h順序接PX7-PX0
  20. unsigned char code Table[]={//共陰數(shù)碼管段碼"0~f-."
  21.                 0x03,0x9f,0x25,0x0d,
  22.                 0x99,0x49,0x41,0x1f,
  23.                 0x01,0x09,0x11,0xc1,
  24.                 0x63,0x85,0x61,0x71,0xfd,0xfe};
復制代碼





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1