如何通过单片机将串口的数据转发?跪求中...
我自己的一个PC控制单片机的程序给你看看吧。pc发送一个数据给单片机,单片机在上传数据给PC。对你或许有帮助。
/*-------------------------------------------------------------------------
AD0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ时,其转换速度为128us
飞翔的雄鹰-----2010.11.27
电路连接为直通型,a,b,c直接接地,选择模拟输入0通道
更改情况:增加了与PC的串行通讯
将P3.0和P3.1让出换为P3.6和P3.7 2010.11.29
---------------------------------------------------------------------------*/
#include
unsigned char t,m,s,x,ior,cn; //电子表的各个位信号 x显示字位置控制
unsigned int foat,i; // 6位有效数字eg:4.56845
unsigned char ior;
unsigned char a[5]={0,0,0,0,0}; //注意5个数数组内是5而不是4
sbit start=P3^4; //启动AD
sbit OE=P3^7; //启动输出数据
sbit EOC=P3^3; //转换结束
sbit CLK=P3^6; //AD始终模拟
bit Recdat;
code unsigned char ledcod[]={0x7e,0x12,0xbc,0xb6,0xd2,0xE6,0xee,0x32,0xfe,0xf6};
code unsigned char ledcod1[]={0x7f,0x13,0xbd,0xb7,0xd3,0xE7,0xef,0x33,0xff,0xf7};//带小数点的字形码
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |=0x02;
TH0=0xd1;
TL0=0xd1; //定时0.05ms
EA=1;
ET0=1;
TR0=1;
}
/*------------------------------------------------
串口初始化子程序
------------------------------------------------*/
void InitCom(void) //初始化串口
{
SCON|=0x50; //0101 0000B,工作方式1,8位UART,波特率可变,允许接收
TMOD|=0x20; //T1工作于方式2自动重装
TCON|=0x40; //定时器1开始计数TR1=1
TH1=250; //T1计数初值 波特率为4800
TL1=250;
RI=0;TI=0; //清发送接收标志
ES=1; // 开串口
}
/*--------------------------------------------------
显示子程序
---------------------------------------------------*/
void display(unsigned char num)
{
switch(num)
{
case 0:
{
ior=foat/10000; //3
a[0]=ior;
P1=ledcod1[ior];
P0=0x7e;
x++;
}
break;
case 1:
{
ior=(foat-10000*a[0])/1000;
P1=ledcod[ior];
a[1]=ior; //5
P0=0xfd;
x++;
}
break;
case 2:
{
ior=(foat-10000*a[0]-1000*a[1])/100;
P1=ledcod[ior];
a[2]=ior; //3
P0=0xfb;
x++;
}
break;
case 3:
{
ior=(foat-10000*a[0]-1000*a[1]-100*a[2])/10;
P1=ledcod[ior];
a[3]=ior; //1
P0=0xf7;
x++;
}
break;
case 4:
{
ior=foat-10000*a[0]-1000*a[1]-100*a[2]-10*a[3]; //6
P1=ledcod[ior];
a[4]=ior;
P0=0xef;
x++;
}
break;
case 5:
{
ior=foat-10000*a[0]-1000*a[1]-100*a[2]-10*a[3]; //6
P1=ledcod[ior];
P0=0xdf;
x++;
}
break;
default:
break;
}
}
/*------------------------------------------------
串口发送
------------------------------------------------- */
void ComOut(void) //向串口发送数据
{ unsigned char i;
for(i=0;i
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!