📄 pt2240.c
字号:
//上是用C语言写的编解码程序,请指正:
//
#include "pic.h"
__CONFIG(INTIO&WDTDIS&PWRTDIS&MCLRDIS&BOREN&PROTECT&CPD);
//__CONFIG(INTIO&WDTDIS&PWRTDIS&MCLRDIS&BOREN&UNPROTECT);
#define S0 GPIO0
#define S1 GPIO1
#define S2 GPIO2
#define S3 GPIO3
#define PWM GPIO4
#define LED GPIO5
__EEPROM_DATA(0x0a,0xaa,0xc0,0xff,0xff,0xff,0xff,0xff);
char Buffer[3];
char TXdata[3];
void Load_SN(void)
{
Buffer[0]=eeprom_read(0x00);
Buffer[1]=eeprom_read(0x01);
Buffer[2]=eeprom_read(0x02);
}
char sendata;
void Send(void)
{
char a,b;
PWM=1;
TMR0=0;
a=0;
LED=0;
while(a<3)
{
sendata=TXdata[a];
for(b=8;b>0;b--)
{
if(sendata&0x80)
{
PWM=1;
while(TMR0<132);
PWM=0;
TMR0=0;
while(TMR0<44);
TMR0=0;
}
else
{
PWM=1;
while(TMR0<44);
PWM=0;
TMR0=0;
while(TMR0<132);
TMR0=0;
}
sendata<<=1;
}
a++;
}
TMR0=0;
PWM=1;
while(TMR0<43);
PWM=0;
LED=1;
TMR1H=0;
TMR1L=0;
while(TMR1H<0x2b);
while(TMR1L<0x90);
}
char key_Buffer;
void check_key(void)
{
key_Buffer=0;
key_Buffer=GPIO;
if((key_Buffer&0x0f)!=0x00)
{
TXdata[0]=Buffer[0];
TXdata[1]=Buffer[1];
TXdata[2]=Buffer[2];
TXdata[2]=key_Buffer&0x0f;
Send();
GPIF=0;
}
}
main()
{
char c;
CMCON=0X07;
TRISIO=0b00001111;
GPIO=0b00100000;
OPTION=0b11000010; //8分频
T1CON=0b00000101;
IOCB=0x0f;
TMR1IE=0;
INTCON=0b11001000;
WPU=0x00;
key_Buffer=0;
Load_SN();
GPIO0=GPIO0;
GPIO1=GPIO1;
GPIO2=GPIO2;
GPIO3=GPIO3;
while(1)
{
check_key();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -