![]() |
發布時間: 2017-11-6 16:04
正文摘要:#include<reg52.h> #define uchar unsigned char #define uint unsigned int #define zxmaddr P0 #define  ... |
wulin 發表于 2017-11-7 08:47 謝謝 ![]() |
zl2168 發表于 2017-11-6 21:14 謝謝 ![]() |
wulin 發表于 2017-11-7 08:47 謝謝 ![]() |
zl2168 發表于 2017-11-6 21:14 謝謝 ![]() |
程序毛病不是語法問題,是語句次序問題。flag=0;要放在ES=0;與ES=1;之間,否在會丟幀。因為中斷一旦打開,很可能不是執行flag=0;,而是先響應中斷,再返回執行flag=0;,這樣就丟了一幀。改后如下: void main() { init(); while(1) { disp(); if(flag==1) { ES=0; send_char(a); flag=0; ES=1; } } } |
本帖最后由 zl2168 于 2017-11-6 21:15 編輯 介紹你一個虛擬仿真案例 單片機與PC機虛擬串行通信 ![]() ![]() 先Proteus仿真一下,確認有效。以上摘自張志良編著《80C51單片機實用教程》ISBN 978-7-04-044532-9,高教社出版。 書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。 |