#include<reg52.h> //包含单片机寄存器的头文件
/******************************************************
函数功能:结合搜一个字节数据
*****************************************************/
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0); //只要接受中毒那标志位RI没有被置"1"
RI=0; //等待,直至接受完毕(RI=1)
dat=SBUF; //将接受缓冲器中的数据存于dat
return dat;
}
unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567
unsigned char code seg[]= { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ; //分别对应相应的数码管点亮,即位码
unsigned char flag_get,count,num,minute,second;
void delay(unsigned int cnt) //延时函数
{
while(--cnt);
}
/*******************************************************
函数功能:主函数
*******************************************************/
void main(void)
{
TMOD=0X20; //定时器 T1 工作于方式2
SCON=0X50; //SCON=0101 0000B,串口工作方式1,允许接受(REN=1)
PCON=0X00; //PCON=0000 0000B,波特率9600
TH1=0xfd; //根据规定给定时器T1 赋初值
TL1=0xfd; //根据规定给定时器T1 赋初值
TR1=1; //启动定时器T1
REN=1; //允许接受
while(1)
{
P0=Receive();
}
}
这是原程序, 程序没有问题。 就是想问的是 最后 P0=Receive();
这里只能加这一句,加个别的 或者加 delay 函数 都无用, 是不是通信 需要加中断函数啊
还是 我的函数太简单了 可是在网上搜了很多 都运行不出来 这个 起码 能传一个 字符
请各位大虾指教, 在下 不甚感激 在下的通信这方面 知识匮乏, 希望大家不要一句一带而过 能不能 指出的详细一些 或者 说个资料 小弟 自己去查 谢谢!!! |