四川信息职业技术学院毕业设计说明书(论文)
U1619XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718K1XTAL2AONC74102852.3K7963=4K89RSTK2B+/-MRCK3C%1M-293031PSENALEEAK4+M+56DK10K5K6K9K1K2K3K4K5K6K7K812345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52D1IRK9LEDK10附图2 红外发送电路部分 RP110K LCD1LM016L1C130pF23456789RSRWE456CRYSTAL123C230pF19U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RSTC31nF293031PSENALEEAR110k12345678GNDD2IRLEDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C517891011121314D0D1D2D3D4D5D6D7X1VSSVDDVEE附图3 红外接收电路部分 第 21 页 共 33 页
四川信息职业技术学院毕业设计说明书(论文)
附录3 程序清单
/**************************************************************/ // send.c
// 遥控发射器
/**************************************************************/ #include \#include \#include \#include \
#define JINGZHEN 48
#define TIME0TH ((65536-100*JINGZHEN/12)&0xff00)>>8 //time0,100us,红外遥控
#define TIME0TL ((65536-100*JINGZHEN/12)&0xff)
#define TIME1TH ((65536-5000*JINGZHEN/12)&0xff00)>>8 #define TIME1TL ((65536-5000*JINGZHEN/12)&0xff) #define uchar unsigned char #define uint unsigned int
code uchar BitMsk[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};
uint IrCount=0,Show=0,Cont=0; uchar IRDATBUF[32],s[20]; uchar IrDat[5]={0,0,0,0,0}; uchar IrStart=0,IrDatCount=0;
extern void initLCM(void); //LCD初始化子程序 extern void DisplayListChar(uchar X,uchar Y, unsigned char *DData);
第 22 页 共 33 页
{ EA=0;
四川信息职业技术学院毕业设计说明书(论文)
void timer1int (void) interrupt 3 using 3 //定时器1
TH1 = TIME1TH; TL1 = TIME1TL; Cont++;
if(Cont>10)Show=1; EA=1; }
void timer0int (void) interrupt 1 using 1 //定时器0 {
uchar i,a,b,c,d; EA=0;
TH0 = TIME0TH; TL0 = TIME0TL; if(IrCount>500)IrCount=0;
if(IrCount>300&&IrStart>0){IrStart=0;IrDatCount=0;IrDat[0]=IrDat[1]=IrDat[2]=IrDat[3]=0;IrCount=0;} if(IrStart==2) { IrStart=3;
for(i=0;i b=IRDATBUF[i]; c=IrDat[a]; 第 23 页 共 33 页 四川信息职业技术学院毕业设计说明书(论文) d=BitMsk[i%8]; if(b>5&&b<14)c|=d; if(b>16&&b<25)c&=~d; IrDat[a]=c; } } if(IrDat[2]!=~IrDat[3]) { IrStart=0;IrDatCount=0;IrDat[0]=IrDat[1]=IrDat[2]=IrDat[3]=0;IrCount=0; } EA=1; return; } IrCount++; EA=1; } void int0() interrupt 0 using 0 { EA=0; if(IrStart==0) { IrStart=1;IrCount=0;TH0 = TIME0TH;TL0 = TIME0TL; IrDatCount=0;EA=1; return; } if(IrStart==1) { if(IrDatCount>0&&IrDatCount<33) IRDATBUF[IrDatCount-1]=IrCount; if(IrDatCount>31) 第 24 页 共 33 页 四川信息职业技术学院毕业设计说明书(论文) {IrStart=2;TH0 = TIME0TH;TL0 = TIME0TL;EA=1;return;} if(IrCount>114&&IrCount<133&&IrDatCount==0) {IrDatCount=1;}else if(IrDatCount>0)IrDatCount++; } IrCount=0;TH0 = TIME0TH;TL0 = TIME0TL; EA=1; } /******************主程序****************/ main() { uchar *a,n; TMOD |= 0x011; TH0 = TIME0TH; TL0 = TIME0TL; ET0=1; TR0=1; ET1=1; TR1=1; IT0 = 1; //下降沿 EX0 = 1; initLCM(); EA=1; /**************按键扫描程序**************/ for(;;) { if(Show==1) { Show=0; Cont=0; DisplayListChar(0,1,\ 第 25 页 共 33 页