欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

模拟串口函数,发一般,收只能收到一半

更新时间: 2014-01-05 03:14:13 责任编辑: Author_N1

 

模拟串口函数,发正常,收只能收到一半
#include <reg52.h>  
#define uchar unsigned char  
  
sbit P1_0 = 0x90;  
sbit P1_1 = 0x91;  
sbit P1_2 = 0x92;  
sbit A1 = P2^0; 
#define RXD P1_0  
#define TXD P1_1  
#define WRDYN 44                    //写延时  
#define RDDYN 43                    //读延时  
  
void Delay2cp(unsigned char i);  
void WaitTF0( void );  
void SPI2int();
void WByte(uchar);
void RByte(uchar);
void SendStr(unsigned char *s)
#define TM0_FLAG P1_2               //设传输标志位  
  
//计数器及中断初始化  
void SPI2int(void)  
{  
    TMOD |=0x02;                    //计数器0,方式2  
    TH0=0xA0;                       //预值为256-96=140,十六进制A0  
    TL0=TH0;          
    TR0=0;                          //在发送或接收才开始使用  
    TF0=0;   
    ET0=1;                          //允许定时器0中断  
    EA=1;                           //中断允许总开关  
}  
  
//发送一个字符  
void WByte(uchar input)  
{  
     //发送启始位  
     uchar i=8;  
     TR0=1;  
     TXD=(bit)0;  
     WaitTF0();  
  
     //发送8位数据位  
     while(i--)  
     {  
         TXD=(bit)(input&0x01);   //先传低位  
         WaitTF0();  
         input=input>>1;  
     }  
  
     //发送校验位(无)  
  
     //发送结束位  
     TXD=(bit)1;  
     WaitTF0();  
     TR0=0;  
}  
  
//接收一个字符  
uchar RByte()  
{  
    uchar Output=0;  
    uchar i=8;  
    TR0=1;                          //启动Timer0  
    TL0=TH0;  
    WaitTF0();                      //等过起始位  
  
    //发送8位数据位  
    while(i--)  
    {  
        Output >>=1;  
        if(RXD)  
            Output   |=0x80;        //先收低位  
        WaitTF0();                  //位间延时  
    }  
    while(!TM0_FLAG) if(RXD) break;  
  
    TR0=0;                          //停止Timer0  
  
    return Output;  
}  
  
//中断1处理程序  
void IntTimer0() interrupt 1  
{  
     TM0_FLAG=1;                    //设置标志位。  
}  
  
//查询传输标志位  
void WaitTF0( void )  
{  
    while(!TM0_FLAG);   
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:13
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19877/
本文WWW.DOC100.NET DOC100.NET版权所有。