找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 8698|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STC16F40K128單片機LQFP48核心板PCB文件 使用keil C251的注意事項總結(jié)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:390416 發(fā)表于 2021-1-20 12:59 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 人人學(xué)會單片機 于 2021-2-2 17:55 編輯




下載:
PCB文件 STC8H8K64S4U+STC16F40K128 LQFP48.zip (13.22 MB, 下載次數(shù): 68)
STC16F40K128的數(shù)據(jù)手冊超過20MB,只能放百度盤下載:https://pan.baidu.com/s/1bp4HLl9
一、編譯器相關(guān):
        1、必須安裝keil C251編譯器,并且,需要把STC16F的型號添加到軟件安裝目錄,并且需要使用STC16F系列的頭文件

        2、項目工程Options for Target 的配置
                A、CPU Model 選擇:Source (251 native)
                B、Memory Model 選擇:需要根據(jù)程序復(fù)雜程度做選擇。一般選擇Small:data vars far const ptr-4
                C、Code Rom Size 選擇:Large,64K program。Code Rom Size 模式如果是:Huge,64K functions,16M progr,那么會導(dǎo)致P0口的矩陣鍵盤工作不正常。
        
        3、keil軟件的BUG—0xfD的問題,導(dǎo)致了C251的文件名不能出現(xiàn)以下漢字:
        褒餅昌除待諜洱俘庚過糊積箭燼君魁例籠慢謬凝琵訖驅(qū)三升數(shù)她聽妄錫淆旋妖引育札正鑄佚冽邶
        埤犖蔟摭啐幘獫愷泯潺嫗紈琮槧輦挲臊忑睚銓稞瘕頎螨籪酏觚鳊鼾        

二、芯片接口相關(guān):
        1、除P30 、P31,其余IO口默認都是高祖模式,需要配置IO口模式才能正常使用。

        2、LQFP48的第16腳不同:STC15W是P5.5,STC16F是電壓參考腳ADC_VRef+。

        3、和STC8H8K一樣,STC16F LQFP48 也沒有P1.2,用P4.2來控制NRF24L01_CSN


三、C251的語法與STC16F的寄存器:
        1、xdata 的變量,必須是寫成 static u8 xdata count;  而不能寫成 static xdata u8 count;

        2、C251的函數(shù)中定義的 指向code的指針變量,需要填寫數(shù)據(jù)的存儲位置code。例如:(u8 Reg,u8 code *pBuf,u8 len),表示查找code 數(shù)組。

        3、16位全局變量保存到xdata區(qū)間后,如果不能正常讀寫,調(diào)整Memory Model選擇:Large,xdata vars far const ptr-4。也有可能選擇Small:data vars far const ptr-4

        4、帶參函數(shù)賦值時,不支持+-*/ 符號,例如 OLED_Write_Reg(0xb0+PAGE);   改成OLED_Write_Reg(0xb0|PAGE); 即可。加號改成 按位或

        5、STC16F需要在主函數(shù)第一句寫  WTST=0;  讓CPU執(zhí)行單指令,讓CPU速度正常

        6、STC16F需要把AUXR的 EXTRAM位寫1,才能讀寫xdata存儲空間。


四、其他
        1、WS2812、DS18B20、LCD1602等 需要短暫延遲的代碼 需要增加延遲_nop_();的數(shù)量

        2、ADC的寄存器不一樣 需要仔細修改,STC15W是內(nèi)置參考電壓。STC16F是ADC_VRef+做參考電壓。沒有P1.2,ADC腳是P5.4。如果是實時測量ADC,關(guān)閉電源會嚴重影響采集結(jié)果。

        3、IIC 函數(shù)  每次時鐘上升沿之前 加一句 IIC_Delay();延遲。

        4、STC16F單片機的PWM的寄存器,和STC8H8K的PWM寄存器兼容。但是和STC15W的PWM寄存器完全不同。需要全部重新改寫。


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1017706 發(fā)表于 2022-5-16 23:38 | 只看該作者
編譯器都不一樣了
回復(fù)

使用道具 舉報

板凳
ID:290373 發(fā)表于 2022-5-18 20:18 | 只看該作者
感謝分享!這下可以少走很多彎路了。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表