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

📄 hallcm.lst

📁 威望公司MP3 + USB MCU 的参考软件
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.01   HALLCM                                                                04/17/2008 09:54:55 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE HALLCM
OBJECT MODULE PLACED IN .\Debug\hallcm.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcm\hallcm.c LARGE OPTIMIZE(9,SIZE) REGFILE(.\Debug\VA4010_SDK_V2.ORC) BROW
                    -SE NOINTPROMOTE INCDIR(.\common;.\e2prom;.\file;.\fmtx;.\ir;.\keyboard;.\lcm;.\led;.\main;.\matrixkey;.\mp3ctrl;.\sd;.\u
                    -sbhost;.\include;.\lib) DEBUG OBJECTEXTEND PRINT(.\Debug\hallcm.lst) OBJECT(.\Debug\hallcm.obj)

line level    source

   1          /****************************************************************
   2          *                      Viaon Technology (Suzhou) Co.,Ltd
   3          *
   4          *    Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
   5          *                    All rights reserved.
   6          *
   7          *
   8          * Filename:             hallcm.c
   9          *
  10          * Programmer:           Greg 
  11          *
  12          * Created:              1/2/2008
  13          *
  14          * Description:          public functions 
  15          *              
  16          *        
  17          * Change History (most recent first):   2008.1.2
  18          ****************************************************************/
  19          #include "config.h"
  20          #include "common.h"
  21          #include "va4010reg.h"
  22          #include "hallcm.h"
  23          //#include "libfat.h"
  24          #include "libfatif.h"
  25          
  26          #include "hallcmsplc502b.h"
  27          
  28          #if(DIGITAL_SHOW == DIGITAL_SHOW_LCM)
              //#include "8x5ascii.h"
              #include "8x16ascii.h"
              //#include "icon.h"
              #include "mycaricon.h"
              
              //when 24c08,61*16  when 24c64,96*16
              BYTE nAsciiDot[ASCIIDOT_BUF_SIZE];//96*16
              //CSB set as 0 always after reset
              
              #ifdef ENABLE_START_SCREEN
              void halLCMIcon(BYTE bCol, BYTE *buf)
              {
                      //MyCarDot
                      BYTE i, j;
                      BYTE data bEndCol = (bCol + MYCAR_WIDTH);
                      BYTE * bpTmp;   
              
                      if(bEndCol>128)
                              bEndCol = 128;
                              
                      for(i=0; i<MYCAR_PAGES; i++){   //Page 0 -> page 3
                              halLCMSPIInit();
                              halLCMSPISend(0xb0+(3-(i+1)), FALSE);//Page address
                              halLCMSPISend(0x10|(bCol>>4), FALSE);//Column address, high 4bits
                              halLCMSPISend(0x00|(bCol&0x0f), FALSE);//Column address, low 4bits;     
C51 COMPILER V8.01   HALLCM                                                                04/17/2008 09:54:55 PAGE 2   

              
                              bpTmp = buf+i*MYCAR_WIDTH;
                              for(j=bCol; j<bEndCol; j++){
                                      halLCMSPISend(*bpTmp, TRUE);
                                      bpTmp++;
                              }
              
                              for(j=bEndCol; j<128; j++){
                                      halLCMSPISend(0X00, TRUE);
                              }               
                      }
                      
                      return;
              }
              #endif
              
              static void _halLCMWrite(BYTE bColum, BYTE bPage, BYTE* bChar, BYTE bLen)
              {
                      BYTE i;
                      BYTE *bpTmp = bChar;
              
                      halLCMSPIInit();
                      halLCMSPISend(0xb0+(3-bPage), FALSE);//Page address
                      halLCMSPISend(0x10|(bColum>>4), FALSE);//Column address, high 4bits
                      halLCMSPISend(0x00|(bColum&0x0f), FALSE);//Column address, low 4bits;   
                      for(i=0; i<bLen; i++)//FONT WIDTH
                      {
                              halLCMSPISend(*bpTmp, TRUE);
                              bpTmp++;
                      }
              
                      return;
              }
              
              
              #if 1
              void halLCMSPIInit(void)
              {
              //      LCM_CSB = 0;
                      LCM_SCLK = 1;
              //      LCM_CSB_OUT();
                      LCM_SCLK_OUT();
                      LCM_A0 = 0;
                      LCM_A0_OUT();
              
                      LCM_SDA_OUT();
              //      LCM_CSB = 1;
              }
              #else
              #define halLCMSPIInit()
              #endif
              void halLCMSPISend(BYTE byData, BOOL bFlag)
              {
              #if 0
                      static BYTE data byBtCnt;
                      byBtCnt = 8;
                      LCM_CSB = 0;
                      LCM_A0 = bData; // 1=data, 0=cmd
                      LCM_SDA_OUT();
                      do
                      {
                              if(byData & (0x01<<(byBtCnt-1)))
C51 COMPILER V8.01   HALLCM                                                                04/17/2008 09:54:55 PAGE 3   

                                      LCM_SDA = 1;
                              else
                                      LCM_SDA = 0;
                              LCM_SCLK = 0; //low
                              LCM_SCLK = 1; //high
                              byBtCnt--;
                      }while(byBtCnt > 0);
                      LCM_CSB = 1;
              #else
                      BYTE data i;
              
              //      LCM_A0_OUT();
                      LCM_A0 = bFlag; // 1=data, 0=cmd
              
              //      LCM_SDA_OUT();
              //      LCM_SCLK_OUT();
              //      LCM_CSB_OUT();
              
              //      LCM_CSB = 0;
              //      LCM_SCLK = 1;
                      for(i=0; i<8; i++){
                              if(byData & 0x80)
                                      LCM_SDA = 1;
                              else
                                      LCM_SDA = 0;
              
                              LCM_SCLK = 0; //low
                              byData <<= 1;
                              LCM_SCLK = 1; //high
                      }
              //      LCM_CSB = 1;
              
                      return;
              #endif
              }
              
              void halLCMInit()
              {
                      halLCMSPIInit();
              #if 0
                      halLCMSPISend(0x21, FALSE); //function set PD=0 H1=0 H0=1
                      halLCMSPISend(0x14, FALSE); //set system bias, cur = 7
                      halLCMSPISend(0x08, FALSE); //set DO=0, bit2=0, LSB on the top
                      halLCMSPISend(0x82, FALSE); //Vop = 3.0V
              
                      halLCMSPISend(0x20, FALSE); //function set PD=0 H1=0 H0=0
                      halLCMSPISend(0x05, FALSE); //set Vlcd, prs=1
                      halLCMSPISend(0x0C, FALSE); //set display type : Nomal display
              
                      halLCMClear(0, 3);
              #else
                      UartOutText("-I-: LCM Init ! \r\n");
                      halInitSplc502b();
                      halSetSplc502b(0, 3, 0X00);//Clear screen 
              #endif
              }
              
              //      0x0F,0x1F,0x10,0x13,0x13,0x1F,0x0F,0x00,  // -@-
              //      0xE0,0xF0,0x10,0xD0,0xD0,0xD0,0x80,0x00,
              //      MSB
              //      0 0 0 0 0 0 0 0
              //      0 0 0 0 0 0 0 0
