📄 senddata.c
字号:
#include "senddata.h"
void senddata(unsigned char keyvalue)
{
unsigned char result = 1, checkcount = 0, sum = 0;
bit flag_check=1;
//delay(5000000);
for(checkcount = 0; checkcount < 8; checkcount++)
{
if((keyvalue & result)!=0)
{
flag_check=!flag_check;
}
result = result << 1;
}
keyclk=1;keyclk1=1;
/*
if(!keyclk)
{
return;
}
*/
//(1)检测时钟线电平,如果时钟线为低,则延时50μs;
step1:
while(!keyclk) //1) Wait for Clock = high.
{
}
//step2:
delay_50us(); //2) Delay 50 microseconds.
keyclk=1;keyclk1=1;
keydata=1;keydata1=1;
//step3:
if(keyclk==1) //3) Clock still = high? No--goto step 1
{
delay_20us();
}
else
{
goto step1;
}
if(keyclk==1&&keydata==1)
{
delay_20us(); // Delay 20 microseconds
keydata=0;keydata1=0; //1) Set/Reset Data
delay_20us(); //2) Delay 20 microseconds
keyclk=0;keyclk1=0; //3) Bring Clock low
delay_40us(); //4) Delay 40 microseconds
keyclk=1;keyclk1=1;
delay_20us();
result=1;
for(checkcount=0;checkcount<8;checkcount++)
{
if((keyvalue&result)!=0)
{
keydata=1;keydata1=1;
}
else
{
keydata=0;keydata1=0;
}
delay_20us();
keyclk=0;keyclk1=0;
delay_40us();
result=result<<1;
keyclk=1;keyclk1=1;
delay_20us();
}
// keyclk=1;keyclk1=1;
// delay(4);
//parity bit
keydata=flag_check;
keydata1=flag_check;
delay_20us();
keyclk=0;keyclk1=0;
delay_40us();
keyclk=1;keyclk1=1;
delay_20us();
//stop bit
keydata=1;keydata1=1;
delay_20us();
keyclk=0;keyclk1=0;
delay_40us();
keyclk=1;keyclk1=1;
delay_20us();
keyclk=1;keyclk1=1;
keydata=1;keydata1=1;
delay_20us();
}
// return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -