⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 本程序是汽车音响中不可缺少的LCD显示程序
💻 C
📖 第 1 页 / 共 5 页
字号:
       Typ_Bb8           D12;
       Typ_Bb8           D20;
#define LOCK_DET_RESET   D20.bit.b7 = 1

	Typ_Bb8          D21;
#define IF_COUNTER_START D21.bit.b0 = 1    /* counter start/stop */
#define IF_COUNTER_STOP  D21.bit.b0 = 0

	Typ_Bb8    D22;
#define IO1   D21.bit.b7
#define IO2   D22.bit.b0
#define IO3   D22.bit.b1
#define IO4   D22.bit.b2
/* ****************** */
#define IO5   D22.bit.b3
#define IO6   D22.bit.b4
#define IO7   D22.bit.b5
#define M9    D21.bit.b6
#define M8    D21.bit.b5
#define M7    D21.bit.b4
#if AX6013
#define STEREO_MODE      IO3 = 1
#define MONO_MODE        IO3 = 0
#define AM_VCC_ON        IO1 = 1
#define FM_VCC_ON        IO1 = 0
#define LOCAL_ON         IO2 = 0
#define LOCAL_OFF        IO2 = 1
#define SEEK_ON          IO5 = 1
#define SEEK_OFF         IO5 = 0
#else
/* ****************************************** */
#define STEREO_MODE      IO3 = 0
#define MONO_MODE        IO3 = 1
#define AM_VCC_ON        IO2 = 1
#define FM_VCC_ON        IO2 = 0
#define LOCAL_ON         IO4 = 0
#define LOCAL_OFF        IO4 = 1
#define SEEK_ON          IO5 = 0
#define SEEK_OFF         IO5 = 1
#endif
         Typ_Bb8    IF_CHECK;
#define OVERFLOW   (IF_CHECK.bit.b4)
#define BUSY       (IF_CHECK.bit.b5)
/* ****************************************** */
#else
        Typ_Bb8       D12;
#define IF_COUNTER_START D12.bit.b2 = 1;    /* counter start/stop */
#define IF_COUNTER_STOP  D12.bit.b2 = 0;

	Typ_Bb8       D20;
#define B04     (D20.bit.b7)
#define B03     (D20.bit.b6)
#define B02     (D20.bit.b5)
#define B01     (D20.bit.b4)
#define IO2     (D20.bit.b3)
#define IO1     (D20.bit.b2)
#define IOC2    (D20.bit.b1)
#define IOC1    (D20.bit.b0)

#define STEREO_MODE B04 = 1
#define MONO_MODE   B04 = 0
#define FM_VCC_ON  {B02 = 0;B03 = 1; }
#define SEEK_ON     {IOC2= 1;IO2 = 0;}
#define SEEK_OFF    {IOC2= 1;IO2 = 1;}
#define LOCAL_ON    B01 = 0
#define LOCAL_OFF   B01 = 1
	Typ_Bb8       D21;
#define B05     (D21.bit.b0)

#define AM_VCC_ON   {B02= 1;B03 = 0; }
	Typ_Bb8       D22;

#endif
        Typ_Bb8          g_flag7;
#define Refresh_Lcd            (g_flag7.bit.b0)
#define Write_VCD_Buff         (g_flag7.bit.b1)
#define PAUSE_STATE            (g_flag7.bit.b2)
#define numeric_key_flag       (g_flag7.bit.b3)
#define Resume_VCD_Share_Flag  (g_flag7.bit.b4)
#define intro_dsp              (g_flag7.bit.b5)
#define STANDBY_KEY_ON         (g_flag7.bit.b6)
#define FF_KEY_ON              (g_flag7.bit.b7)
         Typ_Bb8                g_flag8;
#define  LoudKey_On            (g_flag8.bit.b0)
#define  RdsModeSel            (g_flag8.bit.b1)
#define  FB_KEY_ON             (g_flag8.bit.b2)
#define  DVD_Eject             (g_flag8.bit.b3)
#define  DthSwOff              (g_flag8.bit.b4)
#define  No_Beep               (g_flag8.bit.b5)
#define  Mute_Cancel           (g_flag8.bit.b6)
#define  DoubleFreq            (g_flag8.bit.b7)
         Typ_Bb8               g_flag9;
