?? 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 + -