当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

单片机怎么用C语言处理接收的数据

更新:01-07 整理:39baobao.com
字体:

根据你的要求这两个程序很简单,甲机作为发送端,用一个按键作为启动(低电平有效),按一下发送4个字节数据。乙机作为接收端,P0到P3低电平点亮灯。两机的晶振选择11.0952MHz。

甲机程序:

#include #define uchar unsigned char #define uint unsigned int sbit key=P1^0; //定义IO口作为启动按键,低电平有效 void delay(uint x) //延时X毫秒 { uint y,z; for(z=x;z>0;z--) for(y=110;y>0;y--); } void serial_init()//串口初始化 { TMOD=0x20;//设置定时器1为工作方式2 TH1=0xfd; //波特率9600 TL1=0xfd; TR1=1; //启动定时器1 PCON&=0x7f; //SMOD=0 SCON=0x40; //设置串口为工作方式1 } void serial_send() //串口发送函数 { uchar i; for(i=4;i>0;i--)//发送4个字节数据 { SBUF=0; while(!TI); //等待发送完毕 TI=0; //串口发送完毕标志位清0 delay(1);//延时1毫秒 } } void main() { serial_init(); while(1) { if(!key) //监测启动按键是否被按下 { delay(10); //延时去抖 if(!key) { while(!key)//松手监测 serial_send(); } } } }

乙机程序:

#include #define uchar unsigned char uchar flag,buf; void serial_init()//串口初始化 { TMOD=0x20;//设置定时器1为工作方式2 TH1=0xfd; //波特率9600 TL1=0xfd; TR1=1; //启动定时器1 PCON&=0x7f; //SMOD=0 SCON=0x50; //设置串口为工作方式1,REN=1 flag=0; EA=1; //开总中断 ES=1; //开串口中断 } void main() { serial_init(); while(1) { switch(flag) { case 1: P0=buf;break; case 2: P1=buf;break; case 3: P2=buf;break; case 4: P3=buf;break; default: flag=0; } } } void serial() interrupt 4 using 2 { RI=0; buf=SBUF; flag++; }

本文地址:https://www.39baobao.com/show/29_26230.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.