HQ077BC_democode(8080): #include #include #include //1100 #define uchar unsigned char #define uint unsigned int #define VC_ON 0x2C //1010 #define VR_ON 0x2A #define VF_ON 0x29 //1001 #define NOP _nop_();_nop_();_nop_();_nop_() #define data P0 sbit CS = P2^5; sbit RES = P2^3; sbit RS = P2^1; sbit RW = P2^2; sbit Read = P2^4; /******************************delay time***********************************/ void delay_ms(unsigned int ms) { unsigned int n ; while(ms--) { n = 255; while(n--); } } void delay1(void) { uchar i,j; for (i = 0;i != 0xff;i++) for (j = 0;j != 0xff;j++); } /****************************reset IC for start****************************/ void LCD_Reset() { IE = 0x00; RES = 0; delay1(); RES = 1; delay1(); } /*******************************write data to IC**************************/ void w_dat(unsigned char dat) { data = dat; NOP; RS = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); CS = 0; RW = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RW = 1; CS = 1; } /******************************write Command to IC***********************/ void w_cmd(unsigned char cmd) { data = cmd; NOP; RS = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); CS = 0; RW = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); RW = 1; CS = 1; } /***************************display picture ****************************/ void Display(unsigned char *p) { unsigned char page,column; for(page=0xB3;page>=0xB0;page--) { w_cmd(page); //set page address w_cmd(0x12); //set Column address MSB w_cmd(0x00); //set column address LSB for(column=0;column<100;column++) { w_dat(*p++); } } } void Display_fill(unsigned char fill) { unsigned char page,column; for(page=0xB3;page>=0xB0;page--) { w_cmd(page); //set page address w_cmd(0x10); //set Column address MSB w_cmd(0x00); //set column address LSB for(column=0;column<100;column++) { w_dat(fill); } } } void Grid_white() { unsigned char page,column; for(page=0xB3;page>=0xB0;page--) { w_cmd(page); w_cmd(0x10); w_cmd(0x00); for(column=0;column<50;column++) { w_dat(0xFF); w_dat(0x00); } } } void Grid_Black() { unsigned char page,column; for(page=0xB3;page>=0xB0;page--) { w_cmd(page); w_cmd(0x10); w_cmd(0x00); for(column=0;column<50;column++) { w_dat(0x00); w_dat(0xFF); } } } void Grid_Line1() { unsigned char page,column; for(page=0xB3;page>=0xB0;page--) { w_cmd(page); w_cmd(0x10); w_cmd(0x00); for(column=0;column<100;column++) { w_dat(0xAA); } } } void Grid_Line2() { unsigned char page,column; for(page=0xB3;page>=0xB0;page--) { w_cmd(page); w_cmd(0x10); w_cmd(0x00); for(column=0;column<100;column++) { w_dat(0x55); } } } void Init_IC() { CS = 0; P3 = 0xFF; LCD_Reset(); w_cmd(0xe2); /*软件夊位*/ delay1(); w_cmd(0xA2); //LCD Bias selection(1/65 Duty,1/9Bias) w_cmd(0xA0); //ADC selection(SEG0->SEG128) w_cmd(0xC0); //SHL selection(COM0->COM64) delay1(); w_cmd(0x2f); delay1(); w_cmd(0x23); //Regulator Resistor Selection delay1(); w_cmd(0x81); //Electronic Volume w_cmd(0x20); //Reference Register selection Vo=(1+Rb/Ra)(1+a)*2.1=10 w_cmd(0x40); w_cmd(0xe0); //delay_ms(5); w_cmd(0xAF); //Display on } void main() { Init_IC(); delay1(); Display(deep); while(1) { /* Display_fill(0x55); delay1(); delay1(); delay1(); Grid_white(); delay1(); delay1(); delay1(); Grid_Black(); delay1(); delay1(); delay1(); Grid_Line1(); delay1(); delay1(); delay1(); Grid_Line2(); delay1(); delay1(); delay1(); Display_fill(0x00); delay1(); delay1(); delay1(); Display(deep); delay1(); delay1(); delay1(); */ } } Pic.C unsigned char code deep[] = ///////////////////////////////////////////////////////////////////////// // Bitmap dot table // //100 x32 // ///////////////////////////////////////////////////////////////////////// //unsigned char code nBitmapDot[] = // { };