当然,单片机发送完一帧数据,TI也会置1,同样会产生中断!一般我们在发送数据时要关中断,因为一般你不用拿早在发送时不用处理数据;接收数据时要开中断,以便你在中断服务程序中将接收到的数据进行存储并处理。补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在数据缓冲器SBUF中,如果你之前有允许串行口中断,RI就会置1,向单片机CPU申请中断,并进入中断服务程序,即你问题中的serial()函数,做完这个函数后就会自动返回断点。
如果你没有允许中断,便不会产生串行中断。
其实,你的问题有个错误:别的中断都是某个I/O口电平变化产生。
这只是外部中断产生条件,不过,你之前也需要用软件斗帆允许外部中断。
另外,常见的51系列单片机有5个中断源三种中断5:
1、外部中断0和1;
2、定时器/计数器溢出中断0和1;
3、串行口中断。
另外,STC51系列还有定时器/计数器T2中断,A/D转换中断,PWM中断,串行中断2等等。你还有什么不懂的可以自己多翻一翻书,学到后面去了你就明白了。
你的问题中那个serial()函数中P1=SBUF是把接收的数据送到并行P1口,然后那条RI=0是不可少的,这是用软件清零RI,准备再次接受一帧数据产生中断,如果你没有这条语句,就会进入死循环,出不来了空敏雹。有什么问题还可以Q我(1445090023),希望能给我评个最佳答案。
液晶是兄镇雀有响应时间的,性能越差的,响应时间就越大。因为旅伍液晶是靠液体的流动成像羡早的,开机一般在10到12秒之间能开起来的就是正常 的。液晶的响应时间有25ms 16ms....现在一般是5ms...欢迎分享,转载请注明来源:内存溢出
评论列表(0条)