|
小弟最近在做竞赛用到了HT66F50,论坛有没有大侠会用合泰单片机的,这个单片机没有串口,小弟自己做了一个模拟串口程序,发送正常,接收始终是乱码。请各位大侠指点一下。小弟在些谢过了。
#include "HT66F50.h"
#define uint unsigned int
#define uchar unsigned char
void Rxd_byte(uchar *);
void TXD_byte(uchar );
void main()
{ TXD_byte(0x55);
TXD_byte(0xaa);
TXD_byte(0xff);
while(1)
{
Rxd_byte(&data);
TXD_byte(data);
}
}
void Rxd_byte(uchar *val)
{
uchar i = 0,v;
_t0on=1;
_t0af=0;
v = 0;
while(!_t0af);
while(i<8)
{
v>>=1;
if(RXD)
v|= 0x80;
i++;
_t0af=0;
while(!_t0af);
}
_t0af=0;
while(!_t0af)
{
if(RXD) break;
}
_t0on=0;
*val =v;
}
void TXD_byte(uchar val)
{ uchar j = 8;
_t0af=0;
TXD=0;//发送起始位0
_t0on = 1;//打开定时器
while(!_t0af);//等待中断
while(j--)
{
if(val&0x01)//发送低位
TXD=1;//是1出1
else
TXD=0;//是0出0
_t0af=0;
while(!_t0af);
val = val>>=1;
}
TXD=1;//发送结束位1
_t0af=0;
while(!_t0af);
_t0on=0;//关定时器
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|