久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3295|回復: 3
收起左側

仿真正常,但是lcd1602顯示出一列白色方塊,求大神看看怎么回事

[復制鏈接]
ID:895329 發表于 2021-3-23 08:59 來自觸屏版 | 顯示全部樓層 |閱讀模式
做的是酒精傳感器
#include<pic.h>
//__CONFIG(0x3F3A);
//__CONFIG(0x1832);  
__CONFIG(FOSC_HS & WDTE_OFF );             


char cc1[]=" Alcohol Tester ";

#define   RS RE0
#define   RW RE1
#define   EN RE2
#define   LCD_BUS PORTD

#define   BEEP RC2


unsigned int CMQ3=0;
unsigned char Vol=0;
unsigned int AlarmVol=20;

void delayms(unsigned int ms)                 //延時xx毫秒
{
        unsigned char i;
        while(ms--)
        {
                 for(i=0;i<120;i++);
        }
}

void command(unsigned int com)         //LCD寫指令
{
   RS=0;                                             //RS為0
   LCD_BUS=com;                     //裝載指令
   delayms(2);                            //延時2ms
   EN=1;                                            //LCD使能
   delayms(2);                           //延時2ms
   EN=0;                                           //LCD不使能
}

void write_dat(unsigned char dat)          //LCD寫數據
{
   RS=1;                                           //RS為1
   LCD_BUS=dat;                   //裝載數據
   delayms(2);                           //延時2ms
   EN=1;                                           //LCD使能
   delayms(2);                           //延時2ms
   EN=0;                                           //LCD不使能
}

void writestring(unsigned char x,unsigned char y,unsigned char *s) //LCD 寫字符串
{     
        if (y == 0)  command(0x80 + x);     //表示第一行
        else         command(0xC0 + x);      //表示第二行
      
        while (*s)                         //判斷是否字符串的結尾
        {     
     write_dat( *s);    //顯示當前字符
                s ++;                             //字符串地址加1
        }
}

void writeChar(unsigned char x,unsigned char y,unsigned char s) //LCD 寫字符串
{     
        if (y == 0)  command(0x80 + x);     //表示第一行
        else         command(0xC0 + x);      //表示第二行
      
        {     
     write_dat( s);    //顯示當前字符
        }
}


void LCD_Initial(void)                //LCD初始化
{
   EN=0;                                   //LCD不使能
   RW=0;                                   //RW為0
   command(0x38);                //發送初始化指令
   command(0x0c);                //發送初始化指令
   command(0x06);           //發送初始化指令
   command(0x01);           //發送初始化指令
   command(0x80);           //發送LCD初始位置
}

   


interrupt ISR(void)        //中斷子程序
{
   if(ADIE &&  ADIF==1)        //AD轉換中斷
   {
      ADIF=0;                 // A/D標志位清零
           Vol=ADRESH;         // 高八位送PORTD  
      //GO_nDONE =1;         // 啟動下一次A/D轉換ADGO          
   }
}

void main(void)
{
        unsigned char i=0;
        unsigned int temp1=0;
        float Dat=0;
        TRISD=0x00;
        TRISC=0X00;
        TRISE=0x00;
        ADCON1=0X0e;
        TRISA=0x01;
   ADCON0=0X01;
        BEEP=1;
        TRISB=0xff;
        OPTION_REG&=0x7f;
       
        ADCS1=1;
   ADCS0=0;                 // A/D轉換時鐘32分頻
   CHS2=0;
   CHS1=0;
   CHS0=0;                 // CHS2:CHS0=001,
89411CEF-E388-4302-8537-12B23179DD1E.jpeg
回復

使用道具 舉報

ID:584814 發表于 2021-3-23 10:04 | 顯示全部樓層
檢查接線先(現成的套件查接口定義),然后查延時(非板帶程例可能單片機速度不一樣),最后看時序。
回復

使用道具 舉報

ID:824490 發表于 2021-3-23 11:16 | 顯示全部樓層
這種圖形出現,是典型的LCD初始化不成功導致的,看你的代碼中沒有調用初始化函數

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:390416 發表于 2021-3-23 13:13 | 顯示全部樓層
可以肯定的是 仿真肯定正常,因為仿真軟件不管你實物怎么樣的。
初始化失敗了,先清屏 延遲很長時間,然后再寫第一條指令和最后一條指令。就可以清屏復位了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品三区 | 日日骑 | 久久久久亚洲精品国产 | 亚洲国产精品久久久 | 国产传媒在线播放 | 成年人在线播放 | 中国一级特黄毛片大片 | 免费在线观看黄色av | 亚洲精品视频在线 | 国产成在线观看免费视频 | 黄篇网址 | 男人的天堂久久 | 情侣av| jizz在线免费观看 | 91免费在线| 欧美极品一区二区 | 欧美一级在线 | av色噜噜 | hsck成人网| 国产原创在线观看 | av av在线| 在线观看亚洲精品视频 | 日韩久久久久久 | 免费激情 | 一区二区手机在线 | 99亚洲 | 在线播放一区二区三区 | 狠狠综合久久av一区二区小说 | 超碰在线人| 日韩成人一区 | 国产日韩欧美在线 | 天天躁人人躁人人躁狂躁 | 97国产爽爽爽久久久 | 久久久xx| 羞羞网站在线观看 | 在线免费观看黄色 | 国产精品一区二区欧美黑人喷潮水 | h在线观看 | 一起操网站 | 午夜免费小视频 | 超碰在线人|