欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 使用的是AMS1602A1顯示屏,不能顯示應有英文,只顯示背景小黑方塊,不是對比度問題 [打印本頁]

作者: koko5    時間: 2020-1-28 13:59
標題: 使用的是AMS1602A1顯示屏,不能顯示應有英文,只顯示背景小黑方塊,不是對比度問題
1602液晶
**************************************/
sbit RS = P2^5;               
sbit RW = P2^6;
sbit E  = P2^7;
/**************************************
短延時
**************************************/
void delay5ms()   
{
    uchar i,v,k;
    for(i=1;i>0;i--)
        for(v=168;v>0;v--)
            for(k=22;k>0;k--);
}
/**************************************
寫指令
**************************************/
void lcd_Write_com(uchar com)         
{
        RS=0;                        //定義指令寄存器
        RW=0;                                  //寫允許
        P0=com;                                          //寫指令
        delay5ms();        E=1;                //片選端上拉
        delay5ms();        E=0;                //下降沿鎖存
}
/**************************************
寫數據
**************************************/
void lcd_write_date(uchar date)       
{
        RS=1;                                        //定義數據寄存器
        RW=0;                                        //寫允許
        P0=date;                                //寫數據
        delay5ms();        E=1;                //片選端上拉
        delay5ms();        E=0;                //下降沿鎖存
}
/**************************************
顯示程序
**************************************/
void dis_lcd1602(uchar x,uchar y,uchar dat)
{
        uchar add;
        if(y==1)         add=(0x80+x);
        if(y==2)         add=(0xc0+x);
        lcd_Write_com(add);                //寫指令
        lcd_write_date(dat);        //寫數據
}  
/**************************************
液晶初始化
**************************************/
void lcd1602_init()
{
        lcd_Write_com(0x38);        //設置8位格式,2行,5*7
        lcd_Write_com(0x01);        //清屏
        lcd_Write_com(0x0c);        //整體顯示,關光標,不閃爍
        lcd_Write_com(0x06);        //設定輸入方式,增量不移位
        lcd_Write_com(0x80);        //初始坐標
}
/**************************************
液晶顯示漢字程序
**************************************/
void hz_lcdDis(uchar x,uchar y,uchar *p) //漢字顯示
{
   uchar i=0,temp;
   if(x)temp = 0x40;   else temp = 0;
   for(i=y;*p!='\0';i++,p++)
   {
                lcd_Write_com(i|0x80+temp);
                lcd_write_date(*p);
                delay5ms();                         
   }
}
/**************************************
液晶顯示數字程序
**************************************/
void  num_lcdDis(uchar X,uchar Y,uint num,uchar n)       
{
        uint i=0,temp,hang;   
        n +=1;
           if(X)hang = 0x40;else hang = 0;
           for(i=(n-1);i>0;i--)
    {           
                  lcd_Write_com((i+Y-1)|0x80+hang);          //從個位開始顯示
                  temp = num%10+0x30;
                  lcd_write_date(temp);       
                 delay5ms();
                  num/=10;                                         
        }       
}
函數說明: 主函數
**********************************************************/
void main(void)
{
        uint U1,U2,I1,S;
        SD_1=0;
        lcd1602_init();
        hz_lcdDis(0,4,"Welcome!");
        init_pwm();
        InitADC();
        delay(250);       
//        delay(250);
        EA=1;//開總中斷
        lcd_Write_com(0x01);        //清屏
//        SD_1=1;
        hz_lcdDis(0,0,"IN=  . V S= .  A");
        hz_lcdDis(1,0,"OU=  . V I= .  A");
        while(1)//主循環
        {               
                U1=Filter(Boost_voltage)/92;        //輸入電壓  1:10采樣電阻                 93,
                U2=Filter(Battery_voltage)/92;    //輸出電壓  1:10采樣電阻        93
                I1=Filter(O_current)/150;       //輸出電流  
//                if(I1>1)                I1=I1-1;//輸出電流顯示校準
                if(U2>242)               
                        {SD_1=0;        lock=1;                CCAP1L         =CCAP1H =128;        hz_lcdDis(0,8,"P");        }
                num_lcdDis(0,3,U1/10,2);
                num_lcdDis(0,6,U1%10,1);       
                num_lcdDis(1,3,U2/10,2);
                num_lcdDis(1,6,U2%10,1);
                S=OUT_Current/3;
                num_lcdDis(0,11,S/100,1);
                num_lcdDis(0,13,S%100,2);
                num_lcdDis(1,11,I1/100,1);
                num_lcdDis(1,13,I1%100,2);               
//                if((u2-u1)<40)         hz_lcdDis(0,10,"Error!");
//                else                          hz_lcdDis(0,10,"OK    ");
                key_scan();
        }
}


9]$GY`D3WSZVBUI3LA%7URI.png (21.66 KB, 下載次數: 104)

9]$GY`D3WSZVBUI3LA%7URI.png

作者: yzwzfyz    時間: 2020-1-28 23:18
是不是背景問題,與程序無關,可以人工調節背景,以證明之。
作者: koko5    時間: 2020-1-29 07:08
yzwzfyz 發表于 2020-1-28 23:18
是不是背景問題,與程序無關,可以人工調節背景,以證明之。

對比度嗎?老鐵,對比度上我串了一個103電阻,可以自我調節,還是沒有顯示,會不會是我的顯示程序那段有問題呢?幫忙看下可以嗎?可是我又覺得寫得也沒毛病啊,很苦惱
作者: koko5    時間: 2020-1-31 21:46
我已搞定,謝謝各位大佬無需留言咧
作者: 3139587727    時間: 2021-2-22 09:46
怎么解決的?分享一下,謝謝





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1