SUBF的两次使用

it2022-05-09  15

题目

以2400bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。

分析

题目不难,只需要提醒一点就是关于两面加序号,就是,多次使用SUBF,只要使用就可以吧值赋给SUBF,然后TI清0,每次使用SUBF,就需要清一次,其他就没了,

代码

 1 # include <reg52.h>  2 # define uchar unsigned  char  3 # define  uint unsigned  int  4 uchar flag,i;  5 uchar a;  6  void inti();  7  void main()  8 {  9     i =  0; 10     inti(); 11      while( 1) 12     { 13          if(flag ==  1) 14         { 15             flag =  0; 16             ES =  0; 17             i++; 18              if(i ==  255) 19              i =  0; 20             SBUF = i; 21              while(!TI); 22             TI =  0; 23             SBUF = a; // 只有一个字节一个数,因为自己的数据类型 24               while(!TI); 25             TI =  0; 26             ES =  1; 27         } 28     } 29 } 30  void inti() 31 { 32     TMOD =  0x20; 33     TH1 =  0xf4; 34     TL1 =  0xf4; 35     SM0 =  0; 36     SM1 =  1; 37     REN =  1; 38     EA =  1; 39     ES =  1; 40     TR1 =  1; 41 } 42  void se() interrupt  4 43 { 44     RI =  0; 45     flag =  1; 46     a = SBUF;

47 } 

转载于:https://www.cnblogs.com/yelcoved/p/3234145.html

相关资源:数据结构—成绩单生成器

最新回复(0)