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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15W408AS程序移植到STC8G1K17單片機(jī)上出錯

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:965189 發(fā)表于 2021-10-15 22:59 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
同樣的程序,用STC15W408AS驅(qū)動12864液晶屏運(yùn)行正常。移植到STC8G1K17上,12864液晶屏就沒有字符顯示。望有經(jīng)驗(yàn)的朋友指教。謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2021-10-16 05:44 | 只看該作者
STC8G的速度要比STC15W快,這就可能影響驅(qū)動12864液晶屏的時序,再者STC8G除P3.0、P3.1外初始端口模式準(zhǔn)雙向,其它端口都是高阻,需要根據(jù)需要設(shè)置。
回復(fù)

使用道具 舉報(bào)

板凳
ID:554500 發(fā)表于 2021-10-16 09:17 | 只看該作者
IO口工作模式設(shè)置了沒,STC8 上電默認(rèn)IO為高阻模式。這點(diǎn)很關(guān)鍵
回復(fù)

使用道具 舉報(bào)

地板
ID:155507 發(fā)表于 2021-10-16 09:27 | 只看該作者
STC15 是8051指令集 STC-Y5,  STC8 是8051指令集 STC-Y6

相同的程序在不同時鐘周期的單片機(jī)下延時是不同的,所以當(dāng)我們在不同時鐘周期的單片機(jī)中移植程序的時候要注意軟件延時需要修改成適當(dāng)?shù)某绦颍駝t會造成不必要的錯誤。
回復(fù)

使用道具 舉報(bào)

5#
ID:965189 發(fā)表于 2021-10-16 11:50 | 只看該作者
sfr P1M0 = 0x92;
sfr P1M1 = 0x91;
sfr P3M0 = 0xB2;
sfr P3M1 = 0xB1;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr  AUXR = 0x8e;       //輔助寄存器
sfr P5=0xC8;


sbit CS=P3^5;                           //液晶屏          
sbit SID=P3^6;                           //液晶屏          
sbit CLK=P3^7;                           //液晶屏          

////====延時函數(shù)=============================
  void delay(uint ms)         //12864液晶屏使用
    {
      uchar t;                                                                                                                                       
      while(ms--)
       {
         for(t=0;t<110;t++);
       }
    }

void main()
{
       P1M0 = 0x00;
       P1M1 = 0x0F;                //P1.0高阻輸入。作為ADC口,0x40;
       P3M0 = 0x00;                //
       P3M1 = 0x00;                //P3,準(zhǔn)雙向口
       P5M0 = 0x00;
       P5M1 = 0x00;
           TN_itin();                //所有中斷、定時器初始化
           lcdinit();                //液晶屏初始化
           key=0;
           TB=0;
       while (1);
           {
                     lcd_pos(1,0);                    //第一行,第1位        
              hzkdis(dis1);                    //1輸入
              write_data(0x3A);

          
           }
}
回復(fù)

使用道具 舉報(bào)

6#
ID:965189 發(fā)表于 2021-10-16 11:52 | 只看該作者
定時器,外中斷,都可以正常運(yùn)行了,就是12864液晶屏未能顯示。
回復(fù)

使用道具 舉報(bào)

7#
ID:965189 發(fā)表于 2021-10-16 12:30 | 只看該作者
lcd_pos(1,0);                    //第一行,第1位   
如果正常的話,在第二行第一位顯示:“輸入:”
回復(fù)

使用道具 舉報(bào)

8#
ID:965325 發(fā)表于 2021-10-16 13:07 | 只看該作者
我最近剛把STC15W408AS上的程序移植到STC8A8K上了,主要是液晶屏驅(qū)動需要在最底層讀寫函數(shù)部分加額外延時。

樓主可以先試驗(yàn)一下,STC8G1K工作頻率降低到5M左右,如果能正常運(yùn)行,那么基本上就是液晶屏驅(qū)動速度過快和延時函數(shù)不正確的的問題了。
回復(fù)

使用道具 舉報(bào)

9#
ID:123289 發(fā)表于 2021-10-16 14:37 | 只看該作者
程序不是自己寫的!
回復(fù)

使用道具 舉報(bào)

10#
ID:213173 發(fā)表于 2021-10-16 14:58 | 只看該作者
君工創(chuàng) 發(fā)表于 2021-10-16 11:52
定時器,外中斷,都可以正常運(yùn)行了,就是12864液晶屏未能顯示。

“void delay(uint ms)//12864液晶屏使用”函數(shù)明顯不對
回復(fù)

使用道具 舉報(bào)

