串口通信示例程序:该程序是用查询法控制串口,显示的结果为,通过串口发送一个数据,对应的发光二极管点亮
如发送数据 0xfe,第一个二极管亮
查询法#includevoid main(){ REN=1;//串口允许接收 TMOD=0x20;//设置定时器 1 为工作方式 2 TH1=0xfd;//给 T1 赋初值 TL1=0xfd; TR1=1;//TCON 中的 TR1 位置 1 SM0=0;//设置 SCON 寄存器,设为方式 1 SM1=1; while(1) { if(RI==1) //查询法,看是否收到数据了 { RI=0;//一旦收到数据了,清零 RI 必须软件清零 //P1=0x00; P1=SBUF;//从串口读入数据 } }}中断法通过中断方式控制串口#includevoid main(){ REN=1;//串口允许接收 TMOD=0x20;//设置定时器 1 为工作方式 2 TH1=0xfd;//给 T1 赋初值 TL1=0xfd; TR1=1;//TCON 中的 TR1 位置 1 SM0=0;//设置 SCON 寄存器,设为方式 1 SM1=1; EA=1;//开总中断ES=1;//开串口中断while(1){}}//加上中断函数变为中断方式void ser() interrupt 4{ RI=0;//一旦收到数据了,清零 RI 必须软件清零 P1=SBUF;//从串口读入数据}修改程序,让串口发给单片机数据,然后让单片机再发回来:#includeunsigned char a,flag;void main(){ REN=1;//串口允许接收 TMOD=0x20;//设置定时器 1 为工作方式 2 TH1=0xfd;//给 T1 赋初值 TL1=0xfd; TR1=1;//TCON 中的 TR1 位置 1 SM0=0;//设置 SCON 寄存器,设为方式