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机虚拟串行通信
实验16 与PC机虚拟串行通信.rar
(151.41 KB, 下载次数: 14)
先Proteus仿真一下,确认有效。以上摘自张志良编著《80C51单片机实用教程》ISBN 978-7-04-044532-9,高教社出版。 书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。 |