www.pudn.com > remotepro.rar > SPILCD.c
#pragma sfr #define SET_LCDSCLK P0.4=1 #define CLR_LCDSCLK P0.4=0 #define SET_LCDDATA P0.3=1 #define CLR_LCDDATA P0.3=0 #define SET_CS P0.5=1 #define CLR_CS P0.5=0 #ifndef UINT8 unsigned char #define UINT8 unsigned char #endif #include#include "function.h" UINT8 display_num1,display_num2; struct{ UINT8 char_num[20]; }LCDchar; union { UINT8 TempData[4]; long x; }n; UINT8 display[10]; /* ********************************************************************************************* ********************************************************************************************* */ const unsigned char ASC_MSK[]={ 0x00,0x00,0x00, /*-- 文字: --*/ 0x00,0x00,0x00, /*-- 文字: ! --*/ 0x00,0x00,0x00, /*-- 文字: " --*/ 0x00,0x00,0x00, /*-- 文字: # --*/ 0x00,0x00,0x00, /*-- 文字: $ --*/ 0x00,0x00,0x10, /*-- 文字: % --*/ 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, /*-- 文字: . --*/ 0x00,0x00,0x00, /*-- 文字: / --*/ 0x00,0x00,0x00, /*-- 文字: 0 --*/ 0xC6,0x30,0x00, /*-- 文字: 1 --*/ 0x00,0x30,0x00, /*-- 文字: 2 --*/ 0xe4,0x28,0x00, /*-- 文字: 3 --*/ 0xe0,0x38,0x00, /*-- 文字: 4 --*/ 0x2a,0x09,0x00, /*-- 文字: 5 --*/ 0xe2,0x18,0x00, /*-- 文字: 6 --*/ 0xe6,0x18,0x00, /*-- 文字: 7 --*/ 0x80,0x30,0x00, /*-- 文字: 8 --*/ 0xe6,0x38,0x00, /*-- 文字: 9 --*/ //0x3b,0xe2,0x00, 0xe2,0x38,0x00, /*-- 文字: : --*/ 0x00,0x00,0x00, /*-- 文字: ; --*/ 0x00,0x00,0x00, /*-- 文字: < --*/ 0x00,0x00,0x00, /*-- 文字: = --*/ 0x00,0x00,0x00, /*-- 文字: > --*/ 0x00,0x00,0x00, /*-- 文字: ? --*/ 0x00,0x00,0x00, /*-- 文字: @ --*/ 0x00,0x00,0x00, /*-- 文字: A --*/ 0xa6,0x38,0x00, /*-- 文字: B --*/ 0xe6,0x38,0x00, /*-- 文字: C --*/ 0xc6,0x00,0x00, /*-- 文字: D --*/ 0xc6,0x30,0x00, /*-- 文字: E --*/ 0xE6,0x08,0x00, /*-- 文字: F --*/ 0xa6,0x08,0x00, /*-- 文字: G --*/ 0xc6,0x18,0x00, /*-- 文字: H --*/ 0x26,0x38,0x00, /*-- 文字: I --*/ 0xc8,0x01,0x00, /*-- 文字: J --*/ 0x30,0x40,0x00, /*-- 文字: K --*/ 0x06,0x06,0x00, /*-- 文字: L --*/ 0x46,0x00,0x00, /*-- 文字: M --*/ 0x8E,0x31,0x00, /*-- 文字: N --*/ 0x16,0x32,0x00, /*-- 文字: O --*/ 0xC6,0x30,0x00, /*-- 文字: P --*/ 0xa6,0x28,0x00, /*-- 文字: Q --*/ 0xc7,0x32,0x00, /*-- 文字: R --*/ 0xa6,0x2a,0x00, /*-- 文字: S --*/ 0xe2,0x18,0x00, /*-- 文字: T --*/ 0x88,0x01,0x00, /*-- 文字: U --*/ 0x46,0x30,0x00, /*-- 文字: V --*/ 0x0a,0x20,0x00, /*- 文字: W --*/ 0x4e,0x31,0x00, /*-- 文字: X --*/ 0x11,0x06,0x00, /*-- 文字: Y --*/ 0x18,0x04,0x00, /*-- 文字: Z --*/ 0xc1,0x04,0x00, /*-- 文字: [ --*/ 0x00,0x00,0x00, /*-- 文字: \ --*/ 0x00,0x00,0x00, /*-- 文字: ] --*/ 0x00,0x00,0x00, /*-- 文字: ^ --*/ 0x00,0x00,0x00, /*-- 文字: _ --*/ 0x00,0x00,0x00, /*-- 文字: ` --*/ 0x00,0x00,0x00, /*-- 文字: a --*/ 0x00,0x00,0x00, /*-- 文字: b --*/ 0x00,0x00,0x00, /*-- 文字: c --*/ 0x00,0x00,0x00, /*-- 文字: d --*/ 0x00,0x00,0x00, /*-- 文字: e --*/ 0x00,0x00,0x00, /*-- 文字: f --*/ 0x00,0x00,0x00, /*-- 文字: g --*/ 0x00,0x00,0x00, /*-- 文字: h --*/ 0x00,0x00,0x00, /*-- 文字: i --*/ 0x00,0x00,0x00, /*-- 文字: j --*/ 0x00,0x00,0x00, /*-- 文字: k --*/ 0x00,0x00,0x00, /*-- 文字: l --*/ 0x00,0x00,0x00, /*-- 文字: m --*/ 0x00,0x00,0x00, /*-- 文字: n --*/ 0x00,0x00,0x00, /*-- 文字: o --*/ 0x00,0x00,0x00, /*-- 文字: p --*/ 0x00,0x00,0x00, /*-- 文字: q --*/ 0x00,0x00,0x00, /*-- 文字: r --*/ 0x00,0x00,0x00, /*-- 文字: s --*/ 0x00,0x00,0x00, /*-- 文字: t --*/ 0x00,0x00,0x00, /*-- 文字: u --*/ 0x00,0x00,0x00, /*-- 文字: v --*/ 0x00,0x00,0x00, /*-- 文字: w --*/ 0x00,0x00,0x00, /*-- 文字: x --*/ 0x00,0x00,0x00, /*-- 文字: y --*/ 0x00,0x00,0x00, /*-- 文字: z --*/ 0x00,0x00,0x00, /*-- 文字: { --*/ 0x00,0x00,0x00, /*-- 文字: | --*/ 0x00,0x00,0x00, /*-- 文字: } --*/ 0x00,0x00,0x00, /*-- 文字: ~ --*/ 0x00,0x00,0x00, }; const unsigned char ASC_MSKsmall[]={ 0x00,0x00,0x00, /*-- 文字: --*/ 0x00,0x00,0x00, /*-- 文字: ! --*/ 0x00,0x00,0x00, /*-- 文字: " --*/ 0x00,0x00,0x00, /*-- 文字: # --*/ 0x00,0x00,0x00, /*-- 文字: $ --*/ 0x00,0x00,0x10, /*-- 文字: % --*/ 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, /*-- 文字: . --*/ 0x00,0x00,0x00, /*-- 文字: / --*/ 0x00,0x00,0x00, /*-- 文字: 0 --*/ 0x2f,0x01,0x00, /*-- 文字: 1 --*/ 0x20,0x01,0x00, /*-- 文字: 2 --*/ 0x3d,0x00,0x00, /*-- 文字: 3 --*/ 0x39,0x01,0x00, /*-- 文字: 4 --*/ 0x32,0x01,0x00, /*-- 文字: 5 --*/ 0x1b,0x01,0x00, /*-- 文字: 6 --*/ 0x1f,0x01,0x00, /*-- 文字: 7 --*/ 0x21,0x01,0x00, /*-- 文字: 8 --*/ 0x3f,0x01,0x00, /*-- 文字: 9 --*/ 0x3b,0x01,0x00, /*-- 文字: : --*/ 0x00,0x00,0x00, /*-- 文字: ; --*/ 0x00,0x00,0x00, /*-- 文字: < --*/ 0x00,0x00,0x00, /*-- 文字: = --*/ 0x00,0x00,0x00, /*-- 文字: > --*/ 0x00,0x00,0x00, /*-- 文字: ? --*/ 0x00,0x00,0x00, /*-- 文字: @ --*/ 0x00,0x00,0x00, /*-- 文字: A --*/ 0x37,0x01,0x00, /*-- 文字: B --*/ 0x3f,0x01,0x00, /*-- 文字: C --*/ 0x0f,0x00,0x00, /*-- 文字: D --*/ 0x2f,0x01,0x00, /*-- 文字: E --*/ 0x1f,0x00,0x00, /*-- 文字: F --*/ 0x17,0x00,0x00, /*-- 文字: G --*/ 0x0f,0x01,0x00, /*-- 文字: H --*/ 0x36,0x01,0x00, /*-- 文字: I --*/ 0x20,0x01,0x00, /*-- 文字: J --*/ 0x28,0x01,0x00, /*-- 文字x40,: K --*/ 0x00,0x00,0x00, /*-- 文字: L --*/ 0x0e,0x00,0x00, /*-- 文字: M --*/ 0x00,0x00,0x00, /*-- 文字: N --*/ 0x00,0x00,0x00, /*-- 文字: O --*/ 0x2f,0x01,0x00, /*-- 文字: P --*/ 0x37,0x00,0x00, /*-- 文字: Q --*/ 0x00,0x00,0x00, /*-- 文字: R --*/ 0x00,0x00,0x00, /*-- 文字: S --*/ 0x1b,0x01,0x00, /*-- 文字: T --*/ 0x00,0x00,0x00, /*-- 文字: U --*/ 0x2e,0x01,0x00, /*-- 文字: V --*/ 0x2e,0x01,0x00, /*- 文字: W --*/ 0x00,0x00,0x00, /*-- 文字: X --*/ 0x00,0x00,0x00, /*-- 文字: Y --*/ 0x00,0x00,0x00, /*-- 文字: Z --*/ 0x00,0x00,0x00, /*-- 文字: [ --*/ 0x00,0x00,0x00, /*-- 文字: \ --*/ 0x00,0x00,0x00, /*-- 文字: ] --*/ 0x00,0x00,0x00, /*-- 文字: ^ --*/ 0x00,0x00,0x00, /*-- 文字: _ --*/ 0x00,0x00,0x00, /*-- 文字: ` --*/ 0x00,0x00,0x00, /*-- 文字: a --*/ 0x00,0x00,0x00, /*-- 文字: b --*/ 0x00,0x00,0x00, /*-- 文字: c --*/ 0x00,0x00,0x00, /*-- 文字: d --*/ 0x00,0x00,0x00, /*-- 文字: e --*/ 0x00,0x00,0x00, /*-- 文字: f --*/ 0x00,0x00,0x00, /*-- 文字: g --*/ 0x00,0x00,0x00, /*-- 文字: h --*/ 0x00,0x00,0x00, /*-- 文字: i --*/ 0x00,0x00,0x00, /*-- 文字: j --*/ 0x00,0x00,0x00, /*-- 文字: k --*/ 0x00,0x00,0x00, /*-- 文字: l --*/ 0x00,0x00,0x00, /*-- 文字: m --*/ 0x00,0x00,0x00, /*-- 文字: n --*/ 0x00,0x00,0x00, /*-- 文字: o --*/ 0x00,0x00,0x00, /*-- 文字: p --*/ 0x00,0x00,0x00, /*-- 文字: q --*/ 0x00,0x00,0x00, /*-- 文字: r --*/ 0x00,0x00,0x00, /*-- 文字: s --*/ 0x00,0x00,0x00, /*-- 文字: t --*/ 0x00,0x00,0x00, /*-- 文字: u --*/ 0x00,0x00,0x00, /*-- 文字: v --*/ 0x00,0x00,0x00, /*-- 文字: w --*/ 0x00,0x00,0x00, /*-- 文字: x --*/ 0x00,0x00,0x00, /*-- 文字: y --*/ 0x00,0x00,0x00, /*-- 文字: z --*/ 0x00,0x00,0x00, /*-- 文字: { --*/ 0x00,0x00,0x00, /*-- 文字: | --*/ 0x00,0x00,0x00, /*-- 文字: } --*/ 0x00,0x00,0x00, /*-- 文字: ~ --*/ 0x00,0x00,0x00, }; const unsigned char ASC_MSKsmalltwo[]={ 0x00,0x00,0x00, /*-- 文字: --*/ 0x00,0x00,0x00, /*-- 文字: ! --*/ 0x00,0x00,0x00, /*-- 文字: " --*/ 0x00,0x00,0x00, /*-- 文字: # --*/ 0x00,0x00,0x00, /*-- 文字: $ --*/ 0x00,0x00,0x10, /*-- 文字: % --*/ 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, /*-- 文字: . --*/ 0x00,0x00,0x00, /*-- 文字: / --*/ 0x00,0x00,0x00, /*-- 文字: 0 --*/ 0xeb,0x00,0x00, /*-- 文字: 1 --*/ 0xc0,0x00,0x00, /*-- 文字: 2 --*/ 0x7a,0x00,0x00, /*-- 文字: 3 --*/ 0xf8,0x00,0x00, /*-- 文字: 4 --*/ 0xd1,0x00,0x00, /*-- 文字: 5 --*/ 0xb9,0x00,0x00, /*-- 文字: 6 --*/ 0xbb,0x00,0x00, /*-- 文字: 7 --*/ 0xe0,0x00,0x00, /*-- 文字: 8 --*/ 0xfb,0x00,0x00, /*-- 文字: 9 --*/ 0xf9,0x00,0x00, /*-- 文字: : --*/ 0x00,0x00,0x00, /*-- 文字: ; --*/ 0x00,0x00,0x00, /*-- 文字: < --*/ 0x00,0x00,0x00, /*-- 文字: = --*/ 0x00,0x00,0x00, /*-- 文字: > --*/ 0x00,0x00,0x00, /*-- 文字: ? --*/ 0x00,0x00,0x00, /*-- 文字: @ --*/ 0x00,0x00,0x00, /*-- 文字: A --*/ 0xf3,0x00,0x00, /*-- 文字: B --*/ 0xfb,0x00,0x00, /*-- 文字: C --*/ 0x2b,0x00,0x00, /*-- 文字: D --*/ 0xeb,0x00,0x00, /*-- 文字: E --*/ 0x3b,0x00,0x00, /*-- 文字: F --*/ 0x33,0x00,0x00, /*-- 文字: G --*/ 0xaf,0x00,0x00, /*-- 文字: H --*/ 0xd3,0x00,0x00, /*-- 文字: I --*/ 0xc0,0x00,0x00, /*-- 文字: J --*/ 0xc8,0x00,0x00, /*-- 文字x40,: K --*/ 0x00,0x00,0x00, /*-- 文字: L --*/ 0x0b,0x00,0x00, /*-- 文字: M --*/ 0x00,0x00,0x00, /*-- 文字: N --*/ 0x00,0x00,0x00, /*-- 文字: O --*/ 0xeb,0x00,0x00, /*-- 文字: P --*/ 0x73,0x00,0x00, /*-- 文字: Q --*/ 0x00,0x00,0x00, /*-- 文字: R --*/ 0x00,0x00,0x00, /*-- 文字: S --*/ 0xb9,0x00,0x00, /*-- 文字: T --*/ 0x00,0x00,0x00, /*-- 文字: U --*/ 0xcf,0x00,0x00, /*-- 文字: V --*/ 0xcf,0x00,0x00, /*- 文字: W --*/ 0x00,0x00,0x00, /*-- 文字: X --*/ 0x00,0x00,0x00, /*-- 文字: Y --*/ 0x00,0x00,0x00, /*-- 文字: Z --*/ 0x00,0x00,0x00, /*-- 文字: [ --*/ 0x00,0x00,0x00, /*-- 文字: \ --*/ 0x00,0x00,0x00, /*-- 文字: ] --*/ 0x00,0x00,0x00, /*-- 文字: ^ --*/ 0x00,0x00,0x00, /*-- 文字: _ --*/ 0x00,0x00,0x00, /*-- 文字: ` --*/ 0x00,0x00,0x00, /*-- 文字: a --*/ 0x00,0x00,0x00, /*-- 文字: b --*/ 0x00,0x00,0x00, /*-- 文字: c --*/ 0x00,0x00,0x00, /*-- 文字: d --*/ 0x00,0x00,0x00, /*-- 文字: e --*/ 0x00,0x00,0x00, /*-- 文字: f --*/ 0x00,0x00,0x00, /*-- 文字: g --*/ 0x00,0x00,0x00, /*-- 文字: h --*/ 0x00,0x00,0x00, /*-- 文字: i --*/ 0x00,0x00,0x00, /*-- 文字: j --*/ 0x00,0x00,0x00, /*-- 文字: k --*/ 0x00,0x00,0x00, /*-- 文字: l --*/ 0x00,0x00,0x00, /*-- 文字: m --*/ 0x00,0x00,0x00, /*-- 文字: n --*/ 0x00,0x00,0x00, /*-- 文字: o --*/ 0x00,0x00,0x00, /*-- 文字: p --*/ 0x00,0x00,0x00, /*-- 文字: q --*/ 0x00,0x00,0x00, /*-- 文字: r --*/ 0x00,0x00,0x00, /*-- 文字: s --*/ 0x00,0x00,0x00, /*-- 文字: t --*/ 0x00,0x00,0x00, /*-- 文字: u --*/ 0x00,0x00,0x00, /*-- 文字: v --*/ 0x00,0x00,0x00, /*-- 文字: w --*/ 0x00,0x00,0x00, /*-- 文字: x --*/ 0x00,0x00,0x00, /*-- 文字: y --*/ 0x00,0x00,0x00, /*-- 文字: z --*/ 0x00,0x00,0x00, /*-- 文字: { --*/ 0x00,0x00,0x00, /*-- 文字: | --*/ 0x00,0x00,0x00, /*-- 文字: } --*/ 0x00,0x00,0x00, /*-- 文字: ~ --*/ 0x00,0x00,0x00, }; /* ********************************************************************************************* start_coordinate:char start coordinate val:it will be display char ********************************************************************************************* */ void bitchar_value(UINT8 start_coordinate, UINT8 val) { if(val>0x1f) { switch(start_coordinate) { /*第1个字符位置*/ case 1: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=ASC_MSK[(val-0x1f)*3+2]; n.TempData[3]=0x00; n.x=n.x<<4; LCDchar.char_num[0]&=0x0f; LCDchar.char_num[0]|=n.TempData[0]; LCDchar.char_num[1]=n.TempData[1]; LCDchar.char_num[2]&=0xfc; LCDchar.char_num[2]|=n.TempData[2]; break ; /*第2个字符位置*/ case 2: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=ASC_MSK[(val-0x1f)*3+2]; n.TempData[3]=0x00; n.x=n.x<<3; LCDchar.char_num[2]&=0x07; LCDchar.char_num[2]|=n.TempData[0]; LCDchar.char_num[3]=n.TempData[1]; LCDchar.char_num[4]&=0xfc; LCDchar.char_num[4]|=n.TempData[2]; break ; /*第3个字符位置*/ case 3: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=ASC_MSK[(val-0x1f)*3+2]; n.TempData[3]=0x00; n.x=n.x<<2; LCDchar.char_num[4]&=0x03; LCDchar.char_num[4]|=n.TempData[0]; LCDchar.char_num[5] =n.TempData[1]; break ; /*第4个字符位置*/ case 4: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=ASC_MSK[(val-0x1f)*3+2]; n.TempData[3]=0x00; n.x=n.x<<1; LCDchar.char_num[6]&=0x01; LCDchar.char_num[6]|=n.TempData[0]; LCDchar.char_num[7]&=0x80; LCDchar.char_num[7]|=n.TempData[1]; break ; /*第5个字符位置*/ case 5: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=0x00; n.TempData[3]=0x00; LCDchar.char_num[8]=n.TempData[0]; LCDchar.char_num[9]&=0xc0; LCDchar.char_num[9]|=n.TempData[1]; LCDchar.char_num[9]=n.TempData[1]; break ; /*第6个字符位置*/ case 6: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=0x00; n.TempData[3]=0x00; n.TempData[3]=n.TempData[0]&0x01; n.TempData[3]<<=7; LCDchar.char_num[9]&=0x7f; LCDchar.char_num[9]|=n.TempData[3]; n.x=n.x>>1; LCDchar.char_num[10]=n.TempData[0]; LCDchar.char_num[11]&=0xe0; LCDchar.char_num[11]|=n.TempData[1]; break ; /*第7个字符位置*/ case 7: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=0x00; n.TempData[3]=0x00; n.TempData[3]=n.TempData[0]&0x03; n.TempData[3]=n.TempData[3]<<6; LCDchar.char_num[11]&=0x3f; LCDchar.char_num[11]|=n.TempData[3]; n.x=n.x>>2; LCDchar.char_num[12]=n.TempData[0]; LCDchar.char_num[13]&=0xf0; LCDchar.char_num[13]|=n.TempData[1]; break ; /*第8个字符位置*/ case 8: n.TempData[0]=ASC_MSK[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSK[(val-0x1f)*3+1]; n.TempData[2]=0x00; n.TempData[3]=0x00; n.TempData[3]=n.TempData[0]&0x07; n.TempData[3]=n.TempData[3]<<5; LCDchar.char_num[13]&=0x1f; LCDchar.char_num[13]|=n.TempData[3]; n.x=n.x>>3; LCDchar.char_num[14]=n.TempData[0]; LCDchar.char_num[15]&=0xf8; LCDchar.char_num[15]|=n.TempData[1]; break ; /*第9个字符位置小字*/ case 9: n.TempData[0]=ASC_MSKsmall[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSKsmall[(val-0x1f)*3+1]; n.TempData[2]=0x00; n.TempData[3]=0x00; n.TempData[3]=n.TempData[0]&0x01; n.TempData[3]=n.TempData[3]<<7; LCDchar.char_num[15]&=0x7f; LCDchar.char_num[15]|=n.TempData[3]; n.x=n.x>>1; n.TempData[2]=LCDchar.char_num[16]&0x60; LCDchar.char_num[16]=n.TempData[0]|n.TempData[2]; break ; /*第10个字符位置小字*/ case 10: n.TempData[0]=ASC_MSKsmalltwo[(val-0x1f)*3+0]; n.TempData[1]=ASC_MSKsmalltwo[(val-0x1f)*3+1]; n.TempData[2]=0x00; n.TempData[3]=0x00; n.TempData[3]=n.TempData[0]&0x03; n.TempData[3]=n.TempData[3]<<5; LCDchar.char_num[16]&=0x9f; LCDchar.char_num[16]|=n.TempData[3]; n.x=n.x>>3; LCDchar.char_num[17]&=0xe0; LCDchar.char_num[17]|=n.TempData[0]; break ; default : break; } } } /* ********************************************************************************************* ********************************************************************************************* */ void delay(void) { unsigned char i=0; for(i=0;i<50;i++) { ; } } /* ********************************************************************************************* ********************************************************************************************* */ void lcd7528init(void) { PM0.4=0;//CLK OUT MODE PM0.3=0; PM0.5=0; CLR_CS; SET_LCDSCLK; SET_LCDDATA; } /* ********************************************************************************************* function:单字节写 ********************************************************************************************* */ void WriteByte7528( unsigned char bytedata) { unsigned char i,val=0; val=bytedata; SET_LCDSCLK; for (i=0; i<8; i++) { CLR_LCDSCLK; delay(); if(val & 0x01) SET_LCDDATA; else CLR_LCDDATA; delay(); SET_LCDSCLK; delay(); val >>=1; } } /* ********************************************************************************************* FUNCTION:LCD 数据 ********************************************************************************************* */ void LCD_SENDDATA(void) { unsigned char i; CLR_CS; delay(); WriteByte7528(0x41); SET_CS ; delay(); delay(); for (i=0; i<20; i++) { WriteByte7528(LCDchar.char_num[i]); } CLR_LCDSCLK; delay(); SET_LCDSCLK; delay(); delay(); CLR_CS; } /* ********************************************************************************************* Function:char display start_coordinate:char start coordinate fmt:char string num:1~10 ********************************************************************************************* */ void eprintf(UINT8 start_coordinate,char *fmt,...) { UINT8 i,uLen; va_list arg_ptr; char c1,c2; uLen=0; va_start(arg_ptr,fmt); uLen = (unsigned char)vsprintf(display, fmt, arg_ptr) ; va_end(arg_ptr); if(start_coordinate>10) { start_coordinate=0; } c2=start_coordinate+uLen; if(c2<=11) { while(i = 0) { bitchar_value(start_coordinate,c1); } start_coordinate++; i++; } LCD_SENDDATA(); } } /* ********************************************************************************************* ********************************************************************************************* */ void clearchar(void) { UINT8 i; CLR_CS; delay(); WriteByte7528(0x41); SET_CS ; delay(); delay(); for(i=0;i<19;i++) { LCDchar.char_num[i]=0x00; WriteByte7528(LCDchar.char_num[i]); } CLR_LCDSCLK; delay(); SET_LCDSCLK; delay(); delay(); CLR_CS; } /* ********************************************************************************************* function:specialties char display num:specialties char display coordinate 1~10 ********************************************************************************************* */ void spec_char_display(UINT8 num,UINT8 fit) { UINT8 tempdata=0; switch(num) { case 1: if(fit) { tempdata=LCDchar.char_num[0]; tempdata|=0x0f; LCDchar.char_num[0]=tempdata; tempdata=LCDchar.char_num[4]; tempdata|=0x02; LCDchar.char_num[4]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[0]; tempdata&=0xf0; LCDchar.char_num[0]=tempdata; tempdata=LCDchar.char_num[4]; tempdata&=0xfd; LCDchar.char_num[4]=tempdata; LCD_SENDDATA(); } break; case 2: if(fit) { tempdata=LCDchar.char_num[2]; tempdata|=0x04; LCDchar.char_num[2]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[2]; tempdata&=0xfb; LCDchar.char_num[2]=tempdata; LCD_SENDDATA(); } break; case 3: if(fit) { tempdata=LCDchar.char_num[7]; tempdata|=0x80; LCDchar.char_num[7]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[7]; tempdata&=0x7f; LCDchar.char_num[7]=tempdata; LCD_SENDDATA(); } break; case 4: if(fit) { tempdata=LCDchar.char_num[9]; tempdata|=0x40; LCDchar.char_num[9]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[9]; tempdata&=0xbf; LCDchar.char_num[9]=tempdata; LCD_SENDDATA(); } break; case 5: if(fit) { tempdata=LCDchar.char_num[11]; tempdata|=0x20; LCDchar.char_num[11]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[11]; tempdata&=0xdf; LCDchar.char_num[11]=tempdata; LCD_SENDDATA(); } break; case 6: if(fit) { tempdata=LCDchar.char_num[13]; tempdata|=0x10; LCDchar.char_num[13]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[13]; tempdata&=0xef; LCDchar.char_num[13]=tempdata; LCD_SENDDATA(); } break; case 7: if(fit) { tempdata=LCDchar.char_num[15]; tempdata|=0x08; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[15]; tempdata&=0xf7; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } break; case 8: if(fit) { tempdata=LCDchar.char_num[15]; tempdata|=0x10; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[15]; tempdata&=0xef; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } break; case 9: if(fit) { tempdata=LCDchar.char_num[15]; tempdata|=0x20; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[15]; tempdata&=0xdf; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } break; case 10: if(fit) { tempdata=LCDchar.char_num[15]; tempdata|=0x40; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[15]; tempdata&=0xbf; LCDchar.char_num[15]=tempdata; LCD_SENDDATA(); } break; case 11: if(fit) { tempdata=LCDchar.char_num[17]; tempdata|=0x20; LCDchar.char_num[17]=tempdata; LCD_SENDDATA(); } else { tempdata=LCDchar.char_num[17]; tempdata&=0xdf; LCDchar.char_num[17]=tempdata; LCD_SENDDATA(); } break; default : break; } }