#define  AutoIntroScan         (g_flag9.bit.b0)
#define  MPEG_EJECT            (g_flag9.bit.b1)
#define  Clear_Resume_Flag     (g_flag9.bit.b2)
#define  transmitpaneldet      (g_flag9.bit.b3)
#define  Sel_Time_Set          (g_flag9.bit.b4)
#define  PassOrigin            (g_flag9.bit.b5)
#define  LoudKey_Hit           (g_flag9.bit.b6)
#define  PanelDetOff           (g_flag9.bit.b7)
         Typ_Bb8               g_flag10;
#define  LcdMode               (g_flag10.bit.b0)
#define  ReceiveWordCount      (g_flag10.bit.b1)
#define  RdsModeOnKey          (g_flag10.bit.b2)
#define  RdsModeHit            (g_flag10.bit.b3)
#define  SOURCE_KEY_ON         (g_flag10.bit.b4)
#define  Enable_Aux1           (g_flag10.bit.b5)
#define  SendFlagStart         (g_flag10.bit.b7)
#define  Lcd292                0
#define  Lcd285                1
         Typ_Bb8               g_flag11;
#define FlashFlag             (g_flag11.bit.b0)
#define NO_USE                (g_flag11.bit.b1)
#define  Id3Mode              (g_flag11.bit.b2)
#define Mp3MoveFlag           (g_flag11.bit.b3)
#define SlowClkMode           (g_flag11.bit.b4)
#define TaModeKey_Hit         (g_flag11.bit.b5)
#define TaModeKey_On          (g_flag11.bit.b6)
#define RdsIntEnable          (g_flag11.bit.b7)
       Typ_Bb8   Share_Buff;
#define CHINESE_OSD     Share_Buff.bit.b7
#define ENGLISH_OSD     Share_Buff.bit.b7
#define CHANNEL_LEFT    Share_Buff.bit.b6
#define CHANNEL_STEREO  Share_Buff.bit.b5
#define CHANNEL_RIGHT   Share_Buff.bit.b4
#define Esp_Mode        Share_Buff.bit.b0
#if !PLAY_DVD
#define Id3Mode         Share_Buff.bit.b1
#define EnDispChar      Share_Buff.bit.b2
#endif
#if USE_BLUETOOTH
        Typ_Bb8               g_flag13;
#define DialNumberSend        (g_flag13.bit.b0)    //发送电话号码标志
#define BlueFistInit          (g_flag13.bit.b1)    //Blue按键处理标志  1=BLUE KEY    0=remo key
#define SetBlueDisplay        (g_flag13.bit.b2)    //Blue显示标志
#define Send_dtmf_Hit         (g_flag13.bit.b3)   //发送DTMF标志
#define EqPairKey_Hit         (g_flag13.bit.b4)
#define BlueToothOn           (g_flag13.bit.b5)   //Blue语音通道标志
#define bBlueToothOn          (g_flag13.bit.b6)
#define EnableMoveNumber      (g_flag13.bit.b7)   

Typ_Bb8               g_flag14;
#define  RING_IND_Answe         (g_flag14.bit.b0)    
#define  Number_ease            (g_flag14.bit.b1)     //数字察除标志 
#define  BlueToothCallInd       (g_flag14.bit.b2)
#define  BLUE_link              (g_flag14.bit.b3)
#define  CALL_HangUp1           (g_flag14.bit.b4)   //用于判断MUTE_keyg挂机后收到CALLER_ID_IND 
#define  CALL_HangUp            (g_flag14.bit.b5)
#define  Pair_Hit               (g_flag14.bit.b6)
#define  CALL_HfRepeat          (g_flag14.bit.b7)
Typ_Bb8               g_flag15;
#define  CLear_BLUE_disply      (g_flag15.bit.b1)
#define  CLear_BLUE_disply1     (g_flag15.bit.b2)


#endif

#define TRACK_255       Share_Buff.bit.b3
/* *******************electronic volume var  ********************************/
	unsigned  int     freq[1];
        unsigned  char    mainvol[1];
