找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC 硬件仿真如何看運行時間?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1044091 發(fā)表于 2022-12-18 11:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
在做的項目里有倒計時的功能,用STC 8G1K08設(shè)置芯片仿真,自動設(shè)定的頻率總是有誤差,并且每次的設(shè)定頻率誤差還不一樣。比如:


  . 用戶設(shè)定頻率: 11.059MHz
  . 調(diào)節(jié)后的頻率: 11.040MHz (主時鐘分頻系數(shù) = 2)
  . 頻率調(diào)節(jié)誤差: -0.174%

因為頻率有誤差,所以感覺每次倒計時的時間總是不準。想問下在硬件仿真時能看到具體的運行時間嗎?好像STC芯片仿真時看不了時間?

另外,要想得到比較精確的時間,需要并聯(lián)外部晶振和電容么?還是用它“用戶自定義內(nèi)部IRC頻率”的范例程序代碼設(shè)置?


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

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2022-12-18 12:49 來自手機 | 只看該作者
直接看不了,只能間接看,比如利用某變量記錄兩個時間點之間的機器周期,又比如某個IO在兩個不同時間點輸出高低電平,第三方采集等。
回復

使用道具 舉報

板凳
ID:624769 發(fā)表于 2022-12-18 12:53 來自手機 | 只看該作者
要想得到較準的頻率,應(yīng)當讀取出廠的22.1184校驗值,用這個,再根據(jù)你的實際需要分頻,ISP下載設(shè)置的頻率是不準的,受限你的電腦,至少我用電腦設(shè)能誤差3%以上。
回復

使用道具 舉報

地板
ID:1044091 發(fā)表于 2022-12-18 13:51 | 只看該作者
188610329 發(fā)表于 2022-12-18 12:49
直接看不了,只能間接看,比如利用某變量記錄兩個時間點之間的機器周期,又比如某個IO在兩個不同時間點輸出 ...

我加了一個斷點,按F5數(shù)碼管就可以按數(shù)字倒計時了。但問題是左下角的時間一直是0啊,不顯示時間。我再試試用IO輸出個方波的方法。



回復

使用道具 舉報

5#
ID:1044091 發(fā)表于 2022-12-18 14:08 | 只看該作者
188610329 發(fā)表于 2022-12-18 12:53
要想得到較準的頻率,應(yīng)當讀取出廠的22.1184校驗值,用這個,再根據(jù)你的實際需要分頻,ISP下載設(shè)置的頻率是 ...

您說的是不是這樣,下載時需要選擇22.1184Mhz嗎,還是根本就不用管這項了,直接在代碼里手動設(shè)置IRC頻率為22.1184Mhz然后2分頻?按您的經(jīng)驗,手動設(shè)置IRC頻率準嗎?官方給出了3種代碼,有點簡單有的復雜,我應(yīng)該用哪個呢?

回復

使用道具 舉報

6#
ID:213173 發(fā)表于 2022-12-18 14:40 | 只看該作者
實際運用中,一小時內(nèi)這點誤差可以忽略不計。如果對時間精度有特別需求就要另外添置高精度時鐘芯片。
回復

使用道具 舉報

7#
ID:401564 發(fā)表于 2022-12-18 16:50 | 只看該作者
一兩個小時的倒計時是不會有問題的,只要IRC時鐘選擇對了,再用定時器做延時,保證沒有問題
STC8G1K08A,我用來定時六個小時,在分上跟時鐘IC是沒有區(qū)別的,但有時會誤差三五分鐘
做項目是不可能讓你每個單片機去調(diào)節(jié)時鐘的,每個單片機的RC時鐘誤差都是差不多的
如果你要是想知道怎么測量,最好是下載后用IO進行測量,示波器或者邏輯分析儀都可以
回復

使用道具 舉報

8#
ID:624769 發(fā)表于 2022-12-18 18:33 來自手機 | 只看該作者
ningsy 發(fā)表于 2022-12-18 14:08
您說的是不是這樣,下載時需要選擇22.1184Mhz嗎,還是根本就不用管這項了,直接在代碼里手動設(shè)置IRC頻率 ...

下載時可以不需要設(shè)置22.1184, 但是,由于頻段的關(guān)系,要選同一頻段的,為了避免麻煩,你還是選22.1184吧,8g1k沒有chipID,所以,你只能ROM讀取,記得下載時勾選“末尾添加重要參數(shù)”選項,才能讀取成功。最后,這個數(shù)值,是出廠是stc測試時最接近22.1184頻率的值,如果這個頻率最終依然無法滿足你的需要,你只能考慮其他時鐘源了。就我的使用結(jié)果來看,比電腦自動調(diào)的要準太多了。
回復

使用道具 舉報

9#
ID:624769 發(fā)表于 2022-12-18 18:36 來自手機 | 只看該作者
ningsy 發(fā)表于 2022-12-18 13:51
我加了一個斷點,按F5數(shù)碼管就可以按數(shù)字倒計時了。但問題是左下角的時間一直是0啊,不顯示時間。我再試 ...

左下角是一直0的,所以我說沒有辦法直接得到,只能要么用變量記錄時鐘周期,比如開個定時器,每50000個周期,變量+1,然后結(jié)合定時器和變量,算出過了多少周期,要么某個IO輸出高低電平,讓第三方芯片來計算。
回復

使用道具 舉報

10#
ID:1044091 發(fā)表于 2022-12-18 19:28 | 只看該作者
網(wǎng)上查了一下,有人讓單片機產(chǎn)生1S(或100ms)的波形,配合邏輯分析儀,調(diào)整IRTRIM寄存器的值,即可調(diào)整STC單片機的頻率。但這個調(diào)整是一次性的,不同的單片機,就可能有所不同,不同的環(huán)境(特指溫度,也可能不同)。 這就很麻煩了。我還是先接受它自動調(diào)整的精度,實在不行了,就接個晶振上去爽快些。
回復

使用道具 舉報

11#
ID:1034262 發(fā)表于 2022-12-18 23:21 | 只看該作者
用一個IO來指示時間。
回復

使用道具 舉報

12#
ID:1044091 發(fā)表于 2022-12-19 09:15 來自手機 | 只看該作者
多謝以上各位指導!我會試試看,或許就能用到。
回復

使用道具 舉報

13#
ID:401564 發(fā)表于 2023-2-5 19:35 | 只看該作者
ningsy 發(fā)表于 2022-12-19 09:15
多謝以上各位指導!我會試試看,或許就能用到。

對于精確的長時間,STC單片機都是用定時器的
不會用while這種代碼的
至于調(diào)節(jié)片上的時鐘,感覺沒必要
回復

使用道具 舉報

14#
ID:1061331 發(fā)表于 2023-2-6 00:42 | 只看該作者
用DEBUG斷點調(diào)試
回復

使用道具 舉報

15#
ID:1149881 發(fā)表于 2025-5-8 14:27 | 只看該作者
搞一個定時器中斷,舉個例子,里面不是有TL0和TH0,,查手冊找到它們的地址,然后用keil的debug,找里面的memory,然后你去搜你要找的l0和h0的地址,然后打斷點運行,看時間變化量就可以了。注意觀察是否重新開始加載值了
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表