C51 COMPILER V8.01   HALLCM                                                                04/17/2008 09:54:55 PAGE 4   

              //      0 0 0 0 0 0 0 0
              //      0 1 1 1 1 1 0 0_
              //      1 1 0 0 0 1 1 0
              //      1 1 0 0 0 1 1 0
              //      1 1 0 1 1 1 1 0
              //      1 1 0 1 1 1 1 0__
              //      1 1 0 1 1 1 1 0
              //      1 1 0 1 1 1 0 0
              //      1 1 0 0 0 0 0 0
              //      0 1 1 1 1 1 0 0_
              //      0 0 0 0 0 0 0 0
              //      0 0 0 0 0 0 0 0
              //      0 0 0 0 0 0 0 0
              //      0 0 0 0 0 0 0 0
              //
              
              //      -@- 12x24, MSB on the top
              /*
              char at[] = {
                      0x07,0x08,0x10,0x21,0x23,0x22,0x22,0x23,  // -@-
                      0x11,0x08,0x07,0x00,0xFF,0x00,0xFF,0xFF,
                      0x01,0x01,0x01,0xFF,0xFF,0x00,0xFF,0x00,
                      0xE0,0x10,0x08,0x84,0x84,0x84,0x04,0x04,
                      0x84,0x88,0x10,0x00
              };
              
              //      -@- 24x48
              char at_big[] = {
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // -@-
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x03,0x0F,0x1C,0x30,0x60,
                      0x40,0xC0,0x81,0x81,0x82,0x82,0x82,0x41,
                      0x43,0x22,0x38,0x0F,0x07,0x00,0x00,0x00,
                      0x00,0x1F,0xFF,0xFF,0xC0,0x00,0x01,0x0F,
                      0x3E,0xF0,0xC0,0x00,0x00,0x00,0x07,0xFF,
                      0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,
                      0x00,0xF8,0xFF,0xFF,0x03,0x00,0xFC,0xFF,
                      0x03,0x01,0x01,0x03,0x07,0x1C,0xFF,0xFF,
                      0x81,0x01,0x03,0x1E,0xF8,0xC0,0x00,0x00,
                      0x00,0x00,0x80,0xE0,0xF0,0x78,0x1C,0x0E,
                      0x86,0x87,0x83,0x03,0x03,0x03,0x03,0x86,
                      0x86,0x8C,0x1C,0x30,0xE0,0x80,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
              };
              */
              void halLCMWriteData(BYTE byXAddr, BYTE byYAddr, BYTE* byData, BYTE byLen)
              {
                      BYTE data m;
                      BYTE data byX, byY;
                      BYTE * byCharData;
                      BYTE data byCurChar;
                      m = 0;
                      byX = byXAddr;
                      byY = byYAddr;
              
              //      if(byData == NULL) return;
                      
                      while(m < byLen)
                      {
C51 COMPILER V8.01   HALLCM                                                                04/17/2008 09:54:55 PAGE 5   

⌨️ 快捷键说明

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