/*Company :WINKEE*/ /*LCM moudle :FB0011*/ /*Made by :Leon.Chang*/ /*Data :2007-07-12*/ /*IC :HT1621*/ #include #include #include #define uchar unsigned char #define uint unsigned int //----------------------------------------------------------------------------- sbit DATAB =P1^5; //1.5 sbit WRB =P1^6; //1.6 sbit CSB =P1^7; //1.7 #define BIAS 0x52 /*定义1 3 偏压4 背极*/ #define XTAL32 0x28 /*使用外部晶振*/ #define RC256 0x30 /*使用内部256KRC 振荡器*/ #define SYSEN 0x02 /*打开振荡发生器*/ #define LCDON 0x06 /*打开LCD*/ #define SYSDIS 0x00 /*关闭振荡发生器*/ #define LCDOFF 0x04 /*显示关闭*/ #define TONE4 0x80 /*设置BZ 输出频率为4K*/ #define TONEON 0x12 /*打开BZ 音频输出*/ #define TONEOFF 0x10 /*关闭BZ 音频输出*/ #define CLRWDT 0x1c /*清零WDT*/ #define IRQEN 0x10 /*IRQ 输出禁止*/ #define IRQDIS 0x00 /*IRQ 输出允许*/ #define WDTEN 0x0e /*打开WDT*/ #define WDTDIS 0x0a /*关闭WDT*/ #define TIMERDIS 0x08 /*关闭时基输出*/ unsigned char code aa[]={0x00,0x00,0x00,0x00,0xd6,0xdf,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code bb[]={0x00,0x00,0x00,0x00,0x56,0xdf,0xaf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code cc[]={0x00,0x00,0x00,0x00,0xe6,0x3b,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code dd[]={0x00,0x00,0x00,0x00,0x66,0x3b,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code ee[]={0x78,0x0f,0xb7,0x0d,0xd6,0x5f,0xef,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code ff[]={0x78,0x0f,0xb7,0x0d,0x56,0x5f,0xaf,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code gg[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,}; //**************************************************** unsigned char code hh[]={0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,}; unsigned char code aaa[]={0x00,0x00,0x00,0x00,0xd6,0xdf,0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code bba[]={0x00,0x00,0x00,0x00,0x56,0xdf,0xaf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code cca[]={0x00,0x00,0x00,0x00,0xe6,0x3b,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code dda[]={0x00,0x00,0x00,0x00,0x66,0x3b,0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code eea[]={0x78,0x0f,0xb7,0x0d,0xd6,0x5f,0xef,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code ffa[]={0x78,0x0f,0xb7,0x0d,0x56,0x5f,0xaf,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; //**************************************************** unsigned char code gga[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,}; //**************************************************** unsigned char code hha[]={0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,}; void delay_us(uchar us_value) //delay about 1 us { while(us_value--) { _nop_(); _nop_(); _nop_(); } } //----------------------------------------------------------------------------- void delay_ms(uint ms_value) //delay about 1 ms { uint k; for(k=0;k>=1; } } //----------------------------------------------------------------------------- void init_lcd() { CSB=1; WRB=0; DATAB=1; delay_ms(100); wr_cmd(BIAS); wr_cmd(SYSEN); // wr_cmd(TIMERDIS); wr_cmd1(0xa7); wr_cmd(LCDON); delay_ms(10); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- void lcd_1() {uchar i; CSB=0; wr_add(0); for(i=0;i<48;i++) { wr_byte(0xff); wr_byte(0xff); wr_byte(0xff); wr_byte(0xff); //wr_byte(aa[i]); } CSB=1; } //----------------------------------------------------------------------------- void lcd_2() {uchar i; CSB=0; wr_add(0); for(i=0;i<48;i++) { wr_byte(0x00); wr_byte(0x00); wr_byte(0x00); wr_byte(0x00); //wr_byte(bb[i]); } CSB=1; } //----------------------------------------------------------------------------- void lcd_3() {uchar i; CSB=0; wr_add(0); for(i=0;i<48;i++) { wr_byte(0xaa); wr_byte(0xaa); wr_byte(0xaa); wr_byte(0xaa); //wr_byte(cc[i]); } CSB=1; } //----------------------------------------------------------------------------- void lcd_4() {uchar i; CSB=0; wr_add(0); for(i=0;i<48;i++) { wr_byte(0x55); wr_byte(0x55); wr_byte(0x55); wr_byte(0x55); //wr_byte(dd[i]); } CSB=1; } //----------------------------------------------------------------------------- void writedata(unsigned char addr, unsigned char d) { unsigned char i; CSB=1; WRB=1; DATAB=1; CSB=0; //101 WRB=0; DATAB=1; WRB=1; WRB=0; DATAB=0; WRB=1; WRB=0; DATAB=1; WRB=1; for(i=0;i<8;i++) { WRB=0; if(addr&0x80) { DATAB=1; } else DATAB=0; addr=addr<<1; WRB=1; } for(i=0;i<4;i++) { WRB=0; if(d&0x01) { DATAB=1; } else DATAB=0; d>>=1; WRB=1; } } void main(void) { init_cpu(); init_lcd(); /* while(1) */ lcd_2(); //clean while(1) { writedata(02, 0x08); //add:60 dig:0 writedata(03, 0x0A); writedata(07, 0x08); writedata(10, 0x08); writedata(11, 0x04); // delay_ms(200); writedata(14, 0x08); //add:59 dig:0 writedata(15, 0x0A); writedata(19, 0x08); writedata(22, 0x08); writedata(23, 0x04); // delay_ms(200); writedata(26, 0x08); //add:58 dig:0 writedata(27, 0x0A); writedata(31, 0x08); writedata(34, 0x08); writedata(35, 0x04); // delay_ms(200); writedata(38, 0x08); //add:57 dig:0 writedata(39, 0x0A); writedata(43, 0x08); writedata(46, 0x08); writedata(47, 0x04); writedata(50, 0x08); //add:56 dig:0 writedata(51, 0x0A); writedata(55, 0x08); writedata(58, 0x08); writedata(59, 0x04); writedata(62, 0x08); //add:56 dig:0 writedata(63, 0x0A); writedata(67, 0x08); writedata(70, 0x08); writedata(71, 0x04); delay_ms(200); lcd_2(); writedata(07, 0x05); // delay_ms(200); writedata(19, 0x05); // delay_ms(200); writedata(31, 0x05); // delay_ms(200); writedata(43, 0x05); writedata(55, 0x05); writedata(67, 0x05); delay_ms(200); writedata(02, 0x08); //add:60 dig:2 writedata(03, 0x02); writedata(07, 0x0a); writedata(11, 0x05); // delay_ms(200); writedata(14, 0x08); //add:59 dig:2 writedata(15, 0x02); writedata(19, 0x0A); writedata(23, 0x05); // delay_ms(200); writedata(26, 0x08); //add:58 dig:2 writedata(27, 0x02); writedata(31, 0x0A); writedata(35, 0x05); // delay_ms(200); writedata(38, 0x08); //add:57 dig:2 writedata(39, 0x02); writedata(43, 0x0A); writedata(47, 0x05); writedata(50, 0x08); //add:56 dig:2 writedata(51, 0x02); writedata(55, 0x0A); writedata(59, 0x05); writedata(62, 0x08); //add:56 dig:2 writedata(63, 0x02); writedata(67, 0x0A); writedata(71, 0x05); delay_ms(200); lcd_2(); writedata(02, 0x08); //add:60 dig:3 writedata(03, 0x0a); writedata(07, 0x0a); writedata(11, 0x01); // delay_ms(200); writedata(14, 0x08); //add:59 dig:3 writedata(15, 0x0a); writedata(19, 0x0a); writedata(23, 0x01); // delay_ms(200); writedata(26, 0x08); //add:58 dig:3 writedata(27, 0x0a); writedata(31, 0x0a); writedata(35, 0x01); // delay_ms(200); writedata(38, 0x08); //add:57 dig:3 writedata(39, 0x0a); writedata(43, 0x0A); writedata(47, 0x01); writedata(50, 0x08); //add:56 dig:3 writedata(51, 0x0a); writedata(55, 0x0A); writedata(59, 0x01); writedata(62, 0x08); //add:56 dig:3 writedata(63, 0x0a); writedata(67, 0x0A); writedata(71, 0x01); delay_ms(200); } }