基于STC89C52RC
红外遥控
时钟显示(3种格式)
常亮功能
转速测试
由红外避障模块来进行显示定位
18个led
支持滚动显示
程序有点 乱DS1302部分参考宋老师的代码
单片机源程序:
- #include <reg52.h>
- typedef unsigned char uint8;
- typedef unsigned int uint16;
- sbit DS1302_CE = P1^1;
- sbit DS1302_CK = P1^3;
- sbit DS1302_IO = P1^2;
- sbit led =P3^7;
- uint8 rs,last,psec;
- uint8 market,mark;
- uint8 irdata=0;
- uint8 ts=0,setbit;
- uint8 speed =8;
- uint8 fun,led0,type,speed2;
- uint16 tmp,fw=600,xz ;
- uint16 j,l=170,s=1;
- bit dir;
- unsigned char InitTime[] = { //2017年07月23日 星期7 15:05:00
- 0x00,0x57,0x15, 0x23, 0x07, 0x07, 0x17
- };
- unsigned char str[15]; //字符串转换缓冲区
- uint8 code wz3[]=
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 1,
- 0x40,0x00,0x41,0x00,0xCE,0x7F,0x04,0x20,0x00,0x90,0x80,0x80,0x40,0x40,0xBE,0x43,
- 0x82,0x2C,0x82,0x10,0x82,0x10,0xBE,0x2C,0xC0,0x43,0x40,0xC0,0x40,0x40,0x00,0x00,//设0,
- 0x20,0x00,0x21,0x00,0x2E,0x00,0xE4,0x7F,0x00,0x20,0x00,0x10,0x20,0x08,0x20,0x00,
- 0x20,0x00,0x20,0x00,0xFF,0xFF,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,//计1,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,//:5,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 10,
- 0x00,0x00,0x70,0x38,0x88,0x20,0x08,0x21,0x08,0x21,0x08,0x22,0x38,0x1C,0x00,0x00,//S16,
- 0x18,0x00,0x08,0x00,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x00,0x18,0x00,0x00,0x00,//T17,
- 0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x38,0x08,0x00,0x00,//C18,
- 0x00,0x10,0x04,0x0E,0x04,0x00,0x04,0x00,0x84,0x3F,0x1F,0x40,0x24,0x40,0xC4,0x40,
- 0x84,0x43,0x04,0x40,0x1F,0x40,0x84,0x78,0x04,0x21,0x04,0x0E,0x04,0x04,0x00,0x00,//芯13,
- 0x00,0x80,0x00,0x40,0x00,0x30,0xFE,0x0F,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,
- 0x10,0x01,0x1F,0x01,0x10,0x01,0x10,0xFF,0x10,0x00,0x18,0x00,0x10,0x00,0x00,0x00,//片14,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 23,
- 0x00,0x80,0x00,0x40,0x00,0x30,0xFE,0x0F,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,
- 0xFE,0xFF,0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82,0xFE,0x7F,0x00,0x00,0x00,0x00,//用25,
- 0x00,0x00,0xFC,0x07,0x44,0x04,0x44,0x04,0x44,0x04,0xFC,0x07,0x10,0x00,0x90,0x00,
- 0x10,0x03,0x10,0x40,0x10,0x80,0xFF,0x7F,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,//时26,
- 0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,//10,
- 0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,//11,
- 0x00,0x00,0x40,0x80,0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x06,0xFE,0x01,
- 0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x30,0x42,0x60,0x40,0x20,0x00,0x00,//天29,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 40,
- 0x10,0x04,0x12,0x03,0xD2,0x00,0xFE,0xFF,0x91,0x00,0x11,0x41,0x80,0x44,0xBF,0x44,
- 0xA1,0x44,0xA1,0x7F,0xA1,0x44,0xA1,0x44,0xBF,0x44,0x80,0x44,0x00,0x40,0x00,0x00,//程42,
- 0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x00,0x04,0x01,0x14,0x01,0x14,0x01,0x35,0x41,
- 0x56,0x81,0x94,0x7F,0x54,0x01,0x34,0x01,0x14,0x01,0x04,0x03,0x04,0x01,0x00,0x00,//序43,
- 0x20,0x00,0x20,0x80,0x20,0x40,0x20,0x20,0x20,0x10,0x20,0x0C,0xA0,0x03,0x7F,0x00,
- 0xA0,0x01,0x20,0x06,0x20,0x08,0x20,0x30,0x20,0x60,0x20,0xC0,0x20,0x40,0x00,0x00,//大44,
- 0x00,0x04,0x00,0x02,0x00,0x01,0xC0,0x00,0x70,0x00,0x20,0x40,0x00,0x80,0xFF,0x7F,
- 0x00,0x00,0x10,0x00,0x20,0x00,0xC0,0x00,0x80,0x01,0x00,0x07,0x00,0x02,0x00,0x00,//小45,
- 0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00,//80,
- 0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,0x28,0x26,0x18,0x38,0x08,0x20,0x00,0x00,//K1,
- 0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x20,0x70,0x11,0x00,0x0E,0x00,0x00,//B2,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x08,0x20,0xF8,0x3F,0xF8,0x00,0x80,0x3F,0xF8,0x00,0xF8,0x3F,0x08,0x20,//M0,
- 0x00,0x00,0x00,0x1D,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x3F,0x00,0x20,//a1,
- 0x00,0x00,0x00,0x1F,0x80,0x21,0x80,0x20,0x88,0x20,0xF8,0x3F,0x00,0x20,//d2,
- 0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,//e3,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 4,
- 0x08,0x00,0xF8,0x3F,0x00,0x21,0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,//b5,
- 0x80,0x80,0x80,0x83,0x80,0x4E,0x00,0x30,0x80,0x0E,0x80,0x01,0x80,0x00,//y6,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 7,
- 0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,//H8,
- 0x10,0x30,0x08,0x2C,0x08,0x23,0xC8,0x20,0x38,0x20,0x08,0x10,0x00,0x00,//Z9,
- 0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,//H10,
- 0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//.11,
- 0x00,0x00,0x70,0x30,0x88,0x20,0x08,0x21,0x08,0x23,0x18,0x1E,0x00,0x00,//S12,
- 0x80,0x80,0x80,0xFF,0x00,0xA1,0x80,0x20,0x80,0x30,0x00,0x1F,0x00,0x00,//p13,
- 0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,//e14,
- 0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x00,0x80,0x20,0x80,0x3F,0x00,0x20,//n15,
- 0x00,0x00,0x80,0x00,0x80,0x00,0xE0,0x1F,0x80,0x20,0x80,0x20,0x00,0x00,//t16,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 17,
- 0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,//118,
- 0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,//119,
- 0x00,0x00,0x00,0x1F,0x80,0x21,0x80,0x20,0x88,0x20,0xF8,0x3F,0x00,0x20,//d20,
- 0x00,0x00,0x00,0x1D,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x3F,0x00,0x20,//a21,
- 0x80,0x80,0x80,0x83,0x80,0x4E,0x00,0x30,0x80,0x0E,0x80,0x01,0x80,0x00,//y22,
- 0x00,0x00,0x00,0x33,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x19,0x00,0x00,//s23,
- 0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//.24,
- 0x08,0x20,0xF8,0x3F,0x08,0x21,0x08,0x01,0x08,0x01,0xF0,0x00,0x00,0x00,//P25,
- 0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x20,0x80,0x01,0x00,0x00,//r26,
- 0x00,0x00,0x00,0x1F,0x80,0x31,0x80,0x20,0x80,0x21,0x00,0x1F,0x00,0x00,//o27,
- 0x00,0x00,0x00,0x6B,0x80,0x94,0x80,0x94,0x80,0x93,0x80,0x60,0x00,0x00,//g28,
- 0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x20,0x80,0x01,0x00,0x00,//r29,
- 0x00,0x00,0x00,0x1D,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x3F,0x00,0x20,//a30,
- 0x80,0x20,0x80,0x3F,0x80,0x00,0x80,0x3F,0x80,0x00,0x00,0x3F,0x00,0x20,//m31,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 32,
- 0x00,0x00,0x00,0x33,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x19,0x00,0x00,//s33,
- 0x00,0x00,0x80,0x20,0x80,0x20,0x98,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,//i34,
- 0x00,0x00,0x80,0x21,0x80,0x38,0x80,0x24,0x80,0x23,0x80,0x30,0x00,0x00,//z35,
- 0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,//e36,
- 0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,//:37,
- 0x70,0x1E,0x98,0x21,0x88,0x21,0x08,0x21,0x98,0x31,0x70,0x1E,0x00,0x00,//838,
- 0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,0x28,0x26,0x18,0x38,0x08,0x20,//K39,
- 0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x31,0x70,0x1E,0x00,0x00,//B40,
- 0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//.41,
- 0x08,0x20,0xF8,0x3F,0xF8,0x00,0x80,0x3F,0xF8,0x00,0xF8,0x3F,0x08,0x20,//M42,
- 0xE0,0x0F,0x30,0x10,0x08,0x20,0x08,0x20,0x08,0x20,0x38,0x10,0x00,0x00,//C43,
- 0x08,0x00,0xF8,0x1F,0x08,0x20,0x00,0x20,0x08,0x20,0xF8,0x1F,0x08,0x00,//U44,
- 0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,//:45,
- 0x00,0x00,0x70,0x30,0x88,0x20,0x08,0x21,0x08,0x23,0x18,0x1E,0x00,0x00,//S46,
- 0x18,0x00,0x08,0x00,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x00,0x18,0x00,//T47,
- 0xE0,0x0F,0x30,0x10,0x08,0x20,0x08,0x20,0x08,0x20,0x38,0x10,0x00,0x00,//C48,
- 0x70,0x1E,0x98,0x21,0x88,0x21,0x08,0x21,0x98,0x31,0x70,0x1E,0x00,0x00,//849,
- 0xF0,0x31,0x08,0x22,0x08,0x22,0x08,0x32,0x18,0x19,0xE0,0x07,0x00,0x00,//950,
- 0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82,0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10,
- 0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A,0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,//我0,
- 0x00,0x00,0xFE,0x07,0x02,0x01,0x02,0x81,0xFE,0x43,0x00,0x30,0x00,0x0C,0xFE,0x03,
- 0x22,0x00,0x22,0x00,0x22,0x00,0xE2,0x7F,0x21,0x00,0x21,0x00,0x20,0x00,0x00,0x00,//听1,
- 0x00,0x40,0x00,0x40,0x00,0x20,0xFF,0x21,0x01,0x10,0x01,0x0C,0x01,0x03,0xF9,0x00,
- 0x01,0x3F,0x01,0x40,0x01,0x40,0xFF,0x41,0x00,0x40,0x00,0x78,0x00,0x20,0x00,0x00,//见2,
- 0x02,0x00,0x02,0x00,0xF2,0xFF,0x32,0x01,0x52,0x02,0x92,0x04,0x12,0x00,0xFE,0x7F,
- 0x32,0x01,0x52,0x02,0x92,0x44,0x12,0x80,0xF2,0x7F,0x02,0x00,0x02,0x00,0x00,0x00,//雨3,
- 0x10,0x08,0x61,0xF8,0x06,0x07,0xE0,0x00,0x00,0x00,0xF2,0xFF,0x92,0x00,0x96,0x0E,
- 0x9B,0x0A,0xF2,0x0B,0x9A,0x0A,0x96,0x4E,0x92,0x80,0xF2,0x7F,0x00,0x00,0x00,0x00,//滴4,
- 0x44,0x08,0x94,0x09,0x64,0xF8,0x04,0x06,0x84,0x09,0x1F,0x08,0x84,0xFC,0x74,0x4C,
- 0xA4,0x4A,0x2F,0x49,0xA4,0x4A,0x64,0xFC,0x24,0x04,0x04,0x08,0x04,0x08,0x00,0x00,//落5,
- 0x00,0x04,0x04,0x02,0x04,0x01,0xC4,0x7F,0x64,0x00,0x9C,0x20,0x87,0x20,0x84,0x20,
- 0x84,0x20,0xE4,0x3F,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x04,0x20,0x00,0x00,//在6,
- 0x40,0x00,0x40,0x00,0x44,0x00,0x54,0xFF,0x54,0x15,0x54,0x15,0x54,0x15,0x7F,0x15,
- 0x54,0x15,0x54,0x55,0x54,0x95,0x54,0x7F,0x44,0x00,0x40,0x00,0x40,0x00,0x00,0x00,//青7,
- 0x40,0x00,0x40,0x00,0x44,0x00,0x54,0xFF,0x54,0x15,0x54,0x15,0x54,0x15,0x7F,0x15,
- 0x54,0x15,0x54,0x55,0x54,0x95,0x54,0x7F,0x44,0x00,0x40,0x00,0x40,0x00,0x00,0x00,//青8,
- 0x04,0x08,0x04,0x08,0x04,0x08,0xE4,0x0B,0xA4,0x0A,0xBF,0x0A,0xA4,0x0A,0xA4,0xFE,
- 0xA4,0x0A,0xBF,0x0A,0xA4,0x0A,0xE4,0x0B,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,//草9,
- 0x10,0x20,0x10,0x20,0x10,0x10,0xFE,0x1F,0x10,0x08,0x50,0x08,0x40,0x00,0xFE,0x3F,
- 0x20,0x40,0x20,0x40,0xFF,0x4F,0x10,0x42,0x10,0x44,0xF8,0x43,0x10,0x70,0x00,0x00,//地10,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00// 11,
-
- };
- uint8 code num0[]=
- {
- 0x00,0x3C,0x42,0x42,0x42,0x3C,0x00,0x00,
- 0x00,0x00,0x44,0x7E,0x40,0x00,0x00,0x00,
- 0x00,0x44,0x42,0x62,0x52,0x4C,0x40,0x00,
- 0x00,0x00,0x89,0x89,0x89,0x76,0x00,0x00,
- 0x10,0x18,0x14,0x12,0xFF,0x10,0x10,0x00,
- 0x00,0x00,0x8F,0x89,0x89,0x89,0x70,0x00,
- 0x00,0x00,0x7E,0x89,0x89,0x89,0x70,0x00,
- 0x00,0x03,0x01,0xF1,0x09,0x07,0x00,0x00,
- 0x00,0x00,0x6E,0x91,0x91,0x6E,0x00,0x00,
- 0x00,0x4E,0x91,0x91,0x91,0x7E,0x00,0x00,
- 0x00,0x68,0x58,0x58,0x58,0x58,0x78,0x40,//a0,
- 0x04,0x7C,0x48,0x48,0x48,0x48,0x30,0x00,//b1,
- 0x00,0x30,0x48,0x48,0x48,0x48,0x48,0x00,//c2,
- 0x00,0x30,0x50,0x48,0x48,0x4C,0x7C,0x40,//d3,
- 0x00,0x30,0x58,0x58,0x58,0x58,0x50,0x00,//e4,
- 0x00,0x48,0x48,0x7C,0x4C,0x4C,0x0C,0x04,//f5,
- 0x00,0xC0,0x60,0x30,0x0C,0x06,0x03,0x00,///0,
- 0x00,0x48,0x48,0x00,0x00,0x00,0x00,0x00,//:1,
- 0x7F,0x80,0x40,0x3C,0x40,0x80,0x7F,0x00,
- 0x00,0xFF,0x89,0x89,0x89,0x81,0x00,0x00,
- 0x00,0xFF,0x08,0x14,0x22,0x41,0x80,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x38,0x44,0x64,0x64,0x64,0xC4,0xB8,0x00//Q0,
- };
- uint8 code num1[]=
- {
- 0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,//00,
- 0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,//11,
- 0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,//22,
- 0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,//33,
- 0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00,//44,
- 0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00,//55,
- 0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00,//66,
- 0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00,//77,
- 0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00,//88,
- 0x00,0x00,0xE0,0x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00,//99,
- 0x00,0x00,0x00,0x19,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x3F,0x00,0x20,//a10,
- 0x08,0x00,0xF8,0x3F,0x00,0x11,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00,//b11,
- 0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x00,//c12,
- 0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x88,0x10,0xF8,0x3F,0x00,0x20,//d13,
- 0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,//e14,
- 0x00,0x00,0x80,0x20,0x80,0x20,0xF0,0x3F,0x88,0x20,0x88,0x20,0x88,0x00,0x18,0x00,//f15,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00//:16,
- };
- uint8 code set[]=
- {
- 0x02,0x00,0xF2,0x7F,0x02,0x20,0x02,0x20,0xFA,0x2F,0x4A,0x24,0x4A,0x24,0xFA,0x27,
- 0x4A,0x24,0x4A,0x24,0xFA,0x2F,0x02,0x20,0x02,0x20,0xF2,0x7F,0x02,0x00,0x00,0x00,//画0,
- 0x08,0x04,0x08,0x02,0x08,0x01,0x88,0x00,0xC8,0x3F,0xB8,0x00,0x8F,0x00,0x8A,0x00,
- 0xF8,0xFF,0x88,0x00,0x88,0x10,0x88,0x20,0x88,0x1F,0x08,0x00,0x08,0x00,0x00,0x00,//布1,
- 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0xFF,0xA0,0x40,0xA0,0x21,0x90,0x12,
- 0x90,0x04,0x88,0x08,0x84,0x10,0x82,0x30,0x80,0x60,0x80,0x20,0x80,0x00,0x00,0x00,//长2,
- 0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x80,0x24,0x80,0x24,0x42,0xFC,0x46,0xA5,0x2A,
- 0xA6,0x12,0xA4,0x12,0xFC,0x2A,0x24,0x26,0x24,0x42,0x24,0xC0,0x04,0x40,0x00,0x00,//度3,
- 0x00,0x81,0x84,0x80,0x44,0x80,0x34,0x41,0x24,0x41,0x04,0x27,0xFD,0x29,0x06,0x11,
- 0x06,0x11,0xFC,0x29,0x04,0x27,0x14,0x41,0x24,0xC0,0xE4,0x40,0x44,0x40,0x00,0x00,//变4,
- 0x80,0x00,0x40,0x00,0x20,0x00,0xF8,0x7F,0x07,0x00,0x02,0x04,0x00,0x02,0x00,0x01,
- 0xFF,0x3F,0xC0,0x40,0x60,0x40,0x30,0x40,0x1C,0x40,0x08,0x78,0x00,0x00,0x00,0x00,//化5,
- 0x40,0x40,0x42,0x20,0xCC,0x1F,0x00,0x20,0x04,0x48,0xE4,0x49,0x24,0x45,0x24,0x43,
- 0xFF,0x7F,0x24,0x41,0x24,0x43,0x24,0x45,0xE4,0x4D,0x04,0x40,0x00,0x40,0x00,0x00,//速6,
- 0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x80,0x24,0x80,0x24,0x42,0xFC,0x46,0xA5,0x2A,
- 0xA6,0x12,0xA4,0x12,0xFC,0x2A,0x24,0x26,0x24,0x42,0x24,0xC0,0x04,0x40,0x00,0x00,//度7,
- 0x40,0x00,0x20,0x00,0xF8,0xFF,0x17,0x00,0x02,0x2A,0xF8,0x2A,0x4C,0x16,0x4B,0x15,
- 0xCA,0x49,0x7A,0x86,0x4E,0x7A,0x4A,0x05,0xC8,0x09,0x78,0x31,0x00,0x10,0x00,0x00,//像8,
- 0x20,0x00,0x22,0x40,0x2A,0x44,0x2A,0x25,0x2A,0x15,0xAA,0x47,0x6A,0x85,0x3F,0x7D,
- 0x2A,0x05,0xAA,0x04,0x2A,0x14,0x2A,0x26,0x2A,0x4C,0x22,0x00,0x20,0x00,0x00,0x00,//素9,
- 0x10,0x00,0x0C,0x80,0x14,0x80,0x94,0x4F,0x94,0x40,0xBC,0x20,0x95,0x18,0x96,0x07,
- 0x94,0x38,0xBC,0x40,0x94,0x40,0x94,0x4F,0x14,0x40,0x0C,0x70,0x04,0x00,0x00,0x00,//宽10,
- 0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x80,0x24,0x80,0x24,0x42,0xFC,0x46,0xA5,0x2A,
- 0xA6,0x12,0xA4,0x12,0xFC,0x2A,0x24,0x26,0x24,0x42,0x24,0xC0,0x04,0x40,0x00,0x00,//度11,
- 0x00,0x00,0xFC,0x07,0x44,0x04,0x44,0x04,0x44,0x04,0xFC,0x07,0x10,0x00,0x90,0x00,
- 0x10,0x03,0x10,0x40,0x10,0x80,0xFF,0x7F,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,//时0,
- 0x00,0x00,0xF8,0xFF,0x01,0x00,0x06,0x00,0x00,0x00,0xF0,0x07,0x92,0x04,0x92,0x04,
- 0x92,0x04,0x92,0x04,0xF2,0x07,0x02,0x40,0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00,//间1,
- 0x08,0x02,0x88,0x01,0x68,0x00,0xFF,0xFF,0x48,0x00,0xA8,0x01,0x10,0x01,0x0C,0xFF,
- 0x97,0x42,0xA4,0x42,0x44,0x42,0xB4,0x42,0x8C,0xFE,0x00,0x01,0x00,0x01,0x00,0x00,//格2,
- 0x00,0x00,0x08,0x20,0x88,0x60,0x88,0x30,0x88,0x1F,0x88,0x10,0x88,0x08,0x08,0x08,
- 0xFF,0x00,0x08,0x07,0x09,0x18,0x0E,0x20,0x0A,0x40,0x08,0x80,0x00,0x70,0x00,0x00,//式3,
- 0x10,0x08,0x61,0x08,0x06,0xFE,0xC0,0x11,0x04,0x10,0x24,0x08,0x94,0xFC,0xCC,0x42,
- 0xA5,0x23,0x86,0x04,0xCC,0x08,0x94,0x15,0x34,0x62,0x04,0xC0,0x04,0x40,0x00,0x00,//滚0,
- 0x20,0x08,0x24,0x1C,0x24,0x0B,0xE4,0x08,0x24,0x0C,0x24,0x05,0x24,0x4E,0x20,0x24,
- 0x10,0x10,0x10,0x0C,0xFF,0x03,0x10,0x20,0x10,0x40,0xF0,0x3F,0x00,0x00,0x00,0x00,//动1,
- 0x40,0x40,0x42,0x20,0xCC,0x1F,0x00,0x20,0x04,0x48,0xE4,0x49,0x24,0x45,0x24,0x43,
- 0xFF,0x7F,0x24,0x41,0x24,0x43,0x24,0x45,0xE4,0x4D,0x04,0x40,0x00,0x40,0x00,0x00,//速2,
- 0x00,0x80,0x00,0x60,0xFC,0x1F,0x04,0x80,0x24,0x80,0x24,0x42,0xFC,0x46,0xA5,0x2A,
- 0xA6,0x12,0xA4,0x12,0xFC,0x2A,0x24,0x26,0x24,0x42,0x24,0xC0,0x04,0x40,0x00,0x00,//度3,
- 0x10,0x08,0x61,0x08,0x06,0xFE,0xC0,0x11,0x04,0x10,0x24,0x08,0x94,0xFC,0xCC,0x42,
- 0xA5,0x23,0x86,0x04,0xCC,0x08,0x94,0x15,0x34,0x62,0x04,0xC0,0x04,0x40,0x00,0x00,//滚4,
- 0x20,0x08,0x24,0x1C,0x24,0x0B,0xE4,0x08,0x24,0x0C,0x24,0x05,0x24,0x4E,0x20,0x24,
- 0x10,0x10,0x10,0x0C,0xFF,0x03,0x10,0x20,0x10,0x40,0xF0,0x3F,0x00,0x00,0x00,0x00,//动5,
- 0x44,0x08,0x94,0x09,0xA4,0xF8,0x64,0x04,0x04,0x03,0x0F,0x00,0x04,0x00,0xE4,0x3F,
- 0x24,0x40,0x2C,0x40,0x2F,0x42,0x24,0x46,0xE4,0x43,0x04,0x70,0x04,0x00,0x00,0x00,//范6,
- 0x00,0x00,0xFF,0xFF,0x01,0x40,0x89,0x40,0xA9,0x40,0xA9,0x40,0xFF,0x5F,0xA9,0x40,
- 0xA9,0x48,0xA9,0x50,0xA9,0x4F,0x09,0x40,0x01,0x40,0xFF,0xFF,0x00,0x00,0x00,0x00,//围7,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00//:12,
- };
- uint8 code hwm[]=
- {
- 0x20,0x22,0x30,0x66,0x2C,0x23,0xA3,0x12,0x60,0x12,0x18,0x52,0x00,0x40,0x08,0x40,
- 0x08,0x40,0x08,0x40,0xF8,0x7F,0x08,0x40,0x08,0x40,0x0C,0x60,0x08,0x40,0x00,0x00,//红0,
- 0x80,0x40,0x40,0x20,0x20,0x10,0x58,0x08,0x87,0x05,0x04,0x03,0xC4,0x00,0x3C,0x00,
- 0x00,0x00,0x00,0x00,0xFF,0xFF,0x20,0x00,0x40,0x00,0x80,0x00,0x00,0x03,0x00,0x00,//外1,
- 0x02,0x01,0x82,0x00,0xE2,0x7F,0x5E,0x10,0x42,0x10,0xC2,0x3F,0x00,0x00,0x02,0x04,
- 0xFA,0x04,0x82,0x04,0x82,0x44,0x82,0x84,0xFE,0x40,0x80,0x3F,0x00,0x00,0x00,0x00,//码2,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00//:3,
- };
- uint8 code wz2[]=
- {
- 0x40,0x04,0x20,0x04,0x10,0x04,0x0C,0x04,0xE3,0x07,0x22,0x04,0x22,0x04,0x22,0x04,
- 0xFE,0xFF,0x22,0x04,0x22,0x04,0x22,0x04,0x22,0x04,0x02,0x04,0x00,0x04,0x00,0x00,//年0,
- 0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x0C,0xFF,0x03,0x11,0x01,0x11,0x01,
- 0x11,0x01,0x11,0x21,0x11,0x41,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//月1,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,
- 0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//日2,
- 0x00,0x00,0x00,0x48,0x00,0x46,0xBE,0x41,0x2A,0x49,0x2A,0x49,0x2A,0x49,0xEA,0x7F,
- 0x2A,0x49,0x2A,0x49,0x2A,0x49,0x2A,0x49,0x3E,0x49,0x00,0x41,0x00,0x40,0x00,0x00,//星3,
- 0x00,0x42,0x04,0x22,0xFF,0x1B,0x54,0x02,0x54,0x02,0x54,0x0A,0xFF,0x33,0x04,0x62,
- 0x00,0x18,0xFE,0x07,0x22,0x02,0x22,0x22,0x22,0x42,0xFE,0x3F,0x00,0x00,0x00,0x00,//期4,
- 0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
- 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xC0,0x00,0x80,0x00,0x00,0x00,//一5,
- 0x00,0x00,0x00,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,
- 0x04,0x10,0x04,0x10,0x04,0x10,0x06,0x10,0x04,0x10,0x00,0x18,0x00,0x10,0x00,0x00,//二6,
- 0x00,0x00,0x04,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,
- 0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x04,0x20,0x00,0x20,0x00,0x00,//三7,
- 0x00,0x00,0xFE,0x7F,0x02,0x28,0x02,0x24,0x02,0x23,0xFE,0x20,0x02,0x20,0x02,0x20,
- 0xFE,0x21,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0xFE,0x7F,0x00,0x00,0x00,0x00,//四8,
- 0x00,0x20,0x02,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x3F,0xFE,0x20,0x82,0x20,
- 0x82,0x20,0x82,0x20,0xC2,0x3F,0x82,0x20,0x02,0x20,0x00,0x30,0x00,0x20,0x00,0x00,//五9,
- 0x10,0x00,0x10,0x40,0x10,0x20,0x10,0x10,0x10,0x0C,0x91,0x03,0x12,0x01,0x1E,0x00,
- 0x94,0x00,0x10,0x01,0x10,0x02,0x10,0x0C,0x10,0x78,0x10,0x30,0x10,0x00,0x00,0x00,//六10,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,
- 0x42,0x10,0x42,0x10,0x42,0x10,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//日11,
- };
- uint8 code hzh[]=
- {
- 0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x20,0x70,0x11,0x00,0x0E,0x00,0x00,//B0,
- 0x08,0x00,0x38,0x00,0xC8,0x20,0x00,0x3F,0xC8,0x20,0x38,0x00,0x08,0x00,0x00,0x00,//Y1,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,//:2,
- 0x20,0x00,0x24,0x80,0x24,0x80,0xA4,0x5F,0xA4,0x32,0xBF,0x12,0xA4,0x12,0xE4,0x1F,
- 0xA4,0x12,0xBF,0x12,0xA4,0x32,0xA4,0x5F,0x24,0xC0,0x24,0x00,0x20,0x00,0x00,0x00,//黄3,
- 0x00,0x08,0x00,0x08,0xF0,0x0B,0x50,0x09,0x50,0x09,0x50,0x09,0x5F,0x09,0x54,0xFF,
- 0x54,0x09,0x54,0x09,0x54,0x09,0xF4,0x0B,0x04,0x08,0x00,0x08,0x00,0x08,0x00,0x00,//卓4,
- 0x10,0x04,0x21,0x7F,0xE6,0x00,0xF4,0x05,0x54,0x05,0x5F,0x7F,0x54,0x05,0xF4,0x15,
- 0x94,0x28,0x48,0x45,0xC4,0x3F,0x03,0x08,0x44,0x25,0x48,0x62,0xD0,0x3F,0x00,0x00
- };
- uint8 code wz4[]=
- {
- 0x20,0x00,0x10,0x00,0xFC,0x7F,0x07,0x00,0xF2,0x03,0x20,0x54,0x98,0x54,0x8F,0x4A,
- 0x54,0x2B,0xA4,0x25,0x24,0x15,0x54,0x12,0xCC,0x0A,0x80,0x09,0x80,0x00,0x00,0x00,//修0,
- 0x00,0x00,0xC4,0x7F,0x44,0x20,0x44,0x10,0x44,0x48,0x7C,0x44,0x80,0x20,0x40,0x20,
- 0xF0,0x10,0x1F,0x0B,0x12,0x0C,0x10,0x13,0xF0,0x20,0x10,0x60,0x10,0x20,0x00,0x00,//改1,
- 0x00,0x00,0xFC,0x07,0x44,0x04,0x44,0x04,0x44,0x04,0xFC,0x07,0x10,0x00,0x90,0x00,
- 0x10,0x03,0x10,0x40,0x10,0x80,0xFF,0x7F,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,//时2,
- 0x00,0x00,0xF8,0xFF,0x01,0x00,0x06,0x00,0x00,0x00,0xF0,0x07,0x92,0x04,0x92,0x04,
- 0x92,0x04,0x92,0x04,0xF2,0x07,0x02,0x40,0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00,//间3,
- 0x08,0x00,0x08,0x00,0xE8,0x7F,0xA8,0x04,0xA9,0x24,0xAE,0x44,0xEA,0x3F,0x08,0x00,
- 0x08,0x00,0xC8,0x1F,0x0C,0x40,0x0B,0x80,0xEA,0x7F,0x08,0x00,0x08,0x00,0x00,0x00,//前0,
- 0x00,0x40,0x00,0x30,0x00,0x0E,0xFE,0x01,0x12,0x00,0x12,0x7F,0x12,0x11,0x12,0x11,
- 0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x7F,0x11,0x00,0x00,0x00,0x00,0x00//后1,
- };
- uint8 code zs[]=
- {
-
- 0x08,0x20,0x08,0x18,0xF9,0x27,0x4E,0x40,0x48,0x20,0xC8,0x9F,0x10,0x60,0xA8,0x1F,
- 0x27,0x10,0x24,0x20,0xE4,0x3F,0x24,0x42,0x24,0x42,0x64,0x42,0x24,0x40,0x00,0x00,//旋0,
- 0xC8,0x08,0xA8,0x08,0x9C,0x04,0xEB,0xFF,0x88,0x04,0x88,0x04,0x88,0x00,0x40,0x02,
- 0x48,0x0B,0xF8,0x12,0x4F,0x22,0x48,0xD2,0x48,0x0E,0x48,0x02,0x40,0x00,0x00,0x00,//转1,
- 0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x20,0x80,0x00,0x80,0x01,0x00,0x00,//r2,
- 0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x80,0x01,0x60,0x00,0x18,0x00,0x04,0x00,///3,
- 0x00,0x00,0x00,0x33,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x19,0x00,0x00//s4,
- };
- unsigned int Infrared_Time=0; //红外解码记录的时间
- unsigned char Infrared_Step=0; //解码步骤
- unsigned char Infrared_Code[4]; //存放红外编码
- unsigned char Infrared_Num=0; //记录保存了红外编码的多少位
- unsigned char Infrared_Flag=0; //解码成功标志位
- unsigned char Dig_data[4];
- void DS1302SingleWrite(unsigned char reg, unsigned char dat);
- void InitDS1302();
- unsigned char DS1302SingleRead(unsigned char reg);
- void delay(unsigned char i)
- {
- unsigned char j,k;
- for(j=i;j>0;j--)
- for(k=125;k>0;k--);
- }
- write()
- {
- unsigned char i;
-
-
- DS1302_CE = 0; //初始化DS1302通信引脚
- DS1302_CK = 0;
-
-
- DS1302SingleWrite(7, 0x00); //撤销写保护以允许写入数据
- for (i=0; i<7; i++) //设置DS1302为默认的初始时间
- {
- DS1302SingleWrite(i, InitTime[i]);
- }
-
- }
- /****** 红外解码代码 begin ******/
- void INF_Init(void)
- {
- TMOD|=0x10; //定时器1 16位手动重装
- TH1=0; //重装值为0 因为定时计数器的数值是累加的
- TL1=0; //为红外解码记录时间
- ET1=1; //开定时器1中断
- TR1=1; //启动定时器1
- IT1=1; //外部中断0低电平触发
- EX1=1; //外部中断0使能
- PX1=1;
-
- }
- /***********************************
- *函数名称:void Time1_isr (void) interrupt 3
- *函数功能:定时器1中断服务程序
- *参数说明:无
- *返回说明:无
- *其它说明:无
- ***********************************/
- void Time1_isr (void) interrupt 3
- {
- TH1=0;
- TL1=0; //手动重装
- }
- void DelayUs(uint16 N)
- {
- uint16 x;
- for(x=0; x<=N;x++);
- }
- dis0(uint16 a,b)
- {
- uint8 i;
- for(i=0;i<8;i++)
- {
- P0=~num0[i+8*a];
- P2=~num0[i+8*b];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- }
- dis1(uint8 a)
- {
- uint8 i;
- for(i=0;i<8;i++)
- {
-
- P0=~num1[2*i+16*a];
- P2=~num1[1+2*i+16*a];
-
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- }
- dis2(uint8 a)
- {
- uint8 i;
- uint16 b;
- for(i=0;i<64;i++)
- {
-
- P0=~set[2*i+128*a];
- P2=~set[1+2*i+128*a];
-
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- for(i=0;i<8;i++)
- {
- P0=~set[2*i+16*48];
- P2=~set[1+2*i+16*48];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- switch(a)
- {
- case 0:b=l;break;
- case 1:b=s;break;
- case 2:b=speed;break;
- case 3:b=(1+ts);break;
- case 4:b=speed2;break;
- case 5:b=fw;break;
- }
- dis1(b/100%10);
- dis1(b/10%10);
- dis1(b%10);
- }
- dis3(uint8 a)
- {
- uint8 i;
- for(i=0;i<16;i++)
- {
- P0=~wz2[2*i+32*a];
- P2=~wz2[1+2*i+32*a];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- }
- settime()
- {
- uint8 i;
- if(market>1)
- {
- market--;
- for(i=0;i<64;i++)
- {
- P0=~wz4[2*i];
- P2=~wz4[1+2*i];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- }
- if(market==1)
- {
- speed=2;
- market=0;
- }
- if(market==0)
- {
- if(setbit<13)
- {
- if(mark==0)
- {
- ts1();
- }
- if(mark>1)
- {
- speed==30;
- for(i=0;i<16;i++)
- {
- P0=~wz4[2*i+128+32*dir];
- P2=~wz4[1+2*i+128+32*dir];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- mark--;
- dis1(setbit/10%10);
- dis1(setbit%10);
- }
- if(mark==1)
- {
- speed=2;
- mark=0;
- }
- }
- if(setbit>=13)
- {
- fun=1;
- setbit=0;
- InitTime[6]=str[2]*16+str[3];
- InitTime[5]=str[8];
- InitTime[4]=str[4]*16+str[5];
- InitTime[3]=str[6]*16+str[7];
- InitTime[2]=str[9]*16+str[10];
- InitTime[1]=str[11]*16+str[12];
- InitTime[0]=str[13]*16+str[14];
- write();
- }
- }
- }
- ir()
- {
- uint8 i;
- for(i=0;i<56;i++)
- {
- P0=~hwm[2*i];
- P2=~hwm[2*i+1];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- dis1(Dig_data[0]);
- dis1(Dig_data[1]);
- dis1(Dig_data[2]);
- dis1(Dig_data[3]);
- DelayUs(300);
- for(i=0;i<72;i++)
- {
- P0=~hzh[2*i];
- P2=~hzh[2*i+1];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
-
- }
- dis4()
- {
- uint8 i;
- rs++;
-
- for(i=0;i<32;i++)
- {
- P0=~zs[2*i];
- P2=~zs[2*i+1];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- dis1(last/10%10);
- dis1(last%10);
- for(i=0;i<24;i++)
- {
- P0=~zs[2*i+64];
- P2=~zs[2*i+65];
-
- DelayUs(speed);
- P2=0XFF;
- P0=0XFF;
- }
- read();
- if(psec!=str[14])
- {
- psec=str[14];
- last=rs;
- rs=0;
- }
- }
- wz()
- {
- uint16 i;
- j=j+s;
- if(j>1860)
- {
- j=0 ;
- }
- for(i=j;i<l+j;i++)
- {
- P0=~wz3[i*2];
- P2=~wz3[i*2+1];
- DelayUs(speed);
- P0=0XFF;
- P2=0XFF;
-
- }
- }
- ts1()
- {
- dis1(str[0]);
- dis1(str[1]);
- dis1(str[2]);
- dis1(str[3]);
- dis3(0);
- dis1(str[4]);
- dis1(str[5]);
- dis3(1);
- dis1(str[6]);
- dis1(str[7]);
- dis3(2);
- dis0(21,21);
- dis3(3);
- dis3(4);
- dis3(str[8]+4);
- dis0(21,21);
- dis0(21,21);
- dis1(str[9]);
- dis1(str[10]);
- dis1(16);
- dis1(str[11]);
- dis1(str[12]);
- dis1(16);
- dis1(str[13]);
- dis1(str[14]);
- dis0(21,21);
- dis0(21,21);
- dis0(21,21);
- dis0(21,21);
- }
- time()
- {
- if(ts==0)
- {
- dis0(str[0],21);
- dis0(str[1],21);
- dis0(str[2],21);
- dis0(str[3],str[9]);
- dis0(16,str[10]);
- dis0(str[4],17);
- dis0(str[5],str[11]);
- dis0(16,str[12]);
- dis0(str[6],17);
- dis0(str[7],str[13]);
- dis0(21,str[14]);
- dis0(18,21);
- dis0(19,21);
- dis0(19,21);
- dis0(20,21);
- dis0(17,21);
- dis0(str[8],21);
- dis0(21,21);
- dis0(21,21);
- }
- if(ts==1)
- {
- ts1();
- }
- if(ts==2)
- {
- dis1(str[9]);
- dis1(str[10]);
- dis1(16);
- dis1(str[11]);
- dis1(str[12]);
- dis1(16);
- dis1(str[13]);
- dis1(str[14]);
- dis0(21,21);
- dis0(21,21);
- dis0(21,21);
- dis0(21,21);
- }
- }
- read()
- {
- unsigned char i;
-
- unsigned char time[8]; //当前时间数组
- for (i=0; i<7; i++) //读取DS1302当前时间
- {
- time[i] = DS1302SingleRead(i);
- }
-
- str[0] = 2; //添加年份的高2位:20
- str[1] = 0;
- str[2] = (time[6] >> 4) ; //“年”高位数字转换为ASCII码
- str[3] = (time[6]&0x0F) ; //“年”低位数字转换为ASCII码
-
- str[4] = (time[4] >> 4) ; //“月”
- str[5] = (time[4]&0x0F) ;
-
- str[6] = (time[3] >> 4) ; //“日”
- str[7] = (time[3]&0x0F) ;
-
-
-
- str[8] = (time[5]&0x0F) ; //“星期”
-
-
-
- str[9] = (time[2] >> 4) ; //“时”
- str[10] = (time[2]&0x0F) ;
-
- str[11] = (time[1] >> 4) ; //“分”
- str[12] = (time[1]&0x0F) ;
-
- str[13] = (time[0] >> 4) ; //“秒”
- str[14] = (time[0]&0x0F) ;
-
-
-
-
- }
- dis5()
- {
- dis1(xz/10000%10);
- dis1(xz/1000%10);
- dis1(xz/100%10);
- dis1(xz/10%10);
- dis1(xz%10);
- }
- void exint0() interrupt 0 //INT0中断入口
- {
- xz++;
- DelayUs(2*tmp);
- tmp=tmp+3*speed2;
- if(tmp>fw)
- {
- tmp=0;
- }
- if(led0==0)
- {
- P0=0;
- P2=0;
- led=0;
- DelayUs(speed);
- P0=0XFF;
- P2=0XFF;
- DelayUs(speed);
- }
- if(led0==1)
- {
- led=0;
- }
- if(led0==2)
- {
- P0=0;
- P2=0;
- led=0;
- DelayUs(speed);
- P0=0XFF;
- P2=0XFF;
- DelayUs(speed);
- }
- if(led0==3)
- {
- led=1;
- }
- switch(fun)
- {
- case 0:wz();break;
- case 1:read();time();break;
- case 2:ir();break;
- case 3:dis2(type);break;
- case 4:dis4();break;
- case 5:dis0(21,1);dis0(21,3);dis0(21,7);dis0(21,4);dis0(22,3);dis0(22,4);dis0(21,2);dis0(21,9);dis0(21,6);dis0(21,3);break;
- case 6:type=2;P0=0X00;P2=0X00;delay(10*speed);break;
- case 7:dis5();break;
- case 10:settime();break;
- }
- if(led0==2)
- {
- P0=0;
- P2=0;
-
- DelayUs(speed);
- P0=0XFF;
- P2=0XFF;
- }
- if(led0==0)
- {
- P0=0;
- P2=0;
-
- DelayUs(speed);
- P0=0XFF;
- P2=0XFF;
- led=1;
-
- }
-
- }
- /***********************************
- *函数名称:void Int0_isr (void) interrupt 0
- *函数功能:外部中断0中断服务程序
- *参数说明:无
- *返回说明:无
- *其它说明:无
- ***********************************/
- void Int0_isr (void) interrupt 2
- {
- Infrared_Time=TH1*256+TL1; //中断间隔时长
- TH1=0;
- TL1=0; //定时计数器重新清零
- if (Infrared_Step==0)
- {
- if ((Infrared_Time>12000)&&(Infrared_Time<17000)) //起始码 先确定一个大范围 然后逐次逼近
- {
- Infrared_Step=1;
- }
- else
- {
- Infrared_Step=0;
- }
- }
- else if (Infrared_Step==1)
- {
- if ((Infrared_Time>1450)&&(Infrared_Time<3000)) //红外编码为比特1 的时间
- {
- Infrared_Code[Infrared_Num/8]<<=1;
- Infrared_Code[Infrared_Num/8]|=0x01;
- Infrared_Num++;
- }
- else if((Infrared_Time>700)&&(Infrared_Time<1450))//红外编码为比特0的时间
- {
- Infrared_Code[Infrared_Num/8]<<=1;
- Infrared_Code[Infrared_Num/8]&=0xfe;
- Infrared_Num++;
- }
-
- if (Infrared_Num>=32)
- {
- Infrared_Num=0;
- Infrared_Step=0;
- if (Infrared_Code[2]==~Infrared_Code[3])
- {
- Infrared_Flag=1;
- Dig_data[0]=Infrared_Code[2]>>4;
- Dig_data[1]=Infrared_Code[2]&0x0f;
- Dig_data[2]=Infrared_Code[3]>>4;
- Dig_data[3]=Infrared_Code[3]&0x0f;
- if(Dig_data[0]==11&&Dig_data[1]==0&&Dig_data[2]==4&&Dig_data[3]==15)
- {
- l=170,s=1; speed =8; ts=0;speed2=0;fw=600;tmp=0;
-
-
- }
-
- if(Dig_data[0]==9&&Dig_data[1]==0&&Dig_data[2]==6&&Dig_data[3]==15)
- {
-
- fun++;if(fun>7&&fun!=10){fun=0;}
-
-
- }
- }
- }
- }
- else
- {
- Infrared_Step=0;
- }
- }
- /****** 红外解码代码 end ******/
- /***********************************
- *函数名称:void Sys_Init(void)
- *函数功能:上电初始化
- *参数说明:无
- *返回说明:无
- *其它说明:对需要的功能进行必要的初始化
- ***********************************/
- void Sys_Init(void)
- {
- INF_Init(); //红外解码初始化
- }
- /* 发送一个字节到DS1302通信总线上 */
- void DS1302ByteWrite(unsigned char dat)
- {
- unsigned char mask;
-
- for (mask=0x01; mask!=0; mask<<=1) //低位在前,逐位移出
- {
- if ((mask&dat) != 0) //首先输出该位数据
- DS1302_IO = 1;
- else
- DS1302_IO = 0;
- DS1302_CK = 1; //然后拉高时钟
- DS1302_CK = 0; //再拉低时钟,完成一个位的操作
- }
- DS1302_IO = 1; //最后确保释放IO引脚
- }
- /* 由DS1302通信总线上读取一个字节 */
- unsigned char DS1302ByteRead()
- {
- unsigned char mask;
- unsigned char dat = 0;
-
- for (mask=0x01; mask!=0; mask<<=1) //低位在前,逐位读取
- {
- if (DS1302_IO != 0) //首先读取此时的IO引脚,并设置dat中的对应位
- {
- dat |= mask;
- }
- DS1302_CK = 1; //然后拉高时钟
- DS1302_CK = 0; //再拉低时钟,完成一个位的操作
- }
- return dat; //最后返回读到的字节数据
- }
- /* 用单次写操作向某一寄存器写入一个字节,reg-寄存器地址,dat-待写入字节 */
- void DS1302SingleWrite(unsigned char reg, unsigned char dat)
- {
- DS1302_CE = 1; //使能片选信号
- DS1302ByteWrite((reg<<1)|0x80); //发送写寄存器指令
- DS1302ByteWrite(dat); //写入字节数据
- DS1302_CE = 0; //除能片选信号
- }
- /* 用单次读操作从某一寄存器读取一个字节,reg-寄存器地址,返回值-读到的字节 */
- unsigned char DS1302SingleRead(unsigned char reg)
- {
- unsigned char dat;
-
- DS1302_CE = 1; //使能片选信号
- DS1302ByteWrite((reg<<1)|0x81); //发送读寄存器指令
- dat = DS1302ByteRead(); //读取字节数据
- DS1302_CE = 0; //除能片选信号
-
- return dat;
- }
- /* DS1302初始化,如发生掉电则重新设置初始时间 */
- void InitDS1302()
- {
- unsigned char i;
-
-
- DS1302_CE = 0; //初始化DS1302通信引脚
- DS1302_CK = 0;
- i = DS1302SingleRead(0); //读取秒寄存器
- if ((i & 0x80) != 0) //由秒寄存器最高位CH的值判断DS1302是否已停止
- {
- DS1302SingleWrite(7, 0x00); //撤销写保护以允许写入数据
- for (i=0; i<7; i++) //设置DS1302为默认的初始时间
- {
- DS1302SingleWrite(i, InitTime[i]);
- }
- }
- }
- /***********************************
- *函数名称:void main(void)
- *函数功能:主函数
- *参数说明:无
- *返回说明:无
- *其它说明:整个程序的入口
- ***********************************/
- void main(void)
- {
-
- Sys_Init(); //上电初始化
- INT0 = 1;
- IT0 = 1; //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
- EX0 = 1; //使能INT0中断
- EA = 1;
- InitDS1302(); //初始化实时时钟
- while(1)
- {
-
- if (Infrared_Flag) //成功接受到红外编码并成功解码
- {
- led=~led;
- Infrared_Flag=0; //清零 防止重复进入
-
- if(Dig_data[0]==6&&Dig_data[1]==2&&Dig_data[2]==9&&Dig_data[3]==13)
- {led0++;if(led0>3){led0=0;}}
- if(Dig_data[0]==12&&Dig_data[1]==2&&Dig_data[2]==3&&Dig_data[3]==13)
- {
- if(fun!=1)
- {
- type++;if(type>5){type=0;}
- }
- if(fun==1)
- {
- fun=10;
- speed=12;
- market=15;
- setbit =0;
- }
- }
- if(Dig_data[0]==10&&Dig_data[1]==8&&Dig_data[2]==5&&Dig_data[3]==7&&type==0)
- {l=l+10;if(l>900){l=900;}}
- if(Dig_data[0]==14&&Dig_data[1]==0&&Dig_data[2]==1&&Dig_data[3]==15&&type==0)
- {l=l-10;if(l<10){l=10;}}
- if(Dig_data[0]==10&&Dig_data[1]==8&&Dig_data[2]==5&&Dig_data[3]==7&&type==1)
- {s++;if(s>20){s=20;}}
- if(Dig_data[0]==14&&Dig_data[1]==0&&Dig_data[2]==1&&Dig_data[3]==15&&type==1&&s>0)
- {s--;}
- if(Dig_data[0]==10&&Dig_data[1]==8&&Dig_data[2]==5&&Dig_data[3]==7&&type==2)
- {speed++;if(speed>100){speed=100;}}
- if(Dig_data[0]==14&&Dig_data[1]==0&&Dig_data[2]==1&&Dig_data[3]==15&&type==2&&speed>0)
- {speed--;}
-
-
- if(Dig_data[0]==9&&Dig_data[1]==8&&Dig_data[2]==6&&Dig_data[3]==7)
- {j=j+100;}
-
-
-
- if(Dig_data[0]==10&&Dig_data[1]==8&&Dig_data[2]==5&&Dig_data[3]==7&&type==3)
- {ts++;if(ts>2){ts=0;}if(ts==1){speed=2;}}
- if(Dig_data[0]==14&&Dig_data[1]==0&&Dig_data[2]==1&&Dig_data[3]==15&&type==3)
- {
- if(ts==255)
- {
- ts=2;
- }
- if(ts>0)
- {
- ts--;
- }
- if(ts==1){speed=2;}
- }
-
-
- if(Dig_data[0]==0&&Dig_data[1]==2&&Dig_data[2]==15&&Dig_data[3]==13)
- {tmp=tmp+30;if(tmp>960){speed=960;}}
- if(Dig_data[0]==2&&Dig_data[1]==2&&Dig_data[2]==13&&Dig_data[3]==13)
- {
-
- if(tmp>30)
- {
- tmp=tmp-30;
- }
- else
- {
- tmp=0;
- }
-
- }
- if(Dig_data[0]==10&&Dig_data[1]==8&&Dig_data[2]==5&&Dig_data[3]==7&&type==4)
- {speed2++;if(speed2>20){speed2=20;}}
- if(Dig_data[0]==14&&Dig_data[1]==0&&Dig_data[2]==1&&Dig_data[3]==15&&type==4&&speed2>0)
- {speed2--;}
-
-
- if(Dig_data[0]==10&&Dig_data[1]==8&&Dig_data[2]==5&&Dig_data[3]==7&&type==5)
- {fw=fw+30;if(fw>990){fw=990;}}
- if(Dig_data[0]==14&&Dig_data[1]==0&&Dig_data[2]==1&&Dig_data[3]==15&&type==5&&fw>30)
- {fw=fw-30;}
-
-
- if(Dig_data[0]==14&&Dig_data[1]==2&&Dig_data[2]==1&&Dig_data[3]==13&&fun==10)
- {setbit++;mark=10;dir=0;}
- if(Dig_data[0]==10&&Dig_data[1]==2&&Dig_data[2]==5&&Dig_data[3]==13&&fun==10&&setbit>0)
- {setbit--;mark=10;dir=1;}
- if(fun==10)
- {
- if(Dig_data[0]==6&&Dig_data[1]==8&&Dig_data[2]==9&&Dig_data[3]==7&&fun==10)
- {irdata=0; str[setbit+2]=irdata;}
- if(Dig_data[0]==3&&Dig_data[1]==0&&Dig_data[2]==12&&Dig_data[3]==15&&fun==10)
- {irdata=1; str[setbit+2]=irdata;}
- if(Dig_data[0]==1&&Dig_data[1]==8&&Dig_data[2]==14&&Dig_data[3]==7&&fun==10)
- {irdata=2; str[setbit+2]=irdata;}
- if(Dig_data[0]==7&&Dig_data[1]==10&&Dig_data[2]==8&&Dig_data[3]==5&&fun==10)
- {irdata=3; str[setbit+2]=irdata;}
- if(Dig_data[0]==1&&Dig_data[1]==0&&Dig_data[2]==14&&Dig_data[3]==15&&fun==10)
- {irdata=4; str[setbit+2]=irdata;}
- if(Dig_data[0]==3&&Dig_data[1]==8&&Dig_data[2]==12&&Dig_data[3]==7&&fun==10)
- {irdata=5; str[setbit+2]=irdata;}
- if(Dig_data[0]==5&&Dig_data[1]==10&&Dig_data[2]==10&&Dig_data[3]==5&&fun==10)
- {irdata=6; str[setbit+2]=irdata;}
-
- if(Dig_data[0]==4&&Dig_data[1]==2&&Dig_data[2]==11&&Dig_data[3]==13&&fun==10)
- {irdata=7; str[setbit+2]=irdata;}
-
- if(Dig_data[0]==4&&Dig_data[1]==10&&Dig_data[2]==11&&Dig_data[3]==5&&fun==10)
- {irdata=8; str[setbit+2]=irdata;}
-
- if(Dig_data[0]==5&&Dig_data[1]==2&&Dig_data[2]==10&&Dig_data[3]==13&&fun==10)
- {irdata=9; str[setbit+2]=irdata;}
-
- }
- }
-
- }
- }
复制代码
|