音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

求教液晶高手

作者:qdfywhj 欄目:技術(shù)交流
求教液晶高手
我的液晶屏是OCM240128的,廣東金鵬公司的。調(diào)試以來(lái),一直出現(xiàn)連續(xù)運(yùn)行顯示錯(cuò)位、字符模糊等現(xiàn)象,單步運(yùn)行顯示情況良好。在求助廠家無(wú)果的情況下,求教各位大俠分析分析。
液晶是51單片機(jī)總線方式下控制的。導(dǎo)線長(zhǎng)度大約30cm。導(dǎo)線直徑在1mm左右。我排除了液晶本身的問(wèn)題。換過(guò)多塊屏了,沒種的現(xiàn)象相同,故確定不是液晶問(wèn)題。線路板也制作幾次了,可問(wèn)題依然存在。
在程序方面,下面是我的程序
    #define ComPort   0xfaff
    #define DataPort  0xf8ff
    #define GraphAddr 0x0000 //HEAD of graph

    //以8*8字符計(jì)算,顯示屏橫向、縱向可以顯示的字符個(gè)數(shù)
    //以240*128為例:
    #define LineChar   30 //一行16個(gè)字符(8*8)
    #define ColumnChar 16 //總共16列


    //指令,數(shù)據(jù) 讀寫狀態(tài)檢查
    #define RWCheck() { unsigned CHAR sta; do{ sta=XBYTE[ComPort] & 0x03; } while(sta!=0x03); }
    //數(shù)據(jù)自動(dòng)讀 狀態(tài)檢查
    #define AutoRCheck() { unsigned CHAR sta; do{ sta=XBYTE[ComPort] & 0x04; } while(sta!=0x04); }
    //數(shù)據(jù)自動(dòng)寫 狀態(tài)檢查
    #define AutoWCheck() { unsigned CHAR sta; do{ sta=XBYTE[ComPort] & 0x08; } while(sta!=0x08); }

    // 向數(shù)據(jù)口發(fā)Data
    #define OutPortData(dat ) { RWCheck(); XBYTE[DataPort]=dat; }

    //寫有 1 個(gè)參數(shù)命令
    #define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= command; }

    //寫有 2 個(gè)參數(shù)命令
    #define OutPortCom2(dat, command) { OutPortData(dat); OutPortCom1(command); }

    //寫有 3 個(gè)參數(shù)命令
    #define OutPortCom3(data1, data2, command) { OutPortData(data1); OutPortData(data2); OutPortCom1(command);}

    //unsigned CHAR InPortData() { RWCheck(); return(XBYTE[DataPort]); }

    //顯示8*16字符
    //lin:行(0-127), column: 列(0-29)
    //ch:字符代碼
    void ShowChar(unsigned CHAR lin,unsigned CHAR column,unsigned CHAR ch)
    {
        unsigned CHAR i;
        unsigned CHAR dat;
        unsigned int  StartAddr;
        StartAddr=lin*LineChar +column; //定位起始行
        for(i=0;i<16;i++)
        {
            dat=fhtab[ ch*16+i];
            OutPortCom3( (unsigned CHAR)(StartAddr), (unsigned CHAR)(StartAddr>>8), 0x24); //set address
            OutPortCom2( dat, 0xc0);
            StartAddr=StartAddr + LineChar;
        }
    }
    void ClearScreen(void)
    {
        unsigned int i;
        ///////// 清顯示 RAM 區(qū) 0000h--2000h (8k)
        OutPortCom3(0x00,0x00,0x24); //設(shè)置指針地址0000H
        OutPortCom1(0xb0); //設(shè)置自動(dòng)寫狀態(tài)
        for(i=0x00;i<0x2000;i++) OutPortData(0x00); // data=0;
        OutPortCom1(0xb2); // 自動(dòng)寫結(jié)束
    }
    //初始化LCD
    void Init_LCD(void)
    {
        OutPortCom3( 0x00,0x00,0x42 );   //設(shè)置圖形顯示區(qū)域首地址GraphAddr
        OutPortCom3( 30,0x00,0x43 );     //設(shè)置圖形顯示區(qū)域?qū)挾?: LineChar
        OutPortCom1(0xa7);               //設(shè)置光標(biāo)形狀 cursor size 8x8
        OutPortCom1(0x80);               //設(shè)置顯示方式: CGROM方式 文本\圖形 "或"
        OutPortCom1(0x98);               //設(shè)置顯示開關(guān): 1001 1100 圖形
        ClearScreen();                   //清屏
        delay_s(1);
        WriteScreen();                   //寫屏
        delay_s(1);
        ClearScreen();                   //清屏
    }
求教大俠們分析一下,到底問(wèn)題在哪里?
拜托!


2樓: >>參與討論
xwj
可能時(shí)序過(guò)快,晶振頻率多少?總線方式時(shí)一定要注意這個(gè)哦
 
3樓: >>參與討論
夏蟲
可能是你刷屏的速度太快,降低速度試試,多加一些nop
 
4樓: >>參與討論
qdfywhj
CPU主頻是12MHZ,我按照大俠的指點(diǎn)試試
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
學(xué)單片,從那起步?
請(qǐng)教:哪里能查到貼片二極管的資料
[求救]有個(gè)電路圖不會(huì)仿真,那位高手幫幫我
關(guān)于usb數(shù)據(jù)傳輸?shù)膯?wèn)題,請(qǐng)幫忙解答!
求:  T6280  的  datasheet
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)