11#
ID:965325 發(fā)表于 2021-10-16 15:47 | 只看該作者
樓主,我給你貼個我的實(shí)際修改例子,修改前STC15W工作在12M,驅(qū)動IIC口的OLED完全正常,換成STC8A8K,工作頻率降低到6M,OLED顯示才正常,下面的所有延時命令“_nop_();”都是修改后增加的 在STC15W下是不需要的,修改后OLED可以在STC8@12M下正常運(yùn)行了,但是24M下還是不行,還需要繼續(xù)增加延時。
基本上修改這幾個最底層讀寫和控制總線的函數(shù)就行了,另外我用的OLED,init的第一條命令需要延時150ms左右,否則可能不正常,你的液晶初始化前是否需要延時,延時多少,自己參考液晶的資料文檔吧。



所有_nop_();都是修改后增加的。在STC15下不需要。
/**********************************************
//IIC Start
**********************************************/
void IIC_Start()
{
    SCL = high;
          _nop_();
    SDA = high;
          _nop_();
    SDA = low;
          _nop_();
    SCL = low;
          _nop_();
}

/**********************************************
//IIC Stop
**********************************************/
void IIC_Stop()
{
    SCL = low;
          _nop_();
    SDA = low;
          _nop_();
    SCL = high;
          _nop_();
    SDA = high;
          _nop_();
}

/**********************************************
// 通過I2C總線寫一個字節(jié)
**********************************************/
void Write_IIC_Byte(uchar IIC_Byte)
{
    uchar i;
    for(i=0; i<8; i++)
    {
        if(IIC_Byte&0x80)
                                {SDA=high;
                                    _nop_();}
        else
            SDA=low;
            _nop_();
                                    SCL=high;
                                    _nop_();
            SCL=low;
                                    _nop_();
            IIC_Byte<<=1;
    }
    SDA=1;
                _nop_();
    SCL=1;
                _nop_();
    SCL=0;
                _nop_();
}

/*********************OLED寫數(shù)據(jù)************************************/
void OLED_WrDat(uchar IIC_Data)
{
    IIC_Start();
    Write_IIC_Byte(0x78);
          Write_IIC_Byte(0x40);                        //寫數(shù)據(jù)
    Write_IIC_Byte(IIC_Data);
          IIC_Stop();
}
/*********************OLED寫命令************************************/
void OLED_WrCmd(uchar IIC_Command)
{
    IIC_Start();
    Write_IIC_Byte(0x78);
          Write_IIC_Byte(0x00);                         //寫指令
          Write_IIC_Byte(IIC_Command);
          IIC_Stop();
}


評分

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

查看全部評分

回復(fù)

使用道具 舉報(bào)

12#
ID:382454 發(fā)表于 2021-10-16 16:26 | 只看該作者
這樣移植,一大半都要寫過的。
回復(fù)

使用道具 舉報(bào)

13#
ID:965189 發(fā)表于 2021-10-16 17:34 來自觸屏版 | 只看該作者
岳耳 發(fā)表于 2021-10-16 15:47
樓主,我給你貼個我的實(shí)際修改例子,修改前STC15W工作在12M,驅(qū)動IIC口的OLED完全正常,換成STC8A8K,工作 ...

好的,今晚試下。謝謝你!
回復(fù)

使用道具 舉報(bào)

14#
ID:748788 發(fā)表于 2021-10-16 18:02 | 只看該作者
回復(fù)

使用道具 舉報(bào)

15#
ID:57657 發(fā)表于 2021-10-16 19:14 | 只看該作者
君工創(chuàng) 發(fā)表于 2021-10-16 11:50
sfr P1M0 = 0x92;
sfr P1M1 = 0x91;
sfr P3M0 = 0xB2;

像你這樣 sfr 定義的寄存器地址,不同型號都有可能不一樣。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区中文| 亚洲aⅴ精品 | 一级毛片免费视频 | 99精品久久 | 国内精品久久久久 | 亚洲综合天堂网 | 日韩av一区二区在线观看 | 在线成人av | 麻豆国产一区二区三区四区 | 亚洲综合字幕 | 日韩高清三区 | 黄色成人亚洲 | 欧美一区二区三区在线观看视频 | 日韩综合在线视频 | 一区在线免费视频 | 亚洲精品欧美一区二区三区 | 久久亚洲精品视频 | 成人影院免费视频 | 欧美一区二区三区视频在线播放 | 国产一二三区电影 | 日日夜夜天天 | 久久一区精品 | 国产目拍亚洲精品99久久精品 | 欧美一区二区在线 | 国产免费一区二区三区 | 伊人免费观看视频 | 国产精品永久免费视频 | av网站免费看 | 韩日一区二区三区 | jlzzxxxx18hd护士| 国产欧美在线播放 | 一级片在线观看 | 夜夜骚 | 成人h电影在线观看 | 国产精品国产成人国产三级 | 中文字幕伊人 | 尤物在线视频 | av网站免费在线观看 | 91原创视频 | 亚洲一区二区三区在线 | 99国产精品99久久久久久粉嫩 |