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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3142|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

STC15W4K58S4與1602,12864顯示失敗解決方案之一

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:586048 發(fā)表于 2019-7-23 20:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我遇到的是時(shí)序圖那個(gè)時(shí)間不對(duì)應(yīng),因?yàn)?5w快89  6——12倍,所以那些時(shí)間也要快6——12倍,引腳也要相應(yīng)的看原理圖改。

下面是我的問(wèn)題:
我的屏幕很暗,調(diào)了板子上的可調(diào)電阻還是很暗,又沒(méi)有大佬幫幫我





延時(shí)測(cè)試.zip

699.63 KB, 下載次數(shù): 28

1602與stc15w

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:586048 發(fā)表于 2019-7-23 20:59 | 只看該作者
/*
**********************************************************************
*                         頭文件包含
**********************************************************************
*/
#define         MAIN_Fosc                12000000UL        //定義主時(shí)鐘  22.1184M晶振
//u8,u16,u32已在"STC15Fxxxx.h"定義
#include "STC15Fxxxx.h"

/*
**********************************************************************
*                         本地宏定義
**********************************************************************
*/
/*
void main(void)
{
        P0M1 = 0;        P0M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P1M1 = 0;        P1M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P2M1 = 0;        P2M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P3M1 = 0;        P3M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P4M1 = 0;        P4M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P5M1 = 0;        P5M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P6M1 = 0;        P6M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P7M1 = 0;        P7M0 = 0;        //設(shè)置為準(zhǔn)雙向口
       
        while(1);
}*/
/*
RS  RW E 引腳要自己定義
因?yàn)?5W系列快89系列 6——12倍,時(shí)序圖上面的時(shí)間也要
相應(yīng)的加倍,具體多少要具體測(cè)試,我的大概快了8倍(IAP15W4K584S)
可以作為參考
*/

sbit LCD_RS=P5^0;//定義引腳
sbit LCD_RW=P5^1;
sbit LCD_E=P5^2;
sbit ledL = P5^5;
#define LCD_Data P4
#define Busy    0x80 //用于檢測(cè)LCD狀態(tài)字中的Busy標(biāo)識(shí)



void WriteDataLCD(unsigned char WDLCD);
void WriteCommandLCD(unsigned char WCLCD,BuysC);
unsigned char ReadDataLCD(void);
unsigned char ReadStatusLCD(void);
void LCDInit(void);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
void Delay4us(void);


unsigned char code uctech[] = {"ic2012.taobao.co"};
unsigned char code net[] = {"Happy every day!"};

void main(void)
{
        P0M1 = 0;        P0M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P1M1 = 0;        P1M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P2M1 = 0;        P2M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P3M1 = 0;        P3M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P4M1 = 0;        P4M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P5M1 = 0;        P5M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P6M1 = 0;        P6M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        P7M1 = 0;        P7M0 = 0;        //設(shè)置為準(zhǔn)雙向口
        //上面這些是必要的,除非用到PWM
       
        ledL = 0;
Delay400Ms(); //啟動(dòng)等待,等LCD講入工作狀態(tài)
LCDInit(); //LCM初始化
Delay5Ms(); //延時(shí)片刻(可不要)

DisplayListChar(0, 0, uctech);
DisplayListChar(0, 5, net);
ReadDataLCD();//測(cè)試用句無(wú)意義
while(1);{}
       
}

//寫(xiě)數(shù)據(jù)
void WriteDataLCD(unsigned char WDLCD)
{
ReadStatusLCD(); //檢測(cè)忙
LCD_Data = WDLCD;
LCD_RS = 1;
        Delay4us(); //延時(shí)  約4.25微秒
       
LCD_RW = 0;       
        Delay4us(); //延時(shí)
       
LCD_E = 0; //若晶振速度太高可以在這后加小的延時(shí)
        Delay4us();  //延時(shí)
       
LCD_E = 1;
}

//寫(xiě)指令
void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC為0時(shí)忽略忙檢測(cè)
{
if (BuysC) ReadStatusLCD(); //根據(jù)需要檢測(cè)忙
LCD_Data = WCLCD;
LCD_RS = 0;
        Delay4us();  //延時(shí)
       
LCD_RW = 0;
        Delay4us();  //延時(shí)
       
LCD_E = 0;
        Delay4us();
       
LCD_E = 1;
}

//讀數(shù)據(jù)
unsigned char ReadDataLCD(void)
{
LCD_RS = 1;
        Delay4us();  //延時(shí)
       
LCD_RW = 1;
        Delay4us(); ; //延時(shí)
       
LCD_E = 0;
        Delay4us();
       
LCD_E = 1;
return(LCD_Data);
}

//讀狀態(tài)
unsigned char ReadStatusLCD(void)
{
LCD_Data = 0xFF;
LCD_RS = 0;
        Delay4us();  //延時(shí)
       
LCD_RW = 1;
        Delay4us();  //延時(shí)
       
LCD_E = 0;
        Delay4us(); //約4.25微秒
        Delay4us();        //兩個(gè)約8微秒,自己測(cè)試一下
LCD_E = 1;
while (LCD_Data & Busy); //檢測(cè)忙信號(hào)
return(LCD_Data);
}

