久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
關(guān)于STC8H1K08單片機時鐘問題
[打印本頁]
作者:
阿飛7812
時間:
2025-5-20 09:28
標(biāo)題:
關(guān)于STC8H1K08單片機時鐘問題
想用STC8H1K08單片機做一個315的解碼和控制,在壇里找了一個帶學(xué)習(xí)功能,用普通51測試沒問題,想改用STC8H1K08單片機做,發(fā)現(xiàn)解不了碼,查后發(fā)現(xiàn)時鐘不一樣,普通51是12個時鐘周期這個STC8H1K08是1個時鐘周期,壇朋們這個要怎么把STC8H1K08改有和51的一樣周期,望高手們指點一下
作者:
阿飛7812
時間:
2025-5-21 09:16
沒人用個STC的單片機嗎
作者:
newlined
時間:
2025-5-21 09:50
這個很簡單,看你用的哪個定時器,如果是T0、T1、或T2,在AUXR中設(shè)定是12個時鐘周期或1個時鐘周期,T3或者T4,在T4T3M中設(shè)定,具體看下這個單片機的手冊。
作者:
hjx5548
時間:
2025-5-21 11:58
把你的程序發(fā)上來
作者:
man1234567
時間:
2025-5-22 17:19
你在壇內(nèi)搜索的工程就那么保密么 ?
你當(dāng)大家都有你說的代碼和硬件么 ?
不想發(fā)工程文件可以不問,畢竟這不是算命論壇玩猜猜猜
作者:
keemee
時間:
2025-5-23 03:31
STC的燒錄器可以修改周期,但我以前改了也沒用
作者:
桑桑呀
時間:
2025-5-23 09:15
STC8H1K08是1T單片機(1個時鐘周期執(zhí)行1條指令),而傳統(tǒng)51是12T(12個時鐘周期執(zhí)行1條指令)。這導(dǎo)致原有代碼中的時序邏輯(延時、定時器)在STC8H上運行速度快了12倍,無法正確解碼315MHz信號。 解決方案: 1. 修改定時器分頻系數(shù)(推薦) STC8H的定時器支持獨立分頻,無需降低主頻即可解決時序問題。假設(shè)原51使用12MHz晶振,定時器配置為12分頻,移植到STC8H時需調(diào)整如下: c // 定時器初始化示例(Timer0) void Timer0_Init(void) { AUXR |= 0x80; // 定時器0設(shè)置為1T模式 TMOD &= 0xF0; // 清除定時器0模式位 TMOD |= 0x01; // 定時器0設(shè)為模式1(16位自動重載) TL0 = 0x00; // 初始化計時值 TH0 = 0x00; ET0 = 1; // 使能定時器0中斷 TR0 = 1; // 啟動定時器0 // 關(guān)鍵設(shè)置:定時器時鐘分頻(假設(shè)原51為12分頻) T0H = (65536 - (FOSC / 12 / 1000)) >> 8; // 舉例:1ms中斷 T0L = (65536 - (FOSC / 12 / 1000)) & 0xFF; } 2. 調(diào)整系統(tǒng)時鐘分頻 若解碼邏輯依賴全局延時(如nop循環(huán)),可降低系統(tǒng)時鐘至原51的1/12: c // 在程序初始化時設(shè)置時鐘分頻 CLKDIV = 0x0B; // 系統(tǒng)時鐘12分頻(主頻=外部晶振/12) 3. 修改軟件延時函數(shù) 若代碼中有基于循環(huán)的軟件延時,需將延時倍數(shù)調(diào)整為12倍: c void Delay1ms() { unsigned int i, j; for (i=0; i<12; i++) { // 原循環(huán)次數(shù)乘以12 for (j=0; j<1000; j++); } } 4. 檢查外部中斷配置 315MHz解碼通常依賴外部中斷檢測信號邊沿。確保STC8H的IO口模式配置正確(建議設(shè)置為高阻輸入): c P1M1 |= 0x01; // P1.0設(shè)為高阻輸入 P1M0 &= ~0x01; IT0 = 1; // 設(shè)置INT0為下降沿觸發(fā) EX0 = 1; // 使能INT0中斷 EA = 1; // 全局中斷使能
作者:
桑桑呀
時間:
2025-5-23 09:16
STC8H1K08是1T單片機(1個時鐘周期執(zhí)行1條指令),而傳統(tǒng)51是12T(12個時鐘周期執(zhí)行1條指令)。這導(dǎo)致原有代碼中的時序邏輯(延時、定時器)在STC8H上運行速度快了12倍,無法正確解碼315MHz信號。
解決方案:
1. 修改定時器分頻系數(shù)(推薦)
STC8H的定時器支持獨立分頻,無需降低主頻即可解決時序問題。假設(shè)原51使用12MHz晶振,定時器配置為12分頻,移植到STC8H時需調(diào)整如下:
// 定時器初始化示例(Timer0)
void Timer0_Init(void) {
AUXR |= 0x80; // 定時器0設(shè)置為1T模式
TMOD &= 0xF0; // 清除定時器0模式位
TMOD |= 0x01; // 定時器0設(shè)為模式1(16位自動重載)
TL0 = 0x00; // 初始化計時值
TH0 = 0x00;
ET0 = 1; // 使能定時器0中斷
TR0 = 1; // 啟動定時器0
// 關(guān)鍵設(shè)置:定時器時鐘分頻(假設(shè)原51為12分頻)
T0H = (65536 - (FOSC / 12 / 1000)) >> 8; // 舉例:1ms中斷
T0L = (65536 - (FOSC / 12 / 1000)) & 0xFF;
}
2. 調(diào)整系統(tǒng)時鐘分頻
若解碼邏輯依賴全局延時(如nop循環(huán)),可降低系統(tǒng)時鐘至原51的1/12:
// 在程序初始化時設(shè)置時鐘分頻
CLKDIV = 0x0B; // 系統(tǒng)時鐘12分頻(主頻=外部晶振/12)
3. 修改軟件延時函數(shù)
若代碼中有基于循環(huán)的軟件延時,需將延時倍數(shù)調(diào)整為12倍:
void Delay1ms() {
unsigned int i, j;
for (i=0; i<12; i++) { // 原循環(huán)次數(shù)乘以12
for (j=0; j<1000; j++);
}
}
4. 檢查外部中斷配置
315MHz解碼通常依賴外部中斷檢測信號邊沿。確保STC8H的IO口模式配置正確(建議設(shè)置為高阻輸入):
P1M1 |= 0x01; // P1.0設(shè)為高阻輸入
P1M0 &= ~0x01;
IT0 = 1; // 設(shè)置INT0為下降沿觸發(fā)
EX0 = 1; // 使能INT0中斷
EA = 1; // 全局中斷使能
作者:
小郭郭a
時間:
2025-5-23 10:52
你這個問題挺關(guān)鍵的——主要是時鐘周期不同導(dǎo)致的解碼不兼容。STC8H1K08的內(nèi)部時鐘周期通常是按照1個系統(tǒng)時鐘的,而普通51(如8051)可能用的是12個時鐘周期一個指令周期。 關(guān)鍵點: 8051/51芯片: 一個指令周期一般是12個機器時鐘(晶振),即每個指令執(zhí)行時間為12個晶振周期。 STC8H1K08: 通常一個指令周期就是一個晶振頻率(1個晶振周期)。 解決方案: 調(diào)整你的晶振頻率: 讓STC8H1K08的晶振頻率與舊的51芯片相匹配(如果原本定義的時鐘周期是基于12個晶振周期的邏輯),這樣你在程序中計時時可以復(fù)用之前的算法。 軟件模擬延時: 如果你不能修改晶振,可以在程序里加入延時,用軟件延時等效于原先12個時鐘周期的時間。這在解碼等時序性很強的應(yīng)用中常用。 使用FOSC指令或配置: 在STC芯片的配置(如FOSC)里調(diào)節(jié)時鐘源,讓其以接近12個晶振周期的方式運行(比如調(diào)節(jié)晶振頻率),符合之前的邏輯。 程序適配: 如果解碼算法依賴于時間,你需要在代碼中調(diào)整計時器的預(yù)分頻,使它計得與舊51芯片的時鐘節(jié)奏一樣。 總結(jié): 最簡單的辦法就是調(diào)整晶振頻率讓用戶的代碼能在類似的時間尺度下工作。如果硬件限制,試試在程序中加上適當(dāng)?shù)难訒r或調(diào)整預(yù)分頻器。 你也可以提供更詳細(xì)的配置和代碼片段,我?guī)湍憔唧w看看該怎么調(diào)整!
作者:
coody_sz
時間:
2025-5-23 16:08
你解碼的方法是什么?你的解碼時序是什么?
沒有基本信息,我們不是神仙,猜不到的。
作者:
Y_G_G
時間:
2025-5-26 09:29
你說的這兩個單片機有兩點不同,一個是時鐘,另一個是端口的初始化,STC8H1K08默認(rèn)的端口模式與STC89系列是不一樣的
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩中文视频
|
91精品国产91久久久久久
|
欧美在线观看一区
|
精品亚洲一区二区三区四区五区
|
特级毛片爽www免费版
|
国产精品久久
|
一区二区精品在线
|
日韩av资源站
|
日韩精品一区二区三区
|
中文字幕久久精品
|
欧美日韩视频
|
久久成人18免费网站
|
粉嫩高清一区二区三区
|
九九热视频这里只有精品
|
成人网址在线观看
|
aaaa一级毛片
|
国产成人av免费看
|
丁香六月伊人
|
91香蕉视频在线观看
|
日韩精品在线网站
|
91福利网
|
国产成人精品一区二区三区
|
超碰导航
|
亚洲iv一区二区三区
|
亚洲性网
|
欧美一区二区三区大片
|
日韩欧美在线观看
|
99久久影院
|
av无遮挡
|
在线观看国产三级
|
久久成人亚洲
|
中文字幕视频在线观看
|
久久网亚洲
|
亚洲小视频在线观看
|
精品一区二区三区在线观看
|
羞羞的视频免费看
|
密室大逃脱第六季大神版在线观看
|
亚洲免费一区二区
|
亚洲成人av在线播放
|
精品国产一区二区在线
|
国产成人在线一区二区
|