#define VOL_Ptr   mainvol
        unsigned  char  main_volume_data;
        unsigned  char  bass_volume_data;
        unsigned  char  treble_volume_data;
        unsigned  char  bal_ptr;
        unsigned  char  fad_ptr;
        unsigned  char  fl_volume_data;
        unsigned  char  fr_volume_data;
        unsigned  char  rl_volume_data;
        unsigned  char  rr_volume_data;
        unsigned  char  volume_data;
        unsigned  char  AD_value;
        unsigned  char  temp_data;
        unsigned  char  ii;
        unsigned  char  half_second;
        unsigned  char  vcd_time_counter;
        unsigned  char  vcd_lump_counter;
        unsigned  char  vcd_message_counter;
        unsigned  char  current_track;
        unsigned  char  current_min;
        unsigned  char  current_sec;
        unsigned  char  Track_Buff;
        unsigned  char  Track100_Buff;
        unsigned  char  Minute_Buff;
        unsigned  char  Second_Buff;
        unsigned  char  Title_Buff;
        unsigned  char  Minute100_Buff;
        unsigned  char  SDLEVELMAX;
#if  LCD1621
        unsigned  char  Ht1621FlashTimer;
#endif
         union   unihl  RxBuff1;
#define RxBuff_L      RxBuff1.hl_c[0]     /* D10 */
#define RxBuff_H      RxBuff1.hl_c[1]     /* D11 */
#define RxBuff        RxBuff1.hl_i        /* PLL control data    */

/* ******************************************************* */
#pragma section area near        0x0100

#define NORMAL_STATE     0
#define MINUTE_STATE     1
#define HOUR_STATE       2
       unsigned  char  RefreshCount;
       unsigned char  LockTimer;
       unsigned  int  FM_BASE_DATA;   /* 1964  1964/2 - 107 = 875         */
       unsigned  int  AM_BASE_DATA;   /* 1249x9 - 10710  = 531            */
       unsigned  int  FM_MAX_STEP;
       unsigned  int  AM_MAX_STEP;
       unsigned  char band_select;
       unsigned  char Save_Band_Number;
       unsigned  char tuner_system;
#define EUROPE   0
#define USA1     1
#define USA2     2
#define JAPAN    3
#define RUSSIA   4
#define FM_ONLY  5
#define RUSSIA2  6

       Typ_Bb8      tuner_flag;
#define AM1_STATUS (tuner_flag.bit.b0)
#define AM2_STATUS (tuner_flag.bit.b1)
#define FM1_STATUS (tuner_flag.bit.b2)
#define FM2_STATUS (tuner_flag.bit.b3)
#define FM3_STATUS (tuner_flag.bit.b4)


#define  SEL_HOUR         0
#define  SEL_MIN          1

        unsigned  char    TrayState;
        unsigned  char    BTrayState;
        unsigned  char    DVDTrayState;
        unsigned  char    tray_counter;
#define  ResetCount ii
        unsigned  char volume_ptr;
        unsigned  char iii;
       unsigned  char   intro_scan_timer,intro_num;
       unsigned  char   hour;
       unsigned  char   minute;
       unsigned  char   second;
       unsigned  int    FM1_STEP;
       unsigned  int    FM2_STEP;
       unsigned  int    FM3_STEP;
       unsigned  char   AM1_STEP;
       unsigned  char   AM2_STEP;
       unsigned  char   AMN1;
       unsigned  char   AMN2;
       unsigned  char   FMN1;
       unsigned  char   FMN2;
       unsigned  char   FMN3;
#define  FM_Ram_Ptr   fm1_channel_data
       unsigned  int    fm1_channel_data[6];     /* array for store FM channel data */
       unsigned  int    fm2_channel_data[6];     /* array for store FM channel data */
       unsigned  int    fm3_channel_data[6];     /* array for store FM channel data */
#define  AM_Ram_Ptr   am1_channel_data
       unsigned  char   am1_channel_data[6];     /* array for store AM channel data */
       unsigned  char   am2_channel_data[6];     /* array for store AM channel data */
