我曾经写过的串口通信程序,仅当参考,要完全符合你要求的,实在是没有!!
//#include <STC12C5A60H>
#include <REGX52H>
#define uchar unsigned char
#define uint unsigned int
unsigned char flag,a,i,e;
uchar code tem[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table[]="阿斯顿 ";
unsigned char t[100];
void init()
{
TMOD=0x20; //设置计时器为1,TMOD为定时器工作方式寄存器
TH1=0xfd; //装初值-- T1为0XFD次溢出
TL1=0xfd; //装初值-- T1为0XFD次溢出
TR1=1; //定时器运行控制位
REN=1; //允许串口接收位
SM0=0; //设定串口工作方式为1
SM1=1;
EA=1; //中断总开关
ES=1; //串口中断开
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
init();
e=0;
while(1)
{
if(flag==1)
{
ES=0;
for(i=0;table[i]!='\0';i++)
{
SBUF=table[i]; //将table[i]里的值放到SBUF中
while(!TI); //TI=1发送完毕
TI=0; delayms(1); //发送数据
}
for(i=0;t[i]!=0;i++)
{SBUF=t[i];
while(!TI);
TI=0; delayms(1);
}
ES=1;
flag=0;
}
}
}
void ser()interrupt 4 //串口中断程序
{
RI=0; //表示接受数据 接受完成自动制1
t[e]=SBUF; //接受到的放到a内
if(t[e]=='/')
for(i=0;t[i]!=0;i++)
{t[i]='\0';e=0;}
else e++;
flag=1;
}
如下即可:
void ser() interrupt 4
{
RI = 0;
flag = ~flag; //每收到一次,就取反
if(flag) P1 = SBUF;
else P2 = SBUF;
}
但是,仅仅发送两个字节的数据,第一、第二字节,不好区分。
应该编写通信协议。
晶振110592 STC12系列1T单片机,示例代码:
#include <reg51h>
sfr AUXR = 0x8E;
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xDC;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
AUXR = AUXR|0x40; // T1, 1T Mode
InitUART();
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
//add your code here!
}
else
TI = 0;
}
其他部分你自己会善的啦。推荐个软件:单片机小精灵 v13 破解版,在新浪共享有得下载。
里面就有这些计算的。直接生成 可用。
希望我的回答对你有所帮助
一般来说,测试上下位机通信。
先使用工具测试你的下位机,完全通信成功后,在用来调试你的上位机。
不然你话,你都不知道错误在哪里。
加入下位机不是开发的,根本就无法证明是否是下位机的错误。
先使用串口精灵之类的调试你的开发板。
确认是 OK 了之后,在调试你的程序。
//如果你的程序功底足够深,就可以通过你的程序确定是上,还是下位机的问题了。
c#编写上位机,与单片机通讯,一般采用串口通讯:RS232,RS422,RS485。
通过VS NET中的串口通讯控件即可实现。
如果下位机是类似基于LINUX内核的ARM,可以采用网口,也可以采用串口。
以上就是关于求c语言单片机串口通信程序,是两块89c51之间通信。要求在问题补充里面,非常感谢!全部的内容,包括:求c语言单片机串口通信程序,是两块89c51之间通信。要求在问题补充里面,非常感谢!、51单片机 c程序有问 串口通信 16位分2个8位、求助,STC12系列单片机与上位机的串口通信程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)