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

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(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 欄目:單片機
我的液晶不循環(huán)為什么不能顯示???
我的液晶控制芯片是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)民講習所
紅字下面加while(1);
 
3樓: >>參與討論
qixiboy
哦,我現(xiàn)在就試試!!
 
4樓: >>參與討論
qixiboy
呵呵,加個while(1);真的顯示了
真是高手,太感謝了.
我調(diào)了好長時間都不出字,能給解釋解釋這是為什么嗎,還有那兩條指令指的是什么呀??

* - 本貼最后修改時間:2006-7-27 12:13:04 修改者:qixiboy

5樓: >>參與討論
fzj
主函數(shù)是個死循環(huán)不知道嗎?
 
6樓: >>參與討論
qixiboy
死循環(huán)??
怎么會呢?不是要有循環(huán)函數(shù)才能構(gòu)成循環(huán)嗎?我的里面也沒有啊,怎么會是死循環(huán)呢?還請大俠指教指教!!謝謝了!!

* - 本貼最后修改時間:2006-7-27 22:49:38 修改者:qixiboy

7樓: >>參與討論
fzj
我的意思是說MAIN函數(shù)一定要是個循環(huán)函數(shù)
我的意思是說MAIN函數(shù)一定要是個循環(huán)函數(shù),否則這種程序沒多大用處,除非是個測試程序,但是也必須把狗給關(guān)了,否則一直處于復位狀態(tài)。

8樓: >>參與討論
qixiboy
哦,我的main就是個測試的函數(shù)
是這樣,后面加個延時10秒的函數(shù),也能正常顯示,和加個while是一樣的,這是為什么呢.
我還想問個問題(比較弱的問題,呵呵),我沒開狗,他會自己啟動嗎?



9樓: >>參與討論
liuliyong5
因為你要采用動態(tài)掃描的方法,
最好找本書侃侃,

10樓: >>參與討論
qixiboy
這和動態(tài)掃描有什么關(guān)系呢?還請明示.
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
用單片機每秒發(fā)送10字節(jié),傳輸距離6公里的方案?
PID控制程序設(shè)計中的問題!
沒有產(chǎn)品出口前,中國面對的EMC問題太少了·!
請教各位大師:我的終端通過232與主機通信,在辦公自動化
各位,誰有ADE7758的中文資料,英文的看的太累,小弟在此多謝了
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號