W77E58串列埠2問題

2021-08-22 12:30:30 字數 642 閱讀 3664

昨天調程式發現w77e58的串列埠2波特率9600bps,8位資料,1位停止,1位起始,晶體為22.1184m,t1作為波特率發生器,居然經常會出現資料錯誤。

開始懷疑程式,但在keil中**沒有任何問題;

後來懷疑max232可能有問題,換了一片,結果完全相同;

又懷疑max232電容有點兒,因為手冊上是1u,而我一直用0.1u的一直沒出過問題,還是併聯了又併聯了乙個0.1u的電容,沒有任何變化 ,但我量了一下輸出,-8v,接上電腦之後為-6.8v,應該沒有問題,-3v就應該不出錯了;

又懷疑晶振不准,這種可能性太小了,但還是試著換了乙個,沒有任何變化;

後又仔細分析資料,發現接收到的資料規律性不太強,但還是有一定規律的,即收發一定時間後就會出錯。出錯的多少也不一樣或一位元組,或2位元組,多則四五個位元組。懷疑可能是由於波特率發生器不准造成的誤差,於是將波特率降至4800bps,果然沒有任何問題。可以確定是波特率發生器不准。

77e58的定時器時鐘可以選擇晶振的1/4,也可以選擇晶振的1/12,於是便想提高波特率發生器的時鐘來提高精度,把ckcon的t1m位置1,然後相應修改th1的值,重新執行程式,ok!

但造成該問題的原因還是不解,為什麼為產生這麼大的誤差,是哪兒的配置有問題?換了晶元結果一樣。以前就是這樣用的,沒有任何問題,原困還需要進一步研究!

W77E58晶元介紹

w77e58與標準8051相相容的全新核心的微處理器。由於去掉了多餘的儲存器週期和運算週期,它在相同週期裡執行8051的指令比最初的8051快得多。典型的指令週期77e58比8051快1.5到3倍。電源消耗也做了改進採用靜態coms設計。可以工作於較低的時鐘頻率下。32k的eeprom程式段和1k的...

w12選做 E做作業

馬上假期就要結束了,zjm還有 n 個作業,完成某個作業需要一定的時間,而且每個作業有乙個截止時間,若超過截止時間,一天就要扣一分。zjm想知道如何安排做作業,使得扣的分數最少。tips 如果開始做某個作業,就必須把這個作業做完了,才能做下乙個作業。輸入格式 有多組測試資料。第一行乙個整數表示測試資...

CS8673E數字音訊功放2 40W立體聲

cs8673e數字音訊功放2乘以40w立體聲,單聲道1乘以80w cs8673e 智浦欣cs8673e音訊功放2 40w立體聲,固定24倍增益,免濾波。產品涵蓋了class ab audio class d audio,power reset,電源管理,wled driver等。作為無晶圓廠的晶元設...