#if !PLAY_DVD
       unsigned  char   cur_tv_mode;
#endif
       unsigned  char   disc_timer;
       unsigned  char   toc_timer;
       unsigned  char   transmit_data_ptr;
       unsigned  char   Time_Buff[6];
       unsigned  char   StandbyState;
       unsigned  char   play_state;
       unsigned  char   Program_Ptr;
       unsigned  char   Program_counter;
       Typ_Bb8   Program_Track;
#define  Program_Start  Program_Track.bit.b7
       Typ_Bb8  TempData;
       unsigned  char   select_mode;
       unsigned  char   select_mode_counter;
       unsigned  char   sel_cur_track;
       unsigned  char   sel_cur_track_counter;
       unsigned  char   data_buff_h_bak;
#define  SELECT_MODE_IDLE     0
#define  SELECT_PLUS_10       1
#define  SELECT_FIRST_BIT     2
#define  SELECT_SECOND_BIT    3
#define  SELECT_THREE_BIT     4
#define MaxStackBuf   10
       unsigned  int    transmit_data_stack[MaxStackBuf];
       unsigned  char   MechanicType;
       unsigned  char   OPENOK;
       unsigned  char   CLOSEOK;
       unsigned  char   PASSOPEN;
       unsigned  char   FULLOPEN;
#define Komec200   0
#define Komec100   1
#define Xhcdc02    2
#define Xhdvd01    3
      unsigned  char   AutoSdLevel;
#if PT6524
       unsigned  int   control_data;
#else
       unsigned  char   control_data;
#endif
#if PT6524
       unsigned char   lcd_data;
       unsigned char   lcdpos;
#endif
#if LC75817
      unsigned char   lcd_data;
      unsigned char   lcdpos;
#endif
       unsigned  char   ShadowRam[LCD_MAX_BUF+1];
       unsigned  char   vcd_lcdbuff[LCD_MAX_BUF+1];
       unsigned char PlayMode;
       unsigned char DiscType;
       unsigned char SysIrCode;
#if USE_BLUETOOTH
       unsigned char  WriteBlueDataBuf[20];
       unsigned char  ReadBlueId;
       unsigned char  ReadBlueDataBuf[20];
       unsigned char  dial[20];
       unsigned char  blue_disp_buff[14];
       unsigned char  TelNumPtr;
       unsigned char  DetectBlueTimer;
       unsigned char   BlueDialTimer;
	unsigned char  Bluetest;
	unsigned char  CancelDialTimer;
       unsigned char  dial_length;
       unsigned char  MoveNumberCount;
       unsigned char  AnswerDial[20];
#endif
       
#pragma section code	n_code	near
const unsigned char Password[] =
{
0x10,0x22,0x33,0x48,0x25,0x88,0x48,0x22,0x33,0x48,0x22,0x33,0x48,0x22,0x33,0x48,
};
#if 0
#define TANoTaTpSdLevel 66
const unsigned char SdLevelMax[] =
{
51,56,61,66,71,76,81,86,92,96,102,107,112
};
#endif
#include    "LCD.C"
#include    "LCDDRV.C"

/* ********************************************************************** */
/* ********************************************************************** */
#if LC75817
const unsigned int LCD_digit_tbl[] = {
 '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F',0x00
};
#else
const unsigned int LCD_digit_tbl[] = {
 CHAR_0,CHAR_1,CHAR_2,CHAR_3,CHAR_4,CHAR_5,CHAR_6,CHAR_7,CHAR_8,CHAR_9,
 CHAR_A, CHAR_B, CHAR_C, CHAR_D, CHAR_E, CHAR_F,	0x00
};
#endif
const unsigned char FM_AM_MSG[] = {
SHOW_FM1,SHOW_FM2,SHOW_FM3,
SHOW_AM1,SHOW_AM2,
};
const unsigned char Volume_Data_Tbl[] = {
0x3f/*-78.00db 0*/,
0x39/*-71.25db 1*/,
0x34/*-65.00db 2*/,
0x31/*-61.25db 3*/,
0x29/*-51.25db 4*/,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -