上位機和89S51通訊時,數據傳遞范圍受到限制.
我用上位機通過232串口向51傳遞數據,51接受到數據后,通過8只LED 顯示接受到的值.如上位機發出01(16進制,以下皆是)),LED 狀態為0000 0001(0表示滅,1表示亮),發出0F時,LED狀態為0000 1111.這些都是正常的,可是當上位機發送10時,LED就顯示0011 0000了(應該是0001 0000的呀),當發送30時,就顯示0111 0000(應該顯示0011 0000的呀).請高手指教,這是哪里出了問題?我后來懷疑是我的上位機程序出了問題,于是我就下載了一個串口調試精靈,但是用這個串口調試精靈向51發送數據時,還是遇到相同的問題.那就是發送的值小于0F時,LED可以正常顯示,大于這個值后, LED總會多顯示高一位.如應該是0001 0000,但LED顯示實際是0011 0000.實在不知道是怎么回事了,單片機里與此相關的語句就用了一句MOV A,SBUF,怎么會有這種問題的呢???清高手賜教.
全部回復(0)
正序查看
倒序查看
現在還沒有回復呢,說說你的想法