熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時間: 2017-11-8 09:21
正文摘要:我按照老師給的程序運(yùn)行了下,如下。 #include <reg52.h> void ConfigUART(unsigned int baud); void main() { EA = 1; //使能總中斷 ConfigUART(9600); / ... |
問題已解決了,感謝長帆888,我重建了一個新的仿真用的12M來測試發(fā)現(xiàn)沒問題,然后檢查原來的仿真設(shè)計(jì),發(fā)現(xiàn)我的串口設(shè)置跟晶振時鐘設(shè)置沒有問題,主要是單片機(jī)內(nèi)部還有一個時鐘忘記設(shè)置了,所以出現(xiàn)了這個問題,謝謝長帆888。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎勵! |
HC6800-ES-V2.0 發(fā)表于 2017-11-8 11:34 晶振沒有錯誤,仿真設(shè)置里面我設(shè)置的是11.0592MHZ,只是沒有改外面的的標(biāo)號。 |
看了你的電路圖,可能問題出在你的晶振上。 你程序用的時鐘11.0592MHz,但電路圖中用的是12M,而12M晶振情況下,要誤差小,最大波特率為4800加倍。你設(shè)置的9600,誤差6.99%。一般都不可能接收到正確的信息了。 另外,你的STC-ISP程序太老了吧,下載一個新的。新版的可以看到波特率設(shè)置的誤差。 ![]() |
參與人數(shù) 1 | 黑幣 +50 | 收起 理由 |
---|---|---|
![]() | + 50 | 回帖助人的獎勵! |
Powered by 單片機(jī)教程網(wǎng)