📄 hallcm.lst
字号:
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 + -