单片机解码接收

2019-04-15 17:37发布

该文件为个人项目文件,仅以此作为备忘! #include #define CODENUM 10 //接收的码长度 #define INTERVAL 25000 //码之间的判决时间长度 #define MAX 65535 sbit port=P1^0; //输入端口 sbit out=P1^3; //控制输出端口 sbit run=P1^2; //测试信号显示端口 unsigned char receivecode[CODENUM]; //数据接收存储数组 unsigned int lowtime; //低电平时间 void init(); //初始化函数 unsigned char JudStart(); //判断开始三脉冲函数 unsigned char Receive(); //接收函数 unsigned char ReadHighTime(); //读取高电平时间函数 void ReadLowtime(); //读取低电平时间函数 unsigned char WaitHighTimeGo(); //等待高电平过去函数 void Send(unsigned char receivecode[]); //串口发送函数 void Check(); //验证身份是否通过,控制门锁的开 void main() { unsigned char i,flag; init(); while(1) { start: while(!port); while(ReadHighTime()==0) //判断接下来的高电平是否有效 { while(JudStart()==3) //三脉冲为真时开始接收数据 { label2: run=0; receivecode[CODENUM]=0; for(i=0;i