找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ds180b20程序從51單片機(jī)移植到增強(qiáng)型15系列單片機(jī)怎么移植啊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:981582 發(fā)表于 2021-12-2 19:35 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
求解,謝謝了。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:155507 發(fā)表于 2021-12-2 20:08 | 只看該作者
1T和12T單片機(jī)的區(qū)別。標(biāo)準(zhǔn)51單片機(jī)是12T的

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

使用道具 舉報

板凳
ID:981582 發(fā)表于 2021-12-2 20:34 | 只看該作者
angmall 發(fā)表于 2021-12-2 20:08
1T和12T單片機(jī)的區(qū)別。標(biāo)準(zhǔn)51單片機(jī)是12T的

相同的程序在不同時鐘周期的單片機(jī)下延時是不同的,所以當(dāng)我 ...

感謝啊

回復(fù)

使用道具 舉報

地板
ID:908826 發(fā)表于 2021-12-2 20:40 | 只看該作者
軟件延時之類的,因為傳統(tǒng)的12t,15是1t,運(yùn)行速度更快了,所以51單片機(jī)的延時放在15里面可能會短一些。注意一下并且調(diào)整基本就可以了
回復(fù)

使用道具 舉報

5#
ID:57657 發(fā)表于 2021-12-2 20:46 | 只看該作者
只有軟件延時需要修改,1T比12T的指令周期縮短了很多,定時器初值不要動。
回復(fù)

使用道具 舉報

6#
ID:155507 發(fā)表于 2021-12-3 07:27 | 只看該作者
這個不難解決,去研讀DS18B20手冊,特別是它的讀寫時序部分。再對比一下,你的程序?qū)λ牟僮鲿r序,能滿足手冊上的要求嗎?
回復(fù)

使用道具 舉報

7#
ID:155507 發(fā)表于 2021-12-3 09:09 | 只看該作者
此ds180b20程序 51程序移植到STC15失敗的主要有兩個原因:

1.原來的延時函數(shù)要重新調(diào)整參數(shù)。由于具體函數(shù)體寫法和采用數(shù)據(jù)類型不同,CPU處理用時也不同,無法給你一個固定的比例關(guān)系套用?梢詤⒖糞TC官方示例。

2.由于1T單片機(jī)速度非?欤瑢Χ丝趯懖僮骱笠却辽2個時鐘達(dá)到穩(wěn)定后才能讀準(zhǔn),否則容易出錯。1個 _nop_()  用時3個時鐘。
回復(fù)

使用道具 舉報

8#
ID:624769 發(fā)表于 2021-12-3 10:56 | 只看該作者
如果你的15系列,指的是STC15xxxxxx 那么,他也是51單片機(jī),不存在移植問題。

你可能會面臨的唯一問題,就相當(dāng)于單片機(jī)換了一個頻率的晶振所面臨的問題。
如果頭文件寫的好,也就是一句代碼的事情。頭文件寫得不好,可能要一個一個地方的改。
#define MainForse = 22118400L        這句東西應(yīng)該不陌生吧? 這句是用來應(yīng)對換晶振可能需要做的修改工作量最小化的。
考慮到可能用在不同系列的單片機(jī),通常會用到:
#define CrystalType = Y3          //Y1: 89S    Y3: 10,11,12S   Y5: 15S    Y6: 8S      
這種定義方式,以此應(yīng)用到所有延時函數(shù),在改換系列的時候就不會受任何影響了。


回復(fù)

使用道具 舉報

9#
ID:139866 發(fā)表于 2021-12-3 10:59 | 只看該作者
用示波器測時序,然后根據(jù)手冊調(diào)整軟件延時
回復(fù)

使用道具 舉報

10#
ID:401564 發(fā)表于 2021-12-3 12:50 | 只看該作者
18B20就是個延時的問題
如果你是用定時器來作為延時,在STC單片機(jī)中,直接就是燒錄,除了STC8G要增加設(shè)定端口輸出模式而已
回復(fù)

使用道具 舉報

11#
ID:313854 發(fā)表于 2021-12-3 14:21 | 只看該作者
更改下延時程序就可以了,可以通過示波器測量數(shù)據(jù)引腳間隔來調(diào)整延時大小,因為兩個單片機(jī)指令周期不同
回復(fù)

使用道具 舉報

12#
ID:226055 發(fā)表于 2021-12-4 10:57 | 只看該作者
    你好,我手頭有艾克姆的STC15和STC8的源程序,用的就是DS18B20,直接發(fā)你改一下IO口就可以用。
    1、DS18B20溫度傳感器接在STC15W4K56S4板子上的圖片。


    2、
DS18B20溫度傳感器接在STC8A8K64S4A12板子上的圖片。



    3、一定注意DS18B20單總線用IO口上一定加上拉電阻。
    4、附件為源碼,可直接打開KEIL4編譯的。




STC8:DS18B20溫度傳感器 - 串口調(diào)試助手顯示(串口1).rar

41.77 KB, 下載次數(shù): 5

STC15:DS18B20溫度傳感器 - 串口調(diào)試助手顯示(串口1).rar

55.14 KB, 下載次數(shù): 5

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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