毕业设计,《远程控制系统》51单片机串口接收字符串
发布网友
发布时间:2023-07-14 23:00
我来回答
共3个回答
热心网友
时间:2024-08-21 17:44
我以前做的 串口控制ad转换器 因为硬件和你不一样 只供你参考 有问题可以我们讨论
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
sbit an=P2^6;
sbit wei=P2^7;
sbit adwr=P3^6;
sbit adrd=P3^7;
unsigned char y;
void chu()
{
wei=1;
P0=0x7f;
wei=0;
TMOD=0X21;
TH1=0XFD;
TL1=0XFD;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
TR0=1;
ET0=1;
}
void chuan() interrupt 4
{ unsigned char x;
RI=0;
x=SBUF;
TI=1;
ES=0;
switch(x)
{
case('k'):puts("turn on the ad!\n");
TR0=1;
break;
case('g'):puts("turn off the ad!\n");
TR0=0;
break;
default:puts("error!\n");
}
while(!TI);
TI=0;
ES=1;
}
void ad() interrupt 1
{ unsigned char A;
y++;
if(y==5)
{ y=0;
adwr=1;
_nop_();
adwr=0;
_nop_();
adwr=1;
adrd=1;
_nop_();
adrd=0;
_nop_();
A=P1;
adwr=1;
ES=0;
TI=1;
printf("dianya:%fV\n",(float)A/256.0*5.0);
while(!TI);
TI=0;
ES=1;
}
}
void main()
{
chu();
while(1);
}
热心网友
时间:2024-08-21 17:44
很简单的 你的要求没说清楚 单片机串口接收是从电脑上接收还是从另一单片机上接收?
热心网友
时间:2024-08-21 17:45
串口中断
void Com_Int(void) interrupt 4
{
EA = 0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
RI = 0;
temp = SBUF; //这里发送过来的数据是ASCII码。、
// SBUF=temp;
}
EA = 1;
}
判断temp数值即可,我前两天刚做