void LCDInit(void) //LCM初始化
{
LCD_Data = 0;
WriteCommandLCD(0x38,0); //三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)
Delay5Ms();
WriteCommandLCD(0x38,0);
Delay5Ms();
WriteCommandLCD(0x38,0);
Delay5Ms();

WriteCommandLCD(0x38,1); //顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào)
WriteCommandLCD(0x08,1); //關(guān)閉顯示
WriteCommandLCD(0x01,1); //顯示清屏
WriteCommandLCD(0x06,1); // 顯示光標(biāo)移動(dòng)設(shè)置
WriteCommandLCD(0x0C,1); // 顯示開(kāi)及光標(biāo)設(shè)置
}

//按指定位置顯示一個(gè)字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
if (Y) X |= 0x40; //當(dāng)要顯示第二行時(shí)地址碼+0x40;
X |= 0x80; // 算出指令碼
WriteCommandLCD(X, 0); //這里不檢測(cè)忙信號(hào),發(fā)送地址碼
WriteDataLCD(DData);
}

//按指定位置顯示一串字符
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength;

  ListLength = 0;
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
while (DData[ListLength]>=0x20) //若到達(dá)字串尾則退出
  {
   if (X <= 0xF) //X坐標(biāo)應(yīng)小于0xF
    {
     DisplayOneChar(X, Y, DData[ListLength]); //顯示單個(gè)字符
     ListLength++;
     X++;
    }
  }
}

//5ms延時(shí)
void Delay5Ms(void)
{
        unsigned char i, j;

        i = 59;
        j = 90;
        do
        {
                while (--j);
        } while (--i);
}

//400ms延時(shí)
void Delay400Ms(void)
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 19;
        j = 62;
        k = 43;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}
void Delay4us()                //@12.000MHz  精準(zhǔn)延時(shí)4微妙
{
        unsigned char i;

        _nop_();
        _nop_();
        i = 9;   //必須i>=8,大約6微秒(在229——237測(cè)試)實(shí)際上是3.9微秒
        while (--i);
}




回復(fù)

使用道具 舉報(bào)

板凳
ID:480680 發(fā)表于 2019-7-25 11:22 | 只看該作者
電位器調(diào)節(jié)顯示對(duì)比度!沒(méi)有顯示有三種能:
1、顯示屏壞了
2、信號(hào)線沒(méi)有連接好
3、程序問(wèn)題
回復(fù)

使用道具 舉報(bào)

地板
ID:586048 發(fā)表于 2019-7-26 14:34 | 只看該作者
周濤1331 發(fā)表于 2019-7-25 11:22
電位器調(diào)節(jié)顯示對(duì)比度!沒(méi)有顯示有三種能:
1、顯示屏壞了
2、信號(hào)線沒(méi)有連接好

顯示屏沒(méi)有壞,信號(hào)線也沒(méi)有問(wèn)題,如果是程序問(wèn)題會(huì)出在那里?
電位器也調(diào)過(guò)了,也是沒(méi)有什么用,求大佬解答
回復(fù)

使用道具 舉報(bào)

5#
ID:586048 發(fā)表于 2019-7-26 14:38 | 只看該作者
周濤1331 發(fā)表于 2019-7-25 11:22
電位器調(diào)節(jié)顯示對(duì)比度!沒(méi)有顯示有三種能:
1、顯示屏壞了
2、信號(hào)線沒(méi)有連接好

可能說(shuō)的不是很清楚,程序能過(guò)正常顯示,但是屏幕很暗
回復(fù)

使用道具 舉報(bào)

6#
ID:419264 發(fā)表于 2019-7-27 20:55 | 只看該作者
那個(gè)P5^5改為P5^4
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久综合伊人一区二区三 | 中文字幕在线第一页 | 久草在线| 香蕉视频黄色 | 一级做a爰片性色毛片16美国 | 97久久国产 | 久久中文字幕av | 欧美 日韩 亚洲91麻豆精品 | 亚洲一在线 | 日韩毛片 | 国产精品亚洲一区二区三区在线 | 免费黄色av网站 | 国产一区二区三区免费视频 | 欧美视频二区 | 欧美啊v在线观看 | 欧美激情亚洲激情 | 西西裸体做爰视频 | 亚洲国产成人精品女人久久久 | 九九久久精品视频 | 亚洲一区二区精品视频在线观看 | 韩国电影久久 | 日本大香伊一区二区三区 | 美美女高清毛片视频免费观看 | 国产亚洲精品久久久优势 | 538在线精品 | 日本精品免费 | 男人的天堂avav | 在线一区 | 国产一区二区自拍 | 麻豆视频在线免费看 | 免费高潮视频95在线观看网站 | 精品一区二区三区在线观看 | 色综合天天网 | 亚洲成人一区二区 | 久久视频免费看 | 一区二区三区在线免费观看 | 国产成人精品一区二区三区在线 | 精品一二区 | 亚洲精品久久久久久久久久久久久 | 中文字幕在线精品 | 91av在线免费播放 |