串口通信 怎么做模拟

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:05:45
我毕业设计做的是的很简单的的VB的串口通信程序的编程,现在需要拿个成果出来,又不能拿工业仪表过去演示,想找个计算机的模拟,不知道有没有..

主要是通过消耗指令来获得波特率的匹配。注意_delay(T)的计算,
其公式是:1/波特率=1/晶振频率×4×(X+T),X是指以下程序中断点a至断点b的指令周期数,当然不包括_delay(195),T指的是额外的指令消耗,即_delay()中的195。
#include<ht46ru232.h>
#define tx _pc0
#define rx _pc1
unsigned char data[20];
unsigned char receive_data;
unsigned char send_data;
unsigned char receive()
{
unsigned char i;
unsigned char j=10;
while(rx); //断点a
for(i=0;i<8;i++)
{ _delay(195);
if(rx) receive_data=receive_data|0x80;
receive_data>>=1;//断点b
}
_delay(195);
_delay(195);
return receive_data;
}
void transmit()
{ unsigned char send_bit;
unsigned char i;
tx=0;
for(i=0;i<8;i++)
{ send_bit=send_data&0x01;
send_data>>=1;
_delay(192);
if(send_bit)
{ _delay(1);
tx=1;
}
else
{ tx=0;