|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我的液晶不循環(huán)為什么不能顯示??? |
| 作者:qixiboy 欄目:單片機 |
我的液晶控制芯片是sed1560.函數(shù)如下: #include "at89x52.h" #include "absacc.h" #include "ziku.h" #define uint unsigned int #define uCHAR unsigned CHAR #define lcd_CS P2_7 // 0 available #define lcd_AO P2_6 // 0 for command data, 1 for DISPLAY data #define lcd_reset P1_0 // 0 initialize the sed1560 #define lcd_light P1_1 // 0 light #define lcd_cmd XBYTE[0x3fff] #define lcd_data XBYTE[0x7fff] void dms(void) { uint j; for (j=0;j<1000;j++) { ; } } bit lcd_busy(void) { return (lcd_cmd&0x80); } void lcd_writedata(uCHAR lcddata) { lcd_data = lcddata; } bit lcd_haltedflag; void lcd_writecommand(uCHAR lcdcmd) { uCHAR i = 0; while(lcd_busy()) { if(++i>5) { lcd_haltedflag = 1; return; } } lcd_cmd = lcdcmd; } void lcd_setstartLINE(uCHAR LINE) { LINE&=0x3f; LINE|=0x40; lcd_writecommand(LINE); } void lcd_set_contrast(uCHAR VALUE) { lcd_writecommand(0x20|5);//lcd POWER supply on VALUE&=0x1f; VALUE|=0x80; lcd_writecommand(0X81);//設(shè)置對比度等級 lcd_writecommand(VALUE); } void reset_lcd() { lcd_writecommand(0xae); //turn the DISPLAY off lcd_reset = 1; lcd_reset = 1; lcd_reset = 1; lcd_reset = 0; lcd_reset = 0; lcd_reset = 0; dms(); lcd_reset = 1; lcd_reset = 1; lcd_writecommand(0xae); //關(guān)顯示 lcd_writecommand(0xa3); //?????????? dms(); lcd_writecommand(0x2f); //??????????? dms(); lcd_set_contrast(16); //set contrast dms(); lcd_writecommand(0xaf); //turn the DISPLAY on lcd_writecommand(0x40|0x00); //initial DISPLAY LINE 從第一行開始 } void lcd_ypos(uCHAR ypos) //page address { lcd_writecommand(0xb0+ypos); } void lcd_xpos(uCHAR xpos) //colume address { uCHAR TEMP; TEMP = xpos >> 4; lcd_writecommand(0x10+TEMP); //colume address upper four bits TEMP = 0x0f & xpos; lcd_writecommand(0x00+TEMP); //colume address lower four bits } void lcd_set_rmw() //read modify write set 11100000 { lcd_writecommand(0xe0); } void lcd_end_rmw() //read modify write end { lcd_writecommand(0xee); } uCHAR filli,fillj; void lcd_fillscreen(uCHAR filldata) { lcd_setstartLINE(0); lcd_xpos(0); for(filli=0;filli<8;filli++) { lcd_ypos(filli); lcd_set_rmw(); for(fillj=0;fillj<128;fillj++) lcd_writedata(filldata); lcd_end_rmw(); } } void lcd_clearscreen() { lcd_fillscreen(0); } void lcd_initial() { reset_lcd(); lcd_clearscreen(); } void lcd_write_NUMBER(uCHAR numCHAR,uCHAR zfDISPLAY,uCHAR xlen,uCHAR ylen) { //顯示的數(shù)字 //正反顯示0正 //橫向長度點為單位//縱向長度字節(jié)為單位 uCHAR i; uint j; unsigned LONG start_dot; start_dot = numCHAR - '0'; j = xlen *ylen; start_dot *= j; for(i=0;i<xlen;i++) { if(zfDISPLAY==1) { lcd_writedata(~NUMBER[start_dot+i]); } else { lcd_writedata(NUMBER[start_dot+i]); } } } void main() { lcd_light = 0; lcd_initial(); lcd_xpos(0); &nbs |
| 2樓: | >>參與討論 |
| 作者: 農(nóng)民講習所 于 2006/7/27 11:55:00 發(fā)布:
紅字下面加while(1); |
|
| 3樓: | >>參與討論 |
| 作者: qixiboy 于 2006/7/27 11:57:00 發(fā)布:
哦,我現(xiàn)在就試試!! |
|
| 4樓: | >>參與討論 |
| 作者: qixiboy 于 2006/7/27 12:03:00 發(fā)布:
呵呵,加個while(1);真的顯示了 真是高手,太感謝了. 我調(diào)了好長時間都不出字,能給解釋解釋這是為什么嗎,還有那兩條指令指的是什么呀?? * - 本貼最后修改時間:2006-7-27 12:13:04 修改者:qixiboy |
|
| 5樓: | >>參與討論 |
| 作者: fzj 于 2006/7/27 15:47:00 發(fā)布:
主函數(shù)是個死循環(huán)不知道嗎? |
|
| 6樓: | >>參與討論 |
| 作者: qixiboy 于 2006/7/27 15:55:00 發(fā)布:
死循環(huán)?? 怎么會呢?不是要有循環(huán)函數(shù)才能構(gòu)成循環(huán)嗎?我的里面也沒有啊,怎么會是死循環(huán)呢?還請大俠指教指教!!謝謝了!! * - 本貼最后修改時間:2006-7-27 22:49:38 修改者:qixiboy |
|
| 7樓: | >>參與討論 |
| 作者: fzj 于 2006/7/28 10:50:00 發(fā)布:
我的意思是說MAIN函數(shù)一定要是個循環(huán)函數(shù) 我的意思是說MAIN函數(shù)一定要是個循環(huán)函數(shù),否則這種程序沒多大用處,除非是個測試程序,但是也必須把狗給關(guān)了,否則一直處于復位狀態(tài)。 |
|
| 8樓: | >>參與討論 |
| 作者: qixiboy 于 2006/7/28 12:16:00 發(fā)布:
哦,我的main就是個測試的函數(shù) 是這樣,后面加個延時10秒的函數(shù),也能正常顯示,和加個while是一樣的,這是為什么呢. 我還想問個問題(比較弱的問題,呵呵),我沒開狗,他會自己啟動嗎? |
|
| 9樓: | >>參與討論 |
| 作者: liuliyong5 于 2006/7/28 12:21:00 發(fā)布:
因為你要采用動態(tài)掃描的方法, 最好找本書侃侃, |
|
| 10樓: | >>參與討論 |
| 作者: qixiboy 于 2006/7/28 12:28:00 發(fā)布:
這和動態(tài)掃描有什么關(guān)系呢?還請明示. |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |