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

標題: msp430g2553驅動12864顯示不了 [打印本頁]

作者: 嘎嘎嘎646    時間: 2018-1-27 14:43
標題: msp430g2553驅動12864顯示不了
程序如下,cs腳我接的是vcc,用的是5v電壓的12864,之前懷疑是因為引腳只有3.3v才不顯示的,但是之后加了緩沖器升到5v還是沒有顯示,程序檢查半天也沒看到錯誤
//12864液晶串行顯示測試程序
//P1.4模擬SID(接第5腳),P1.5模擬SCLK(接第6腳)
//4腳(CS信號)接高電平選通,15腳(PSB信號)接地選擇串行方式
//17腳(RST信號)根據注釋提示懸空
#include <MSP430g2231.h>

void int_port(void)                    //管腳初始化
{
//  P1SEL&=~(BIT4+BIT5);                        //P1.4模擬SID,設置為i/o口輸出方向
  P1DIR|=(BIT4+BIT5);
}
void delay(unsigned int t)             //延時函數
{                                      //粗略延時,滿足時序要求
unsigned int i,j;
for(i=0; i<t;  i++)
        for(j=0; j<10; j++);
}
void sendbyte(unsigned char zdata)     //數據傳送函數
{
         P1OUT&=~BIT5;
  unsigned char code_seg7;
  unsigned char i;
  code_seg7=zdata;
  for(i=0; i<8; i++)
  {
          P1OUT&=~BIT5;
    if((code_seg7<<i)&0x80)
      P1OUT|=BIT4;                     //SID為1
    else
      P1OUT&=~BIT4;                    //SID為0
    delay(20);
    P1OUT|=BIT5;//產生時鐘信號上沿
    delay(20);
     P1OUT&=~BIT5; //產生時鐘信號下沿

  }
}
void write_com(unsigned char cmdcode)  //寫命令函數
{                                      //串口控制格式(11111AB0)
                                //A數據方向控制,A=H時讀,A=L時寫
                                       //B數據類型選擇,B=H時為顯示數據,B=L時為命令
sendbyte(0xf8);                //MCU向LCD發命令

        sendbyte(cmdcode & 0xf0);      //發高四位數據(數據格式D7D6D5D4_0000)
sendbyte((cmdcode << 4) & 0xf0);//發低四位數據(數據格式D3D2D1D0_0000)
delay(20);                      //延時等待
}
void write_data(unsigned char Dispdata)//寫數據函數
{

sendbyte(0xfa);                //MCU向LCD發數據
sendbyte(Dispdata & 0xf0);     //發高四位數據
sendbyte((Dispdata << 4) & 0xf0);//發低四位數據
delay(20);
}
void lcdinit()                         //LCD初始化
{
delay(20000);                  //復位等待(內部自帶上電復位電路),時間較長
write_com(0x30);               //功能設定:基本指令集操作
delay(500);                     //延時等待
write_com(0x02);
delay(500);
write_com(0x0c);               //整體顯示,關游標
delay(500);
write_com(0x01);
delay(500);
write_com(0x06);               //屏幕清零
delay(500);
write_com(0x80);
}
void write_pos(unsigned char x,unsigned char y)
{
        unsigned char pos;
        if(x==1)
                x=0x80;
        else if(x==2)
                x=0x90;
        else if(x==3)
                x=0x88;
        else if(x==4)
                x=0x98;
        pos=x+y-1;
        write_com(pos);
}
void print_string(unsigned char x,unsigned char y,unsigned char *s)          //發送字符串
{
        unsigned char i;
        lcdinit();
        write_pos(x,y);
        for(i=0;*(s+i)!='\0';i++)
                write_data(s);
}
void Test()
{
        print_string(1,1,"頻率計:");
        delay(50);
        write_pos(2,7);
        write_data('H');
        write_data('z');
        delay(50);
}
void main()//正確結果:屏幕顯示:德州儀器MSP430(第一行) 頻率:  1234HZ(第二行)
{
WDTCTL=WDTPW+WDTHOLD;          //關閉看門狗
int_port();                    //端口初始化
lcdinit();                     //LCD初始化
Test();                        //測試
while(1);                      //CPU空轉
}

作者: KawhiL    時間: 2018-1-27 19:44
沒用過12864,我用1602的時候也是程序檢查很久不知道問題在哪。后來發現不是程序的問題。是對比度那個引腳接的電阻大小有問題。
你可以看看12864是否有對比度調節的引腳,接的電阻大小是否正確
作者: chengjingtao1    時間: 2018-1-27 21:08
msp430g2553是3.3v供電,LCD如果是5V 的則不能顯示或不能正常顯示,購買3,。3v的lcd即可。
作者: chengjingtao1    時間: 2018-1-27 21:13
msp430g2553是3.3v供電,接口輸出是小于3.3v電平的信號,與5vLCD 的接口不匹配,以前我也試過,后購買了3.3v的LCD就顯示正常了。
作者: xdl932365660    時間: 2018-1-27 21:56
確定不是電路的問題么





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产成人精品午夜 | 夜夜爽99久久国产综合精品女不卡 | 成人网在线看 | av免费成人| 免费国产网站 | 日韩中文字幕 | 91免费视频观看 | 国产成人一区二区三区久久久 | 亚洲精品视频二区 | 久久久久国产一区二区三区四区 | 国产成人精品午夜视频免费 | 国产精品视频一 | 精品欧美黑人一区二区三区 | 亚洲一区二区三 | 日本视频在线播放 | 中国美女一级黄色片 | 国产精品久久久久久婷婷天堂 | 亚洲欧美日韩一区二区 | 久久91| 久久精品国产免费一区二区三区 | 亚洲毛片在线观看 | 久久99深爱久久99精品 | 国产情侣一区 | 亚洲欧洲精品一区 | 免费在线视频一区二区 | 国产成人99久久亚洲综合精品 | 97精品久久 | 久久国产精品-久久精品 | 色综合成人网 | a级大毛片 | 成人国产精品久久久 | 一区日韩 | 久久精品一区二 | 亚洲人在线观看视频 | 欧美一区二区三区在线播放 | 亚洲视频在线看 | 伊人久久免费 | 综合久久一区 | 国产精品视频久久久久 | 日日干干 | 欧美乱码精品一区二区三区 |