为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

我本想发一个字节.doc

2017-11-17 2页 doc 12KB 5阅读

用户头像

is_435706

暂无简介

举报
我本想发一个字节.doc我本想发一个字节.doc 我本想发一个字节..接一个字节.. #include uchar a; uint flag; void main(void) { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; SCON=0x50; EA=1; ES=1; while(1) { if(flag==1) { EA=0; SBUF=a; while(!TI) TI=0; flag=0; EA=1; } } } ////////////////////////////...
我本想发一个字节.doc
我本想发一个字节.doc 我本想发一个字节..接一个字节.. #include uchar a; uint flag; void main(void) { TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; SCON=0x50; EA=1; ES=1; while(1) { if(flag==1) { EA=0; SBUF=a; while(!TI) TI=0; flag=0; EA=1; } } } //////////////////////////// void serialint() interrupt 4 { a=SBUF; P1=a; RI=0; flag=1; } 问补充: #define uint unsigned int #define uchar unsigned char 这两条语句漏了..补上..嘿嘿.. 两个错误。while(!TI) TI=0; 这是一个。while(!TI) 后面少一个分号~~变成了,原本正确的程序是想让TI==1的时候,把TI清零,但是你现在变成了 当TI为0的时候执行TI=0,而当TI变成1的时候却反而不执行TI=0了,因此每次发送完成一个字符以后,TI的值没有清零,这样TI始终为1。 第二个错误是您的串口中断里面没有判断是接收中断还是发送中断,单片机的串口中断是TI,或者RI中任何一个为1,都会进入中断的,因此你这个错误恰好跟前面的错误首位呼应,造成了flag不断为1,也就造成了 不断发送数据,不断进入中断这个死循环。。哈哈,错得这么巧妙我也觉得很不可思议。。
/
本文档为【我本想发一个字节.doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索