簡 介: 本文給出了基於2023年4月23日,拿到了剛剛出品的stc8h8k
: *stc8h8k
*,ad,快速製版
stc8h8k
64u晶元,這款自己帶有8k記憶體,並且有usb介面的晶元,還有12bitadc
,適應於更多的工業訊號採集和控制應用。下面對於其ad功能進行測試。
設計測試電路板的原理圖如下。僅僅引出了ad0~ad3的引腳。
工程檔案:
▲ 測試電路板的原理圖
▲ 測試電路板pcb
工程檔案目錄:
▲ 測試電路
1. ad轉換精度
使用訊號源給出ad取樣的正弦波,頻率0.877hz。峰峰值為:0.5v~4.5v。
▲ 測試的正弦波波形
下圖顯示了對波形採集了1024點的資料波形。其中資料的波動範圍是0~4095。反映了ad的有效取值範圍是12bit。
▲ 採集到的資料波形
下面是縮小訊號幅值之後,對於不同的兩個頻率訊號採集後的波形。其中可以看到混雜有小的尖峰干擾訊號。
▲ 採集到的資料波形
▲ 採集的資料波形
對訊號源的訊號使用乙個電容連線到底線,可以看到其中干擾訊號消失了。
▲ 採集的資料波形
測量adc
convert()時間。使用p0.3作為io輸出脈衝波形。在轉換前,將p0.3置高電平,在轉換後將p0.3置低電平。測量該訊號的脈寬,可以獲得adc
convert()時間。
下圖所展示的adc
的時間波形,可以顯示進行乙個adc
的時間大約是3.4us。
▲ 測量p0.3的脈寬波形
上述轉換時間是在adc
cfg=0x20的情況下,轉換速度。此時adc
的時鐘頻率為sysclock /2.
將adc
cfg=0x2f,按照資料手冊中的資料,此時adc
的時鐘應該是sysclock//16。adc
的轉換時間應該是前面時間的16倍。下面顯示了此時對應的p0.3的波形,adc
convert的時間為34us左右。僅僅是前面的時間的10倍左右。
▲ 測量p0.3的脈寬波形
3. ad採集資料緩衝區的長度
8h8k具有8kxram。測試該ram可以允許採集多長的資料;
(1)adc
_buffer = 2048
採集到的資料波形為:
▲ 採集的資料波形
(2)adc
_buffer= 3800
此時程式編譯完之後,所佔的空間為:
program size: data=53.1 xdata=7866 code=2993
▲ 採集的資料波形
設定ad_buffer=3900,此時編譯完程式的空間為:
program size: data=53.1 xdata=8066 code=2993
此時已然能夠採集到資料。
▲ 採集的資料波形
program size: data=53.1 xdata=8166 code=2993
此時仍然能夠採集資料。
但是當ad_buffer=4000時,此時程式空間為:
program size: data=53.1 xdata=8266 code=2993
然後再輸入採集命令,就無法執行程式了。
這是由於serialtxt的緩衝占用了xdata一部分空間造成的。
然後將serialtxt.中的所有資料都移動到idata,此時採集資料便可以正常進行了。
下面是採集到的4000個資料的波形。
▲ 採集的資料波形
將uart1中的緩衝區也移動到 idata,這樣便可以設定ad_buffer= 4096了。下面是採集到4096個adc
的資料波形。
▲ 採集的資料波形
如果設定ad_buffer=4200,超過4096,採集到的資料波形為:
▲ 採集的資料波形
下面是設定ad_buffer= 4097,採集到的資料波形。可以看到最後乙個數字實際上已經是錯誤數字了。
▲ 採集的資料波形
通過以上實驗,可以得到如下的結論:
1.stc8h8k
微控制器的ad轉換精度為12bit
2. 每個通道的轉換時間最小為3.4us
3. 內部具有可以使用的xdata空間最大為8192bytes(4096word)的空間。
STC8H8K64U學習(自用)
智慧型車競賽用到的是stc8h8k64u的晶元,編好的庫用的買晶元附帶的歷程,逐飛科技。記錄一下學習過程中遇到的問題及對應解決方案。我的理解是stc8h是個核心板,然後將它裝在基板上,這裡用的是lqfp64封裝,由此產生了封裝圖 管腳圖 可以從圖中看到每個管腳的作用。我買的是64pin的,意思是有6...
實物2操作 stc8a8k按鍵使用
3 程式 先定義引腳。然後進行程式設計。注意去抖動。程式設計的時候,可以給每個按鍵設定乙個變數作為旗幟,當安下去的時候,旗幟 1進行翻轉,後面可以查詢到哪乙個按鍵按下去。4 例程。4個按鍵,實現不同的led閃爍模式。include sbit key0 p3 4 sbit key1 p3 5 sbit...
STC8A4K系列微控制器EEPROM程式設計
這段時間在弄stc8a系列微控制器做乙個設計,遇到一些問題,第一次寫部落格,把遇到的問題寫下來分享一下。遇到的問題就是eeprom不能正確的讀取到儲存的資料。資料存入eeprom後,讀取出來的資料不正確。我看了微控制器文件但是並沒有提到這個點。下面就詳細的講一下這個點,希望有問題的小夥伴遇到問題可以...