部分代碼:
#include <stc12c5a60s2.h>
#include <intrins.h>
#define LongToBin(n) (((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)&0x08)|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))
#define BIN(n) LongToBin(0x##n##)
#define uchar unsigned char
#define uint unsigned int
sbit H =P0^4;
sbit L1=P3^4;
sbit L2=P3^5;
sbit L3=P3^6;
sbit L4=P3^7;
sbit hwx=P3^3; //紅外接收數(shù)據(jù)引腳,
uchar buf[8];
int temp[20];
int ztemp;
unsigned char ly_lhj[4]; //保存NEC的四個字節(jié)數(shù)據(jù)
bit ly_flag=1; //成功接收標志
void test();
void delayh(void){
unsigned char i=200;
while(i--);
}
void delay(uint i){while(--i);}
uchar code zm[][8]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - -
0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x00, // -!-
0x0A,0x0A,0x0A,0x00,0x00,0x00,0x00,0x00, // -"-
0x0A,0x0A,0x1F,0x0A,0x1F,0x0A,0x0A,0x00, // -#-
0x04,0x1E,0x03,0x0E,0x14,0x0F,0x04,0x00, // -$-
0x03,0x13,0x08,0x04,0x02,0x19,0x18,0x00, // -%-
0x02,0x05,0x05,0x02,0x15,0x09,0x16,0x00, // -&-
0x0C,0x04,0x02,0x00,0x00,0x00,0x00,0x00, // -'-
0x08,0x04,0x02,0x02,0x02,0x04,0x08,0x00, // -(-
0x02,0x04,0x08,0x08,0x08,0x04,0x02,0x00, // -)-
0x04,0x15,0x0E,0x04,0x0E,0x15,0x04,0x00, // -*-
0x04,0x04,0x04,0x1F,0x04,0x04,0x04,0x00, // -+-
0x00,0x00,0x00,0x00,0x06,0x02,0x01,0x00, // -,-
0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00, // ---
0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00, // -.-
0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00, // -/-
0x00,0x00,0x1C,0x22,0x2A,0x08,0x07,0x00, // -0-//ok
0x00,0x00,0x38,0x44,0x54,0x10,0xE0,0x00, // -1-//ok
0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55, // -2-//ok
0xFF,0x00,0x3C,0x24,0x24,0x3C,0x00,0xFF, // -3-//ok
0x00,0x20,0x50,0x88,0x05,0x02,0x02,0x02, // -4-//ok
0x0C,0x1E,0x3F,0x3F,0x1F,0x0F,0x07,0x03, // -5-
0x30,0x78,0xFC,0xFC,0xF8,0xF0,0xE0,0xC0, // -6-
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01, // -7-
0x0E,0x11,0x11,0x0E,0x11,0x11,0x0E,0x00, // -8-
0x0E,0x11,0x11,0x1E,0x10,0x08,0x07,0x00, // -9-
0x00,0x06,0x06,0x00,0x06,0x06,0x00,0x00, // -:-
0x00,0x06,0x06,0x00,0x06,0x06,0x01,0x00, // -;-
0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x00, // -<-
0x00,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00, // -=-
0x02,0x04,0x08,0x10,0x08,0x04,0x02,0x00, // ->-
0x0E,0x11,0x08,0x04,0x04,0x00,0x04,0x00, // -?-
0x0E,0x11,0x1D,0x15,0x1D,0x01,0x1E,0x00, // -@-
0x04,0x0A,0x11,0x11,0x1F,0x11,0x11,0x00, // -A-
0x0F,0x11,0x11,0x0F,0x11,0x11,0x0F,0x00, // -B-
0x0E,0x11,0x01,0x01,0x01,0x11,0x0E,0x00, // -C-
0x0F,0x11,0x11,0x11,0x11,0x11,0x0F,0x00, // -D-
0x1F,0x01,0x01,0x0F,0x01,0x01,0x1F,0x00, // -E-
0x1F,0x01,0x01,0x0F,0x01,0x01,0x01,0x00, // -F-
0x0E,0x11,0x01,0x01,0x1D,0x11,0x1E,0x00, // -G-
0x11,0x11,0x11,0x1F,0x11,0x11,0x11,0x00, // -H-
0x0E,0x04,0x04,0x04,0x04,0x04,0x0E,0x00, // -I-
0x1C,0x08,0x08,0x08,0x08,0x09,0x06,0x00, // -J-
0x11,0x09,0x05,0x03,0x05,0x09,0x11,0x00, // -K-
0x01,0x01,0x01,0x01,0x01,0x01,0x1F,0x00, // -L-
0x11,0x1B,0x15,0x15,0x11,0x11,0x11,0x00, // -M-
0x11,0x11,0x13,0x15,0x19,0x11,0x11,0x00, // -N-
0x0E,0x11,0x11,0x11,0x11,0x11,0x0E,0x00, // -O-
0x0F,0x11,0x11,0x0F,0x01,0x01,0x01,0x00, // -P-
0x0E,0x11,0x11,0x11,0x15,0x09,0x16,0x00, // -Q-
0x0F,0x11,0x11,0x0F,0x05,0x09,0x11,0x00, // -R-
0x0E,0x11,0x01,0x0E,0x10,0x11,0x0E,0x00, // -S-
0x1F,0x04,0x04,0x04,0x04,0x04,0x04,0x00, // -T-
0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x00, // -U-
0x11,0x11,0x11,0x11,0x11,0x0A,0x04,0x00, // -V-
0x11,0x11,0x11,0x15,0x15,0x1B,0x11,0x00, // -W-
0x11,0x11,0x0A,0x04,0x0A,0x11,0x11,0x00, // -X-
0x11,0x11,0x0A,0x04,0x04,0x04,0x04,0x00, // -Y-
0x1F,0x10,0x08,0x04,0x02,0x01,0x1F,0x00, // -Z-
0x0F,0x03,0x03,0x03,0x03,0x03,0x0F,0x00, // -[-
0x00,0x01,0x02,0x04,0x08,0x10,0x00,0x00, // -\-
0x1E,0x18,0x18,0x18,0x18,0x18,0x1E,0x00, // -]-
0x04,0x0E,0x15,0x04,0x04,0x04,0x04,0x00, // -^-
0x00,0x04,0x02,0x1F,0x02,0x04,0x00,0x00, // -_-
0x04,0x08,0x10,0x00,0x00,0x00,0x00,0x00, // -`-
0x00,0x00,0x07,0x08,0x0E,0x09,0x16,0x00, // -a-
0x01,0x01,0x0D,0x13,0x11,0x13,0x0D,0x00, // -b-
0x00,0x00,0x0E,0x11,0x01,0x01,0x0E,0x00, // -c-
0x10,0x10,0x16,0x19,0x11,0x19,0x16,0x00, // -d-
0x00,0x00,0x0E,0x11,0x0F,0x01,0x0E,0x00, // -e-
0x0C,0x12,0x02,0x0F,0x02,0x02,0x02,0x00, // -f-
0x00,0x00,0x0E,0x11,0x11,0x1E,0x10,0x0F, // -g-
0x01,0x01,0x0D,0x13,0x11,0x11,0x11,0x00, // -h-
0x04,0x00,0x00,0x04,0x04,0x04,0x04,0x00, // -i-
0x08,0x00,0x00,0x0C,0x08,0x08,0x08,0x06, // -j-
0x01,0x01,0x09,0x05,0x03,0x05,0x19,0x00, // -k-
0x06,0x04,0x04,0x04,0x04,0x04,0x0E,0x00, // -l-
0x00,0x00,0x0A,0x15,0x15,0x15,0x15,0x00, // -m-
0x00,0x00,0x0D,0x12,0x12,0x12,0x12,0x00, // -n-
0x00,0x00,0x0E,0x11,0x11,0x11,0x0E,0x00, // -o-
0x00,0x00,0x0F,0x11,0x11,0x0F,0x01,0x01, // -p-
0x00,0x00,0x1E,0x11,0x11,0x1E,0x10,0x10, // -q-
0x00,0x00,0x0D,0x12,0x02,0x02,0x02,0x00, // -r-
0x00,0x00,0x1E,0x01,0x0E,0x10,0x0F,0x00, // -s-
0x02,0x02,0x1F,0x02,0x02,0x12,0x0C,0x00, // -t-
0x00,0x00,0x09,0x09,0x09,0x09,0x16,0x00, // -u-
0x00,0x00,0x11,0x11,0x11,0x0A,0x04,0x00, // -v-
0x00,0x00,0x15,0x15,0x15,0x15,0x0A,0x00, // -w-
0x00,0x00,0x11,0x0A,0x04,0x0A,0x11,0x00, // -x-
0x00,0x00,0x11,0x11,0x19,0x16,0x10,0x0F, // -y-
0x00,0x00,0x1F,0x08,0x04,0x02,0x1F,0x00, // -z-
0x00,0x36,0x7F,0x7F,0x3E,0x1C,0x08,0x00, // -{-//OK
0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x00, // -|-
0xFF,0x55,0xFF,0x55,0xFF,0x55,0xFF,0x55, // -}-//OK
0x00,0x00,0x02,0x15,0x08,0x00,0x00,0x00, // -~-
0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x00, // --
};
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
uint count=0;
uchar slen;
uchar zmMov(uchar i,j,uchar *s)
{
uchar si=count/8+j;
uchar mi=count%8;
return (zm[s[(si+1)%slen]-32][i]<<8-mi)|(zm[s[si%slen]-32][i]>>mi);
}
void dispmov(uchar *s)
{
uchar i=0;
uchar row=0x01;
for(slen=0;s[slen]!=0;slen++)
while(i<8)
{
P2=zmMov(i,0,s);L1=1;L1=0;
P2=zmMov(i,1,s);L2=1;L2=0;
P2=zmMov(i,2,s);L3=1;L3=0;
P2=zmMov(i,3,s);L4=1;L4=0;
P2=row;H=1;H=0;
delay(1500);i++;
row=_crol_(row,1);
P2=0;
H=L1=L2=L3=L4=1;
H=L1=L2=L3=L4=0;
}
}
uchar STC_ADC() //!!根據(jù)數(shù)據(jù)手冊寫一個ad讀取函數(shù)
{
uchar i;
ADC_RES = 0;
ADC_RESL = 0;
ADC_CONTR = BIN(10001000);
i=3;
while(i--);
while (1)
{
if (ADC_CONTR & BIN(10000))
{
break;
}
}
ADC_CONTR = BIN(10000000);
return( ADC_RESL<<2) ;
}
|