|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關于北京青云的液晶問題 |
| 作者:kfawj 欄目:單片機 |
有誰用過北京青云的液晶LCM128646的。我多次試驗就是沒有顯示。請各位大蝦幫忙看看。 sbit ADSCLK = P1^6; sbit ADSel = P1^5; sbit ADDOUT = P3^3; void main() { unsigned int data xx; unsigned CHAR data i,j; TH0=0x4C; TH0=0x00; TH1=0xFD;//9600bps TL1=0xFD; TMOD=0x21; IE=0x8A;//9A; TCON=0x50; SCON=0x40; SBUF=0x00; TR1=1; xx=0; delay=0; ADSCLK=0; ADSel=0; P1=0x00; Dis_point=0; Grap_point=0; delay=40; Init_Sys(); P1=0x00; delay=40; while (delay > 0); P1=0xFF; delay=40; while (delay > 0); while(1) { xx=1234; Dis_Buffer[0] =0x81; //(xx / 1000) | 0x80; xx = xx % 1000; Dis_Buffer[1] =0x82; //(xx/100) | 0x80; xx = xx % 100; Dis_Buffer[2] =0x83; //(xx/10) | 0x80; xx = xx % 10; Dis_Buffer[3] =0x84; //xx | 0x80; Dis_Buffer[4] = 0x85; Dis_Buffer[5] = 0x86; Dis_Buffer[6] = 0x87; Dis_Buffer[7] = 0x88; Dis_Buffer[8] = 0x89; Dis_Buffer[9] = 0x80; Dis_Buffer[10] = 0x81; Dis_Buffer[11] = 0x82; Dis_Buffer[12] = 0x83; Dis_Buffer[13] = 0x84; Dis_Buffer[14] = 0x85; Dis_Buffer[15] = 0x86; Dis_Buffer[16] = 0; //Display16(Dis_Buffer,0,0); //Display16(Dis_Buffer,1,0); Display16(Dis_Buffer,2,0); //Display16(Dis_Buffer,3,0); //Display16(Dis_Buffer,4,0); P1=0xFF; delay=40; while (delay > 0); P1=0; delay=40; while (delay > 0); } } void Timer0() interrupt 1 { TH0=0x4C; //50mS TL0=0X00; if(delay > 0) delay--; } void Timer1() interrupt 3 { } #ifdef C8952 void Rd_Wr_Ready () small { auto byte data Statue; do { Statue=LCD_cmd_Port & 0x23; }while (Statue != 0x23); } void Auto_Wr_Ready() small { auto byte data Statue; do { Statue=LCD_cmd_Port & 0x28; }while (Statue!=0x28); } void Auto_Write() small { auto byte data Statue; do { Statue=LCD_cmd_Port & 0x21; }while (Statue!=0x21); LCD_cmd_Port=Auto_write; } void Two_para_cmd(byte D1,byte D2,byte Cmd) small { Rd_Wr_Ready(); LCD_dat_Port=D1; Rd_Wr_Ready(); LCD_dat_Port=D2; Rd_Wr_Ready(); LCD_cmd_Port=Cmd; } void Non_para_cmd(byte Cmd) small { Rd_Wr_Ready(); LCD_cmd_Port=Cmd; } #pragma NOAREGS void gotoxy(byte x,byte y) small { if (x > 15) x=x%16; //%30 if (y > 7) y=7; Dis_point=(Dis_point & 0xfc00)+y*16+x; //y*16 Rd_Wr_Ready(); LCD_dat_Port=x; Rd_Wr_Ready(); LCD_dat_Port=y; Rd_Wr_Ready(); LCD_cmd_Port=Cursor_p; } //#pragma AREGS void Clr_Dis_Ram(byte addrL,byte addrH,word Lenth) { auto word data i; Two_para_cmd(addrL,addrH,Address_p); Auto_Write(); for (i=0;i<=Lenth;i++) { Auto_Wr_Ready(); LCD_dat_Port=0; } Non_para_cmd(Write_over); } void Clr_Dis_RamT(byte addrL,byte addrH,word Lenth) { auto word data i; Two_para_cmd(addrL,addrH,Address_p); Auto_Write(); for (i=0;i<=Lenth;i++) { Auto_Wr_Ready(); LCD_dat_Port=0x255; } Non_para_cmd(Write_over); } void clrscr() { auto word data i; Two_para_cmd(0,0,Address_p); Auto_Write(); for (i=0;i<=0x1fff;i++) { Auto_Wr_Ready(); LCD_dat_Port=0; } Dis_point=0; Grap_point=0; Non_para_cmd(Write_over); Two_para_cmd(0,PAGE0,TEXT_addr); Two_para_cmd(0,PAGE3,GRAP_addr); gotoxy(0,0); ZiKu=0; } /*字庫寫入*/ void Init_CGRAM(byte SelZk) { auto int i; byte code *p_ZiKu; word Len; if (ZiKu==SelZk) return; Non_para_cmd(Disp_swit); SWITCH (SelZk){ &n |
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號 |