该文件为个人项目文件,仅以此作为备忘!
#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