C8051F020串口传递汉字
时间:10-02
整理:3721RD
点击:
如何实现计算机传汉字给单片机 单片机机作出回答! 我做了一个C代码,[img]file:///C:\Users\ldy\AppData\Roaming\Tencent\Users\694313495\QQ\WinTemp\RichOle\[@WYM(A_6}$8JPYB5(F[7)O.jpg[/img]计算机发出一句 单片机自动回一句
我用电脑发送“首长好。”单片机没反应 “同志们好。没有出来
这是我的c
#include "main.h"
uchar shuchu;
//uint i;
//temp;
//-- 主函数
unsigned char temp[]="首长好!首长辛苦了\r\n";
unsigned char temp1[]="同志们好!同志们辛苦了";
bit flag=0; //标志变量
void fasong(char shuchu);
void fasongshuchu(char *shuchu);
void bixu(char fanhui);
void bixufanhui(char *fanhui);
void main (void)
{
WDTCN=0xDE;
WDTCN=0xAD;
PORT_Init ();
SYSCLK_Init ();
EA=1;
// delay(uint z);
// fasong();
//dingshiqi_init();
UART0_Init();
fasongshuchu(temp);
bixufanhui(temp1);
while(1);
}
void fasong(char shuchu)
{
SBUF0=shuchu;
flag=1;
while(flag) ;
}
void fasongshuchu(char *shuchu)
{
while((*shuchu)!='\0') //\0就是组的结束字符标志
{
fasong(*shuchu);
shuchu++;
}
}
void bixu(char fanhui)
{
SBUF0=fanhui;
flag=1;
while(flag) ;
}
void bixufanhui(char *fanhui)
{
while((*fanhui)!='\0') //\0就是组的结束字符标志
{
bixu(*fanhui);
fanhui++;
}
}
//为解决外部参考
void zhongduan() interrupt 4 //中断函数
{
if(RI0) //如果收到数据
{
RI0=0;
shuchu=SBUF0;//接收数据
SBUF0=fanhui;//发送数据
}
else
{
TI0=0; //发送完一个数据
flag=0; //清标志位
}
}
我用电脑发送“首长好。”单片机没反应 “同志们好。没有出来
这是我的c
#include "main.h"
uchar shuchu;
//uint i;
//temp;
//-- 主函数
unsigned char temp[]="首长好!首长辛苦了\r\n";
unsigned char temp1[]="同志们好!同志们辛苦了";
bit flag=0; //标志变量
void fasong(char shuchu);
void fasongshuchu(char *shuchu);
void bixu(char fanhui);
void bixufanhui(char *fanhui);
void main (void)
{
WDTCN=0xDE;
WDTCN=0xAD;
PORT_Init ();
SYSCLK_Init ();
EA=1;
// delay(uint z);
// fasong();
//dingshiqi_init();
UART0_Init();
fasongshuchu(temp);
bixufanhui(temp1);
while(1);
}
void fasong(char shuchu)
{
SBUF0=shuchu;
flag=1;
while(flag) ;
}
void fasongshuchu(char *shuchu)
{
while((*shuchu)!='\0') //\0就是组的结束字符标志
{
fasong(*shuchu);
shuchu++;
}
}
void bixu(char fanhui)
{
SBUF0=fanhui;
flag=1;
while(flag) ;
}
void bixufanhui(char *fanhui)
{
while((*fanhui)!='\0') //\0就是组的结束字符标志
{
bixu(*fanhui);
fanhui++;
}
}
//为解决外部参考
void zhongduan() interrupt 4 //中断函数
{
if(RI0) //如果收到数据
{
RI0=0;
shuchu=SBUF0;//接收数据
SBUF0=fanhui;//发送数据
}
else
{
TI0=0; //发送完一个数据
flag=0; //清标志位
}
}
我学习下,看看怎么样
程序是错的。语法也有问题,框架没搞对