自制旋转LED时钟,遇到奇怪问题,
时间:10-02
整理:3721RD
点击:
资料是论坛的,我用的是12M的晶振,但是实际运行中,遥控器无法使用,即使使用也无法实现遥控功能,仅仅是要显示汉字变时间和日期,,
/*********************************旋转LED字体 时钟程序**************************************************
由于我们水平有限 提供的程序都是初级水平的 望大家多多指教!
需要改进的地方还很多,我们在后续中也会不断升级!
功能简介:
单片机 STC89C52 LQFP封装 22.1184M晶振
字体和数字钟程序!
红外遥控调时间和切换模式!
板上自带DS1302时钟芯片!有掉电保护!
自适应旋转速度 在电机有点转速不均匀的问题得到很好的解决 使得稳定显示
******************************************************************************************************/
//
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int //宏定义
//手动添加定时器2寄存器定义
sfr T2CON = 0xC8;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2= T2CON^0;
sbit ET2 =0xAD;
sbit KEY=P3^2;
sbit led1=P1^1;
sbit ACC0=ACC^0; //1bit数据存储位
sbit ACC7=ACC^7;
sbit T_CLK=P3^5; //DS1302引脚连接
sbit T_IO =P3^6;
sbit T_RST=P3^7;
uchar irtime;//红外用全局变量
uint TimeCount=0;
uint DelayN=80, //延时临时计数
DelayTime=80; //每次延时的周期个数
bit irokk,flag;
uchar IRcord[2];
uchar irdata[17];
uint j,k;
uchar miao,Cent,Hour,Month,Day,Week,count,id,mode;
uchar starts_time[7]={0x00,0x10,0x22,0x22,0x09,0x03,0x10}; //初始化后设置
void Set_id(uchar sel,uchar sel_1);
void display(void);
unsigned char code zimo[] = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",0*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",3*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",6*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",8*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",9*/
0x7F,0xFF,0xBF,0xFF,0x0F,0x80,0xD3,0xFF,0xBC,0xEF,0xDF,0xF3,0x67,0xFC,0xF0,0xDE,0xF5,0xBF,0x17,0xC0,0xF7,0xFF,0x77,0xFF,0xD7,0xFC,0xE3,0xE3,0xF7,0xF7,0xFF,0xFF,/*"你",0*/
0xFF,0xBF,0xFF,0xBF,0xFF,0xDF,0x00,0xDE,0xFE,0xEF,0xFE,0xF3,0xFE,0xFC,0x06,0xFF,0xFE,0xC0,0xFE,0xBF,0xFE,0xBF,0x00,0xBE,0xFF,0xBF,0xFF,0x87,0xFF,0xDF,0xFF,0xFF,/*"见",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",2*/
0xFF,0xFF,0xF7,0xDF,0x37,0xDC,0xB7,0xDD,0xB7,0xAD,0xB7,0xAD,0x37,0xD4,0xF7,0xDF,0xF7,0xEF,0x00,0xF6,0xF7,0xF9,0xF5,0xE5,0x73,0xDE,0x77,0x87,0xFF,0xFF,0xFF,0xFF,/*"或",3*/
0xFF,0xFB,0xDF,0xFB,0xDB,0xFB,0xDB,0xFD,0xDB,0xFD,0xDB,0x00,0x5B,0xB6,0x40,0xB6,0x9B,0xB6,0xDB,0xB6,0xCB,0xB6,0xD7,0xB6,0xD9,0x00,0xDB,0xFF,0xDF,0xFF,0xFF,0xFF,/*"者",4*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",5*/
0xFF,0xBF,0xFF,0xBF,0xFF,0xDF,0x00,0xDE,0xFE,0xEF,0xFE,0xF3,0xFE,0xFC,0x06,0xFF,0xFE,0xC0,0xFE,0xBF,0xFE,0xBF,0x00,0xBE,0xFF,0xBF,0xFF,0x87,0xFF,0xDF,0xFF,0xFF,/*"见",6*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",8*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",9*/
0xFB,0xDF,0x1B,0xEE,0xDB,0xB2,0xDA,0x7E,0xD9,0x80,0xDB,0xFA,0x1B,0xA6,0xDB,0xDF,0xDF,0xE7,0x1F,0xF8,0xC0,0xFF,0x1F,0xC0,0xDD,0xBF,0xD3,0xBF,0xDF,0x8F,0xFF,0xFF,/*"就",10*/
0xFF,0xFB,0xFB,0xFD,0xFB,0xFE,0x3B,0x80,0x9B,0xFF,0x63,0xDF,0x78,0xDF,0x7B,0xDF,0x7B,0xDF,0x1B,0xC0,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0xFB,0xDF,0xFF,0xFF,/*"在",11*/
0xFF,0xDF,0x6D,0xEF,0x6D,0xF3,0x01,0xFC,0x6D,0xDF,0x6D,0xBF,0x01,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xDD,0xFB,0xA5,0xF7,0x79,0xF7,0xFD,0xF8,0xFF,0xFF,/*"那",12*/
0xFF,0xBF,0xFF,0xBF,0x00,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0x80,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0xBB,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF,/*"里",13*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",14*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",15*/
0xFF,0xFF,0xBB,0xDF,0xAB,0xC7,0xAB,0xFF,0xAB,0xC3,0x00,0xBE,0xFF,0xBF,0xFF,0xBD,0xFF,0xB3,0x00,0xBE,0xAB,0xBF,0xAB,0x8F,0xAB,0xFF,0xBB,0xF7,0xBF,0xCF,0xFF,0xFF,/*"悲",16*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",17*/
0xFF,0xFD,0xFD,0xFD,0xF5,0xFD,0x15,0x85,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x50,0xB5,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x15,0x85,0xF5,0xFD,0xFD,0xFD,0xFF,0xFD,0xFF,0xFF,/*"喜",18*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xC4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*";",19*/
0x7F,0xFF,0xBF,0xFF,0x0F,0x80,0xD3,0xFF,0xBC,0xEF,0xDF,0xF3,0x67,0xFC,0xF0,0xDE,0xF5,0xBF,0x17,0xC0,0xF7,0xFF,0x77,0xFF,0xD7,0xFC,0xE3,0xE3,0xF7,0xF7,0xFF,0xFF,/*"你",20*/
0xFF,0xFF,0xBF,0xBF,0xBF,0xC7,0xDF,0xFF,0xAF,0x87,0xB7,0xBF,0xBB,0xBD,0xAC,0xBB,0x9B,0xA5,0xB7,0xBE,0x2F,0xBF,0xEF,0x8F,0xDF,0xF7,0x9F,0xEF,0xDF,0xCF,0xFF,0xFF,/*"念",21*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",22*/
0xFF,0xFF,0xF7,0xDF,0x37,0xDC,0xB7,0xDD,0xB7,0xAD,0xB7,0xAD,0x37,0xD4,0xF7,0xDF,0xF7,0xEF,0x00,0xF6,0xF7,0xF9,0xF5,0xE5,0x73,0xDE,0x77,0x87,0xFF,0xFF,0xFF,0xFF,/*"或",23*/
0xFF,0xFB,0xDF,0xFB,0xDB,0xFB,0xDB,0xFD,0xDB,0xFD,0xDB,0x00,0x5B,0xB6,0x40,0xB6,0x9B,0xB6,0xDB,0xB6,0xCB,0xB6,0xD7,0xB6,0xD9,0x00,0xDB,0xFF,0xDF,0xFF,0xFF,0xFF,/*"者",24*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",25*/
0xFF,0xFF,0xBF,0xBF,0xBF,0xC7,0xDF,0xFF,0xAF,0x87,0xB7,0xBF,0xBB,0xBD,0xAC,0xBB,0x9B,0xA5,0xB7,0xBE,0x2F,0xBF,0xEF,0x8F,0xDF,0xF7,0x9F,0xEF,0xDF,0xCF,0xFF,0xFF,/*"念",26*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",27*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",28*/
0x8F,0xFF,0xFF,0xFF,0x00,0x00,0xF7,0xFF,0xAF,0xFF,0xBB,0xFF,0xAB,0x00,0xAB,0xEA,0xAB,0xEA,0x80,0xEA,0xAB,0xAA,0xAB,0x6A,0xAB,0x80,0xBB,0xFF,0xBF,0xFF,0xFF,0xFF,/*"情",29*/
0xFB,0xDF,0x1B,0xEE,0xDB,0xB2,0xDA,0x7E,0xD9,0x80,0xDB,0xFA,0x1B,0xA6,0xDB,0xDF,0xDF,0xE7,0x1F,0xF8,0xC0,0xFF,0x1F,0xC0,0xDD,0xBF,0xD3,0xBF,0xDF,0x8F,0xFF,0xFF,/*"就",30*/
0xFF,0xFB,0xFB,0xFD,0xFB,0xFE,0x3B,0x80,0x9B,0xFF,0x63,0xDF,0x78,0xDF,0x7B,0xDF,0x7B,0xDF,0x1B,0xC0,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0xFB,0xDF,0xFF,0xFF,/*"在",31*/
0xFF,0xDF,0x6D,0xEF,0x6D,0xF3,0x01,0xFC,0x6D,0xDF,0x6D,0xBF,0x01,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xDD,0xFB,0xA5,0xF7,0x79,0xF7,0xFD,0xF8,0xFF,0xFF,/*"那",32*/
0xFF,0xBF,0xFF,0xBF,0x00,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0x80,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0xBB,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF,/*"里",33*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",34*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",35*/
0xFF,0xDF,0x7F,0xDF,0x7B,0xEF,0x7B,0xEF,0x6B,0xF7,0x5B,0xFB,0x3B,0xFD,0x00,0x00,0x7B,0xFE,0x3B,0xFD,0x4B,0xFB,0x6B,0xF7,0x7B,0xE7,0x7B,0xCF,0x7F,0xEF,0xFF,0xFF,/*"来",36*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",37*/
0xFF,0xFF,0xFF,0xFE,0xF7,0xDE,0xF7,0x8E,0xF7,0xD6,0xF7,0xDA,0xF7,0xD8,0x00,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xD6,0xF7,0x8E,0xF7,0xDE,0xF7,0xFE,0xFF,0xFE,0xFF,0xFF,/*"去",38*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xC4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*";",39*/
0x7F,0xFF,0xBF,0xFF,0x0F,0x80,0xD3,0xFF,0xBC,0xEF,0xDF,0xF3,0x67,0xFC,0xF0,0xDE,0xF5,0xBF,0x17,0xC0,0xF7,0xFF,0x77,0xFF,0xD7,0xFC,0xE3,0xE3,0xF7,0xF7,0xFF,0xFF,/*"你",0*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",2*/
0xFF,0xFF,0xF7,0xDF,0x37,0xDC,0xB7,0xDD,0xB7,0xAD,0xB7,0xAD,0x37,0xD4,0xF7,0xDF,0xF7,0xEF,0x00,0xF6,0xF7,0xF9,0xF5,0xE5,0x73,0xDE,0x77,0x87,0xFF,0xFF,0xFF,0xFF,/*"或",3*/
0xFF,0xFB,0xDF,0xFB,0xDB,0xFB,0xDB,0xFD,0xDB,0xFD,0xDB,0x00,0x5B,0xB6,0x40,0xB6,0x9B,0xB6,0xDB,0xB6,0xCB,0xB6,0xD7,0xB6,0xD9,0x00,0xDB,0xFF,0xDF,0xFF,0xFF,0xFF,/*"者",4*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",5*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",6*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",8*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",9*/
0xFB,0xDF,0x1B,0xEE,0xDB,0xB2,0xDA,0x7E,0xD9,0x80,0xDB,0xFA,0x1B,0xA6,0xDB,0xDF,0xDF,0xE7,0x1F,0xF8,0xC0,0xFF,0x1F,0xC0,0xDD,0xBF,0xD3,0xBF,0xDF,0x8F,0xFF,0xFF,/*"就",10*/
0xFF,0xFB,0xFB,0xFD,0xFB,0xFE,0x3B,0x80,0x9B,0xFF,0x63,0xDF,0x78,0xDF,0x7B,0xDF,0x7B,0xDF,0x1B,0xC0,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0xFB,0xDF,0xFF,0xFF,/*"在",11*/
0xFF,0xDF,0x6D,0xEF,0x6D,0xF3,0x01,0xFC,0x6D,0xDF,0x6D,0xBF,0x01,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xDD,0xFB,0xA5,0xF7,0x79,0xF7,0xFD,0xF8,0xFF,0xFF,/*"那",12*/
0xFF,0xBF,0xFF,0xBF,0x00,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0x80,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0xBB,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF,/*"里",13*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",14*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",15*/
0xEF,0xF7,0xEF,0xE7,0x00,0xF0,0xEF,0xFB,0xEF,0xFB,0xFF,0xFF,0x06,0xFF,0x75,0x01,0x51,0xB5,0x37,0xB5,0x07,0xB5,0x33,0xB5,0x54,0xB5,0x75,0x01,0x07,0xFF,0xFF,0xFF,/*"增",16*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",17*/
0xFF,0xFD,0xFD,0xA0,0x13,0xDF,0xFF,0xE7,0x07,0xF8,0xD7,0xFF,0xD7,0xE0,0xD7,0xB6,0xD7,0xA0,0xD7,0xDF,0x00,0xEC,0xF7,0xF3,0x75,0xEC,0x13,0xDF,0xB7,0x87,0xFF,0xFF,/*"减",18*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xC4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*";",19*/
0xFF,0x8B,0x41,0xFB,0x55,0xEB,0x4D,0x9B,0x01,0xEC,0x4D,0x9D,0x55,0xAD,0x41,0xDD,0xDF,0xEF,0xDF,0xF3,0x00,0xFC,0xDF,0xF3,0xDB,0xCF,0xC7,0x9F,0xDF,0xDF,0xFF,0xFF,/*"默",0*/
0x7F,0xFF,0xBF,0x37,0x8F,0x8B,0x63,0xFD,0xD8,0xEE,0x3B,0x9B,0xCB,0x3B,0xE3,0xFD,0x6F,0xEE,0x80,0x9F,0x2F,0x3F,0xED,0xFE,0xE3,0xED,0xEF,0x99,0xEF,0x3D,0xFF,0xFF,/*"然",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xEF,0xFB,0xEF,0xFC,0x2F,0xFF,0x00,0x00,0xCF,0xFF,0xAF,0xFF,0x6F,0xFE,0xFF,0xFF,0x01,0x00,0xDD,0xBD,0xDD,0xBD,0xDD,0xBD,0xDD,0xBD,0x01,0x00,0xFF,0xFF,0xFF,0xFF,/*"相",3*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xDF,0xE7,0xEE,0xFB,0xB2,0xFB,0x7E,0x03,0x80,0xDB,0xFA,0xDB,0x46,0xDA,0xAE,0x39,0xDF,0xDB,0xEC,0xDB,0xF3,0xDB,0xED,0x1B,0xDE,0xF3,0x3F,0xFB,0xBF,0xFF,0xFF,/*"寂",6*/
0xDD,0xFF,0x55,0x00,0x55,0xF5,0x40,0xB5,0x55,0x75,0x55,0x80,0xDD,0xFF,0x7F,0xFF,0x57,0xBD,0x58,0x7D,0x0B,0x80,0x53,0xFD,0x5B,0xFD,0x1F,0xFC,0x7F,0xFF,0xFF,0xFF,/*"静",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",8*/
0xEB,0xDF,0xDB,0xEF,0xBB,0xB3,0x7B,0xBC,0x9B,0xBC,0xE3,0xD3,0xDF,0xDF,0xE7,0xEF,0xF0,0xF3,0x17,0xFC,0xF7,0xF9,0xF7,0xE7,0xD7,0xCF,0xE7,0x9F,0xF7,0xDF,0xFF,0xFF,/*"欢",9*/
0xFF,0xFD,0xFD,0xFD,0xF5,0xFD,0x15,0x85,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x50,0xB5,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x15,0x85,0xF5,0xFD,0xFD,0xFD,0xFF,0xFD,0xFF,0xFF,/*"喜",10*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",0*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",3*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
};
const uchar code tab[11][16]={
0xFF,0xFF,0x03,0xFE,0xFD,0xFD,0xFE,0xFB,0xFE,0xFB,0xFD,0xFD,0x03,0xFE,0xFF,0xFF,/*"0",0*/
0xFF,0xFF,0xFD,0xFB,0xFD,0xFB,0x00,0xF8,0xFF,0xFB,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,/*"1",1*/
0xFF,0xFF,0xF1,0xF9,0xFE,0xFA,0x7E,0xFB,0xBE,0xFB,0xCE,0xFB,0xF1,0xF9,0xFF,0xFF,/*"2",2*/
0xFF,0xFF,0xF9,0xFC,0xFE,0xFB,0xEE,0xFB,0xEE,0xFB,0xD6,0xFD,0x39,0xFE,0xFF,0xFF,/*"3",3*/
0xFF,0xFF,0x1F,0xFF,0x67,0xFF,0x7B,0xFB,0x7D,0xFB,0x00,0xF8,0x7F,0xFB,0xFF,0xFF,/*"4",4*/
0xFF,0xFF,0xC0,0xFC,0xDE,0xFB,0xEE,0xFB,0xEE,0xFB,0xDE,0xFD,0x3E,0xFE,0xFF,0xFF,/*"5",5*/
0xFF,0xFF,0x03,0xFE,0xDD,0xFD,0xEE,0xFB,0xEE,0xFB,0xDC,0xFD,0x3F,0xFE,0xFF,0xFF,/*"6",6*/
0xFF,0xFF,0xF8,0xFF,0xFE,0xFF,0x1E,0xF8,0xE6,0xFF,0xF8,0xFF,0xFE,0xFF,0xFF,0xFF,/*"7",7*/
0xFF,0xFF,0x71,0xFC,0xAE,0xFB,0xDE,0xFB,0xDE,0xFB,0xAE,0xFB,0x71,0xFC,0xFF,0xFF,/*"8",8*/
0xFF,0xFF,0xE3,0xFF,0xDD,0xF9,0xBE,0xFB,0xBE,0xFB,0xDD,0xFD,0x03,0xFE,0xFF,0xFF,/*"9",9*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x99,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"两个点"*/
};
const uchar code tab1[11][16]={
0xFF,0xFF,0xFE,0x03,0xFD,0xFD,0xFB,0xFE,0xFB,0xFE,0xFD,0xFD,0xFE,0x03,0xFF,0xFF,/*"0",0*/
0xFF,0xFF,0xFD,0xFE,0xFD,0xFE,0xF8,0x00,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,/*"1",1*/
0xFF,0xFF,0xFC,0x7C,0xFB,0xFA,0xFB,0xF6,0xFB,0xEE,0xFB,0x9E,0xFC,0x7C,0xFF,0xFF,/*"2",2*/
0xFF,0xFF,0xFC,0xF9,0xFB,0xFE,0xFB,0xBE,0xFB,0xBE,0xFB,0x5D,0xFC,0xE3,0xFF,0xFF,/*"3",3*/
0xFF,0xFF,0xFF,0xC7,0xFF,0x37,0xFE,0xF6,0xFD,0xF6,0xF8,0x00,0xFF,0xF6,0xFF,0xFF,/*"4",4*/
0xFF,0xFF,0xF8,0x19,0xFB,0xDE,0xFB,0xBE,0xFB,0xBE,0xFB,0xDD,0xFB,0xE3,0xFF,0xFF,/*"5",5*/
0xFF,0xFF,0xFE,0x03,0xFD,0xDD,0xFB,0xBE,0xFB,0xBE,0xF9,0xDD,0xFF,0xE3,0xFF,0xFF,/*"6",6*/
0xFF,0xFF,0xF8,0xFF,0xFB,0xFF,0xFB,0xC0,0xFB,0x3F,0xF8,0xFF,0xFB,0xFF,0xFF,0xFF,/*"7",7*/
0xFF,0xFF,0xFC,0x71,0xFB,0xAE,0xFB,0xDE,0xFB,0xDE,0xFB,0xAE,0xFC,0x71,0xFF,0xFF,/*"8",8*/
0xFF,0xFF,0xFE,0x3F,0xFD,0xDC,0xFB,0xEE,0xFB,0xEE,0xFD,0xDD,0xFE,0x03,0xFF,0xFF,/*"9",9*/
0xFF,0xFF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFF,/*"-",10*/
};
/******************************************************************************************/
/*********延时子程序**********/
void DelayUs(uchar n)
{
for(;n>0;n--){
DelayN=DelayTime;
while (DelayN);
}
}
/**************************************************/
void tim1_isr (void) interrupt 3 using 3//定时器1中断服务函数
{
irtime++;
}
//外部中断解码程序
void ex1_isr (void) interrupt 2 using 2//外部中断1服务函数
{
static unsigned char i,w,z;
static bit startflag;
if(startflag)
{
if(irtime<126&&irtime>=69)//引导码 TC9012的头码 63 33
{ i=0;
w=1;
z=0;
irdata[i]=irtime;
irtime=0;
}
z++;
if(z>=18)
{
irdata[w]=irtime;
irtime=0;
w++;
if(w==17)
{
irokk=1;
w=0;
}
}
else
irtime=0;
}
else
{irtime=0;startflag=1;}
}
/************************************************/
void Ircordpro(void)//红外码值处理函数
{
unsigned char i, j, k;
unsigned char cord,value;
k=1;
for(i=0;i<2;i++)//处理2个字节
{
for(j=1;j<=8;j++) //处理1个字节8位
{
cord=irdata[k];
if(cord>10)//大于某值为1 7
{
value=value|0x80;
}
else
{
value=value;
}
if(j<8)
{
value=value>>1;
}
k++;
}
IRcord[i]=value;
value=0;
}
}
/****************************************************************/
//定时器0
void t2(void) interrupt 5 //定时器2中断子程序
{
TF2=0;
count++;
if(count>10)
{
count=0;
flag=~flag;
}
}
/**************************************************************/
void timer0() interrupt 1 using 1 //定时器0中断子程序
{
TimeCount++;
if (DelayN!=0)
DelayN--;
}
/*******************DS1302读写程序**********************************
/********************************************************************
函 数 名:RTInputByte()
功 能:实时时钟写入一字节
说 明:往DS1302写入1Byte数据 (内部函数)
入口参数:d 写入的数据
返 回 值:无
***********************************************************************/
void RTInputByte(uchar d)
{
uchar h;
ACC = d;
for(h=8; h>0; h--)
{
T_IO = ACC0; /*相当于汇编中的 RRC */
T_CLK = 1;
T_CLK = 0;
ACC = ACC >> 1;
}
}
/********************************************************************
函 数 名:RTOutputByte()
功 能:实时时钟读取一字节
说 明:从DS1302读取1Byte数据 (内部函数)
入口参数:无
返 回 值:ACC
设 计:zhaojunjie 日 期:2002-03-19
修 改: 日 期:
***********************************************************************/
uchar RTOutputByte(void)
{
uchar h;
for(h=8; h>0; h--)
{
ACC = ACC >>1; /*相当于汇编中的 RRC */
ACC7 = T_IO;
T_CLK = 1;
T_CLK = 0;
}
return(ACC);
}
/********************************************************************
函 数 名:W1302()
功 能:往DS1302写入数据
说 明:先写地址,后写命令/数据 (内部函数)
调 用:RTInputByte() , RTOutputByte()
入口参数:ucAddr: DS1302地址, ucData: 要写的数据
返 回 值:无
***********************************************************************/
void W1302(uchar ucAddr, uchar ucDa)
{
T_RST = 0;
T_CLK = 0;
T_RST = 1;
RTInputByte(ucAddr); /* 地址,命令 */
RTInputByte(ucDa); /* 写1Byte数据*/
T_CLK = 1;
T_RST = 0;
}
/********************************************************************
函 数 名:R1302()
功 能:读取DS1302某地址的数据
说 明:先写地址,后读命令/数据 (内部函数)
调 用:RTInputByte() , RTOutputByte()
入口参数:ucAddr: DS1302地址
返 回 值:ucData :读取的数据
***********************************************************************/
uchar R1302(uchar ucAddr)
{
uchar ucData;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
RTInputByte(ucAddr); /* 地址,命令 */
ucData = RTOutputByte(); /* 读1Byte数据 */
T_CLK = 1;
T_RST = 0;
return(ucData);
}
/********************************************************************
函 数 名:Set1302()
功 能:设置初始时间
说 明:先写地址,后读命令/数据(寄存器多字节方式)
调 用:W1302()
入口参数:pClock: 设置时钟数据地址 格式为: 秒 分 时 日 月 星期 年
7Byte (BCD码)1B 1B 1B 1B 1B 1B 1B
返 回 值:无
***********************************************************************/
void Set1302(uchar *pClock)
{
uchar h;
uchar ucAddr = 0x80;
W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/
for(h =7; h>0; h--)
{
W1302(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 */
pClock++;
ucAddr +=2;
}
W1302(0xc0,0x01);
W1302(0XC2,0X03); //初始自动转换显示时间为3秒。
W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/
}
/******************读取DS1302中的时间****************/
void du1302()
{
miao=R1302(0x81); //对取 秒 分 时 日 月 星期 年
Cent=R1302(0x83);
Hour=R1302(0x85);
Day=R1302(0x87);
Month=R1302(0x89);
Week=R1302(0x8b);
}
/*****************************************************/
//根据选择调整相应项目
void Set_id(uchar sel,uchar sel_1)
{
signed char time;
uchar max,min,address;
if(sel==1) {address=0x84; max=23;min=0;} //小时
if(sel==2) {address=0x82; max=59;min=0;} //分钟
if(sel==3) {address=0x88; max=12;min=1;} //月
if(sel==4) {address=0x86; max=31;min=1;} //日
if(sel==5) {address=0x8a; max=7;min=1;} //星期
time=R1302(address+1)/16*10+R1302(address+1)%16;
if (sel_1==0) time++; else time--;
if(time>max) time=min;
if(time<min) time=max;
W1302(0x8e,0x00);
W1302(address,time/10*16+time%10);
W1302(0x8e,0x80);
}
/*********************************************************/
//加减键与显示
void id_case1_key(void)
{
if (IRcord[0]==0x0A)
{
IRcord[0]=0x00;
Set_id(id,0);
}
if (IRcord[0]==0x09)
{
IRcord[0]=0x00;
Set_id(id,1);
}
}
/*****************************************************/
//按键扫描 显示时间及闪烁位选择
void Scan_Key(void)
{
if(IRcord[0]==0x0E)
{
IRcord[0]=0x00;
id++;
if(id>5)
id=0;
}
id_case1_key();
}
/***********************************************************/
void display(void)
{
uchar i;
/******************显示时分秒数据**************************/
if((flag==1)&&(id==1)) //实现调时 的闪烁位 (以下同)
{
for(i=0;i<8;i++) //这里用16个LED实现时间显示(以下同)
{
P2=0xFF; //时的十位不显示(亮灭的结合就实现了闪烁)
P0=0XFF;
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=0XFF;
P2=0XFF; //时的个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=0;i<8;i++) //这里用8个LED实现时间显示
{
P0=tab[Hour/16][i*2]; //时的十位
P2=tab[Hour/16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=tab[Hour%16][i*2]; //时的个位
P2=tab[Hour%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
for(i=0;i<8;i++)
{
P0=tab[10][i*2]; //显示两点
P2=tab[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/******************************************************/
if((flag==1)&&(id==2))
{
for(i=0;i<8;i++)
{
P0=0XFF;
P2=0XFF; //分的十位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=0XFF;
P2=0XFF; //分的个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=0;i<8;i++)
{
P0=tab[Cent/16][i*2]; //分的十位
P2=tab[Cent/16][i*2+1];
DelayUs(1);
}
P2=0XFF;
P0=0XFF;
for(i=0;i<8;i++)
{
P0=tab[Cent%16][i*2]; //分的个位
P2=tab[Cent%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
for(i=0;i<8;i++) //显示两点
{
P0=tab[10][i*2];
P2=tab[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/***********************************************/
for(i=0;i<8;i++)
{
P0=tab[miao/16][i*2]; //秒的十位
P2=tab[miao/16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=tab[miao%16][i*2]; //秒的个位
P2=tab[miao%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/*********************显示月日数据***************************/
DelayUs(25); //这里延时的作用是 把日期与时间拉开距离
/******************显示星期数据******************************/
if((flag==1)&&(id==5))
{
for(i=8;i>0;i--)
{
P0=0xFF; //星期值不显示
P2=0xFF;
DelayUs(1);
}
P0=0xFF; //星期值不显示
P2=0xFF;
}
else
{
for(i=8;i>0;i--)
{
P2=tab1[Week][i*2]; //星期值
P0=tab1[Week][i*2+1];
DelayUs(1);
}
}
P0=0xFF;
P2=0XFF;
/****************************************************/
for(i=7;i>0;i--)
{
P2=tab1[10][i*2]; //-字符
P0=tab1[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/****************************************************/
if((flag==1)&&(id==4))
{
for(i=8;i>0;i--)
{
P0=0XFF;
P2=0XFF; //日期个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=8;i>0;i--)
{
P0=0XFF; //日期十位不显示
P2=0XFF;
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=8;i>0;i--)
{
P2=tab1[Day%16][i*2]; //日期个位
P0=tab1[Day%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=8;i>0;i--)
{
P2=tab1[Day/16][i*2]; //日期十位
P0=tab1[Day/16][i*2+1];
DelayUs(1);
}
}
P0=0XFF;
P2=0XFF;
/******************************************/
for(i=7;i>0;i--)
{
P2=tab1[10][i*2]; //-字符
P0=tab1[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
if((flag==1)&&(id==3))
{
for(i=8;i>0;i--)
{
P0=0XFF;
P2=0XFF; //月的个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=8;i>0;i--)
{
P0=0XFF;
P2=0XFF; //月的十位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=8;i>0;i--)
{
P2=tab1[Month%16][i*2]; //月的个位
P0=tab1[Month%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
for(i=8;i>0;i--)
{
P2=tab1[Month/16][i*2]; //月的十位
P0=tab1[Month/16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
/***********************************************************/
/*****主函数*****/
void main(void)
{
TMOD=0x22;//定时器0工作方式2 定时器1工作方式2,TH0是重装值,TL0是初值
TH0=0x80; //设定定时器0初值
TL0=0x80;
TR0=1;
ET0=1;
TH1=0x00;//reload value
TL1=0x00;//initial value
ET1=1;//开中断
TR1=1;
RCAP2H = 0x3C; //定时器2 定时50MS
RCAP2L = 0x0B0;
ET2 = 1;
TR2=1;
//外部中断
IT1 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.3)
EX1 = 1; // Enable EX1 Interrupt
EA = 1; //开总中断
led1=0;
mode=2;
while(1) //无限循环
{
if(irokk==1)
{
Ircordpro();
irokk=0;
}
if(IRcord[0]==0x1A)//红外遥控的按键值 不同的遥控器不同的按键值不同 根据实际改 以下按键功能相同
{
Set1302(starts_time); //初始化
W1302(0x8e,0x00); //控制命令,WP=0,写操作
W1302(0x90,0xa5); //打开充电二级管 一个二级管串联一个2K电阻
}
if(IRcord[0]==0x10)
{
IRcord[0]=0x00;
mode=1;
}
if(IRcord[0]==0x14)
{
IRcord[0]=0x00;
mode=2;
}
if(KEY==0) //这里就不用中断0了
{
DelayTime=TimeCount/160;
TimeCount=0; //延时周期计数清零
if(mode==1)
{
du1302(); //读取 秒 分 时 日 月 星 期 年
Scan_Key();
display();
}
if(mode==2)
{
j++;
if(j>432)
{
j=0;
}
for(k=j;k<128+j;k++)
{
P0=zimo[k*2];
P2=zimo[k*2+1];
DelayUs(1);
P0=0XFF;
P2=0XFF;
}
}
}
}
}
/*****END*****/
/*********************************旋转LED字体 时钟程序**************************************************
由于我们水平有限 提供的程序都是初级水平的 望大家多多指教!
需要改进的地方还很多,我们在后续中也会不断升级!
功能简介:
单片机 STC89C52 LQFP封装 22.1184M晶振
字体和数字钟程序!
红外遥控调时间和切换模式!
板上自带DS1302时钟芯片!有掉电保护!
自适应旋转速度 在电机有点转速不均匀的问题得到很好的解决 使得稳定显示
******************************************************************************************************/
//
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int //宏定义
//手动添加定时器2寄存器定义
sfr T2CON = 0xC8;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2= T2CON^0;
sbit ET2 =0xAD;
sbit KEY=P3^2;
sbit led1=P1^1;
sbit ACC0=ACC^0; //1bit数据存储位
sbit ACC7=ACC^7;
sbit T_CLK=P3^5; //DS1302引脚连接
sbit T_IO =P3^6;
sbit T_RST=P3^7;
uchar irtime;//红外用全局变量
uint TimeCount=0;
uint DelayN=80, //延时临时计数
DelayTime=80; //每次延时的周期个数
bit irokk,flag;
uchar IRcord[2];
uchar irdata[17];
uint j,k;
uchar miao,Cent,Hour,Month,Day,Week,count,id,mode;
uchar starts_time[7]={0x00,0x10,0x22,0x22,0x09,0x03,0x10}; //初始化后设置
void Set_id(uchar sel,uchar sel_1);
void display(void);
unsigned char code zimo[] = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",0*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",3*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",6*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",8*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",9*/
0x7F,0xFF,0xBF,0xFF,0x0F,0x80,0xD3,0xFF,0xBC,0xEF,0xDF,0xF3,0x67,0xFC,0xF0,0xDE,0xF5,0xBF,0x17,0xC0,0xF7,0xFF,0x77,0xFF,0xD7,0xFC,0xE3,0xE3,0xF7,0xF7,0xFF,0xFF,/*"你",0*/
0xFF,0xBF,0xFF,0xBF,0xFF,0xDF,0x00,0xDE,0xFE,0xEF,0xFE,0xF3,0xFE,0xFC,0x06,0xFF,0xFE,0xC0,0xFE,0xBF,0xFE,0xBF,0x00,0xBE,0xFF,0xBF,0xFF,0x87,0xFF,0xDF,0xFF,0xFF,/*"见",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",2*/
0xFF,0xFF,0xF7,0xDF,0x37,0xDC,0xB7,0xDD,0xB7,0xAD,0xB7,0xAD,0x37,0xD4,0xF7,0xDF,0xF7,0xEF,0x00,0xF6,0xF7,0xF9,0xF5,0xE5,0x73,0xDE,0x77,0x87,0xFF,0xFF,0xFF,0xFF,/*"或",3*/
0xFF,0xFB,0xDF,0xFB,0xDB,0xFB,0xDB,0xFD,0xDB,0xFD,0xDB,0x00,0x5B,0xB6,0x40,0xB6,0x9B,0xB6,0xDB,0xB6,0xCB,0xB6,0xD7,0xB6,0xD9,0x00,0xDB,0xFF,0xDF,0xFF,0xFF,0xFF,/*"者",4*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",5*/
0xFF,0xBF,0xFF,0xBF,0xFF,0xDF,0x00,0xDE,0xFE,0xEF,0xFE,0xF3,0xFE,0xFC,0x06,0xFF,0xFE,0xC0,0xFE,0xBF,0xFE,0xBF,0x00,0xBE,0xFF,0xBF,0xFF,0x87,0xFF,0xDF,0xFF,0xFF,/*"见",6*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",8*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",9*/
0xFB,0xDF,0x1B,0xEE,0xDB,0xB2,0xDA,0x7E,0xD9,0x80,0xDB,0xFA,0x1B,0xA6,0xDB,0xDF,0xDF,0xE7,0x1F,0xF8,0xC0,0xFF,0x1F,0xC0,0xDD,0xBF,0xD3,0xBF,0xDF,0x8F,0xFF,0xFF,/*"就",10*/
0xFF,0xFB,0xFB,0xFD,0xFB,0xFE,0x3B,0x80,0x9B,0xFF,0x63,0xDF,0x78,0xDF,0x7B,0xDF,0x7B,0xDF,0x1B,0xC0,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0xFB,0xDF,0xFF,0xFF,/*"在",11*/
0xFF,0xDF,0x6D,0xEF,0x6D,0xF3,0x01,0xFC,0x6D,0xDF,0x6D,0xBF,0x01,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xDD,0xFB,0xA5,0xF7,0x79,0xF7,0xFD,0xF8,0xFF,0xFF,/*"那",12*/
0xFF,0xBF,0xFF,0xBF,0x00,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0x80,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0xBB,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF,/*"里",13*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",14*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",15*/
0xFF,0xFF,0xBB,0xDF,0xAB,0xC7,0xAB,0xFF,0xAB,0xC3,0x00,0xBE,0xFF,0xBF,0xFF,0xBD,0xFF,0xB3,0x00,0xBE,0xAB,0xBF,0xAB,0x8F,0xAB,0xFF,0xBB,0xF7,0xBF,0xCF,0xFF,0xFF,/*"悲",16*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",17*/
0xFF,0xFD,0xFD,0xFD,0xF5,0xFD,0x15,0x85,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x50,0xB5,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x15,0x85,0xF5,0xFD,0xFD,0xFD,0xFF,0xFD,0xFF,0xFF,/*"喜",18*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xC4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*";",19*/
0x7F,0xFF,0xBF,0xFF,0x0F,0x80,0xD3,0xFF,0xBC,0xEF,0xDF,0xF3,0x67,0xFC,0xF0,0xDE,0xF5,0xBF,0x17,0xC0,0xF7,0xFF,0x77,0xFF,0xD7,0xFC,0xE3,0xE3,0xF7,0xF7,0xFF,0xFF,/*"你",20*/
0xFF,0xFF,0xBF,0xBF,0xBF,0xC7,0xDF,0xFF,0xAF,0x87,0xB7,0xBF,0xBB,0xBD,0xAC,0xBB,0x9B,0xA5,0xB7,0xBE,0x2F,0xBF,0xEF,0x8F,0xDF,0xF7,0x9F,0xEF,0xDF,0xCF,0xFF,0xFF,/*"念",21*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",22*/
0xFF,0xFF,0xF7,0xDF,0x37,0xDC,0xB7,0xDD,0xB7,0xAD,0xB7,0xAD,0x37,0xD4,0xF7,0xDF,0xF7,0xEF,0x00,0xF6,0xF7,0xF9,0xF5,0xE5,0x73,0xDE,0x77,0x87,0xFF,0xFF,0xFF,0xFF,/*"或",23*/
0xFF,0xFB,0xDF,0xFB,0xDB,0xFB,0xDB,0xFD,0xDB,0xFD,0xDB,0x00,0x5B,0xB6,0x40,0xB6,0x9B,0xB6,0xDB,0xB6,0xCB,0xB6,0xD7,0xB6,0xD9,0x00,0xDB,0xFF,0xDF,0xFF,0xFF,0xFF,/*"者",24*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",25*/
0xFF,0xFF,0xBF,0xBF,0xBF,0xC7,0xDF,0xFF,0xAF,0x87,0xB7,0xBF,0xBB,0xBD,0xAC,0xBB,0x9B,0xA5,0xB7,0xBE,0x2F,0xBF,0xEF,0x8F,0xDF,0xF7,0x9F,0xEF,0xDF,0xCF,0xFF,0xFF,/*"念",26*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",27*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",28*/
0x8F,0xFF,0xFF,0xFF,0x00,0x00,0xF7,0xFF,0xAF,0xFF,0xBB,0xFF,0xAB,0x00,0xAB,0xEA,0xAB,0xEA,0x80,0xEA,0xAB,0xAA,0xAB,0x6A,0xAB,0x80,0xBB,0xFF,0xBF,0xFF,0xFF,0xFF,/*"情",29*/
0xFB,0xDF,0x1B,0xEE,0xDB,0xB2,0xDA,0x7E,0xD9,0x80,0xDB,0xFA,0x1B,0xA6,0xDB,0xDF,0xDF,0xE7,0x1F,0xF8,0xC0,0xFF,0x1F,0xC0,0xDD,0xBF,0xD3,0xBF,0xDF,0x8F,0xFF,0xFF,/*"就",30*/
0xFF,0xFB,0xFB,0xFD,0xFB,0xFE,0x3B,0x80,0x9B,0xFF,0x63,0xDF,0x78,0xDF,0x7B,0xDF,0x7B,0xDF,0x1B,0xC0,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0xFB,0xDF,0xFF,0xFF,/*"在",31*/
0xFF,0xDF,0x6D,0xEF,0x6D,0xF3,0x01,0xFC,0x6D,0xDF,0x6D,0xBF,0x01,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xDD,0xFB,0xA5,0xF7,0x79,0xF7,0xFD,0xF8,0xFF,0xFF,/*"那",32*/
0xFF,0xBF,0xFF,0xBF,0x00,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0x80,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0xBB,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF,/*"里",33*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",34*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",35*/
0xFF,0xDF,0x7F,0xDF,0x7B,0xEF,0x7B,0xEF,0x6B,0xF7,0x5B,0xFB,0x3B,0xFD,0x00,0x00,0x7B,0xFE,0x3B,0xFD,0x4B,0xFB,0x6B,0xF7,0x7B,0xE7,0x7B,0xCF,0x7F,0xEF,0xFF,0xFF,/*"来",36*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",37*/
0xFF,0xFF,0xFF,0xFE,0xF7,0xDE,0xF7,0x8E,0xF7,0xD6,0xF7,0xDA,0xF7,0xD8,0x00,0xDE,0xF7,0xDE,0xF7,0xDE,0xF7,0xD6,0xF7,0x8E,0xF7,0xDE,0xF7,0xFE,0xFF,0xFE,0xFF,0xFF,/*"去",38*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xC4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*";",39*/
0x7F,0xFF,0xBF,0xFF,0x0F,0x80,0xD3,0xFF,0xBC,0xEF,0xDF,0xF3,0x67,0xFC,0xF0,0xDE,0xF5,0xBF,0x17,0xC0,0xF7,0xFF,0x77,0xFF,0xD7,0xFC,0xE3,0xE3,0xF7,0xF7,0xFF,0xFF,/*"你",0*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",2*/
0xFF,0xFF,0xF7,0xDF,0x37,0xDC,0xB7,0xDD,0xB7,0xAD,0xB7,0xAD,0x37,0xD4,0xF7,0xDF,0xF7,0xEF,0x00,0xF6,0xF7,0xF9,0xF5,0xE5,0x73,0xDE,0x77,0x87,0xFF,0xFF,0xFF,0xFF,/*"或",3*/
0xFF,0xFB,0xDF,0xFB,0xDB,0xFB,0xDB,0xFD,0xDB,0xFD,0xDB,0x00,0x5B,0xB6,0x40,0xB6,0x9B,0xB6,0xDB,0xB6,0xCB,0xB6,0xD7,0xB6,0xD9,0x00,0xDB,0xFF,0xDF,0xFF,0xFF,0xFF,/*"者",4*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",5*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",6*/
0xDF,0xFB,0xDF,0xFB,0xDD,0xBD,0xDD,0x7D,0x01,0x80,0xDE,0xFE,0xDE,0xFE,0xDF,0xEF,0xDF,0xEF,0x00,0xF7,0xDF,0xF8,0xDD,0xE5,0x53,0xDE,0xDF,0xBF,0xDF,0x0F,0xFF,0xFF,/*"我",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",8*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",9*/
0xFB,0xDF,0x1B,0xEE,0xDB,0xB2,0xDA,0x7E,0xD9,0x80,0xDB,0xFA,0x1B,0xA6,0xDB,0xDF,0xDF,0xE7,0x1F,0xF8,0xC0,0xFF,0x1F,0xC0,0xDD,0xBF,0xD3,0xBF,0xDF,0x8F,0xFF,0xFF,/*"就",10*/
0xFF,0xFB,0xFB,0xFD,0xFB,0xFE,0x3B,0x80,0x9B,0xFF,0x63,0xDF,0x78,0xDF,0x7B,0xDF,0x7B,0xDF,0x1B,0xC0,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0x7B,0xDF,0xFB,0xDF,0xFF,0xFF,/*"在",11*/
0xFF,0xDF,0x6D,0xEF,0x6D,0xF3,0x01,0xFC,0x6D,0xDF,0x6D,0xBF,0x01,0xC0,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFD,0xFF,0xDD,0xFB,0xA5,0xF7,0x79,0xF7,0xFD,0xF8,0xFF,0xFF,/*"那",12*/
0xFF,0xBF,0xFF,0xBF,0x00,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0x80,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x6E,0xBB,0x00,0xBB,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF,/*"里",13*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA7,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*",",14*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",15*/
0xEF,0xF7,0xEF,0xE7,0x00,0xF0,0xEF,0xFB,0xEF,0xFB,0xFF,0xFF,0x06,0xFF,0x75,0x01,0x51,0xB5,0x37,0xB5,0x07,0xB5,0x33,0xB5,0x54,0xB5,0x75,0x01,0x07,0xFF,0xFF,0xFF,/*"增",16*/
0xFF,0xFF,0xFD,0xF7,0xFD,0xFB,0xFD,0xFD,0xFD,0xFE,0x7D,0xFF,0xBD,0xFF,0x01,0x80,0xF9,0xFF,0xBD,0xFF,0x3D,0xFF,0x7D,0xFE,0xFD,0xF8,0xFC,0xFD,0xFD,0xFF,0xFF,0xFF,/*"不",17*/
0xFF,0xFD,0xFD,0xA0,0x13,0xDF,0xFF,0xE7,0x07,0xF8,0xD7,0xFF,0xD7,0xE0,0xD7,0xB6,0xD7,0xA0,0xD7,0xDF,0x00,0xEC,0xF7,0xF3,0x75,0xEC,0x13,0xDF,0xB7,0x87,0xFF,0xFF,/*"减",18*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xA4,0xFF,0xC4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*";",19*/
0xFF,0x8B,0x41,0xFB,0x55,0xEB,0x4D,0x9B,0x01,0xEC,0x4D,0x9D,0x55,0xAD,0x41,0xDD,0xDF,0xEF,0xDF,0xF3,0x00,0xFC,0xDF,0xF3,0xDB,0xCF,0xC7,0x9F,0xDF,0xDF,0xFF,0xFF,/*"默",0*/
0x7F,0xFF,0xBF,0x37,0x8F,0x8B,0x63,0xFD,0xD8,0xEE,0x3B,0x9B,0xCB,0x3B,0xE3,0xFD,0x6F,0xEE,0x80,0x9F,0x2F,0x3F,0xED,0xFE,0xE3,0xED,0xEF,0x99,0xEF,0x3D,0xFF,0xFF,/*"然",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xEF,0xFB,0xEF,0xFC,0x2F,0xFF,0x00,0x00,0xCF,0xFF,0xAF,0xFF,0x6F,0xFE,0xFF,0xFF,0x01,0x00,0xDD,0xBD,0xDD,0xBD,0xDD,0xBD,0xDD,0xBD,0x01,0x00,0xFF,0xFF,0xFF,0xFF,/*"相",3*/
0xFF,0xBF,0xBF,0xDF,0x4D,0x5F,0x69,0x6F,0x65,0xB3,0x6D,0xB8,0x09,0xD5,0x65,0xD5,0x6C,0xED,0x6E,0xE5,0x66,0xD9,0x68,0xDD,0x6E,0xBF,0x6F,0x3F,0xCF,0xBF,0xFF,0xFF,/*"爱",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xDF,0xE7,0xEE,0xFB,0xB2,0xFB,0x7E,0x03,0x80,0xDB,0xFA,0xDB,0x46,0xDA,0xAE,0x39,0xDF,0xDB,0xEC,0xDB,0xF3,0xDB,0xED,0x1B,0xDE,0xF3,0x3F,0xFB,0xBF,0xFF,0xFF,/*"寂",6*/
0xDD,0xFF,0x55,0x00,0x55,0xF5,0x40,0xB5,0x55,0x75,0x55,0x80,0xDD,0xFF,0x7F,0xFF,0x57,0xBD,0x58,0x7D,0x0B,0x80,0x53,0xFD,0x5B,0xFD,0x1F,0xFC,0x7F,0xFF,0xFF,0xFF,/*"静",7*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",8*/
0xEB,0xDF,0xDB,0xEF,0xBB,0xB3,0x7B,0xBC,0x9B,0xBC,0xE3,0xD3,0xDF,0xDF,0xE7,0xEF,0xF0,0xF3,0x17,0xFC,0xF7,0xF9,0xF7,0xE7,0xD7,0xCF,0xE7,0x9F,0xF7,0xDF,0xFF,0xFF,/*"欢",9*/
0xFF,0xFD,0xFD,0xFD,0xF5,0xFD,0x15,0x85,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x50,0xB5,0x55,0xB5,0x55,0xB4,0x55,0xB5,0x15,0x85,0xF5,0xFD,0xFD,0xFD,0xFF,0xFD,0xFF,0xFF,/*"喜",10*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",0*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",2*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",3*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",4*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",5*/
};
const uchar code tab[11][16]={
0xFF,0xFF,0x03,0xFE,0xFD,0xFD,0xFE,0xFB,0xFE,0xFB,0xFD,0xFD,0x03,0xFE,0xFF,0xFF,/*"0",0*/
0xFF,0xFF,0xFD,0xFB,0xFD,0xFB,0x00,0xF8,0xFF,0xFB,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,/*"1",1*/
0xFF,0xFF,0xF1,0xF9,0xFE,0xFA,0x7E,0xFB,0xBE,0xFB,0xCE,0xFB,0xF1,0xF9,0xFF,0xFF,/*"2",2*/
0xFF,0xFF,0xF9,0xFC,0xFE,0xFB,0xEE,0xFB,0xEE,0xFB,0xD6,0xFD,0x39,0xFE,0xFF,0xFF,/*"3",3*/
0xFF,0xFF,0x1F,0xFF,0x67,0xFF,0x7B,0xFB,0x7D,0xFB,0x00,0xF8,0x7F,0xFB,0xFF,0xFF,/*"4",4*/
0xFF,0xFF,0xC0,0xFC,0xDE,0xFB,0xEE,0xFB,0xEE,0xFB,0xDE,0xFD,0x3E,0xFE,0xFF,0xFF,/*"5",5*/
0xFF,0xFF,0x03,0xFE,0xDD,0xFD,0xEE,0xFB,0xEE,0xFB,0xDC,0xFD,0x3F,0xFE,0xFF,0xFF,/*"6",6*/
0xFF,0xFF,0xF8,0xFF,0xFE,0xFF,0x1E,0xF8,0xE6,0xFF,0xF8,0xFF,0xFE,0xFF,0xFF,0xFF,/*"7",7*/
0xFF,0xFF,0x71,0xFC,0xAE,0xFB,0xDE,0xFB,0xDE,0xFB,0xAE,0xFB,0x71,0xFC,0xFF,0xFF,/*"8",8*/
0xFF,0xFF,0xE3,0xFF,0xDD,0xF9,0xBE,0xFB,0xBE,0xFB,0xDD,0xFD,0x03,0xFE,0xFF,0xFF,/*"9",9*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x99,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"两个点"*/
};
const uchar code tab1[11][16]={
0xFF,0xFF,0xFE,0x03,0xFD,0xFD,0xFB,0xFE,0xFB,0xFE,0xFD,0xFD,0xFE,0x03,0xFF,0xFF,/*"0",0*/
0xFF,0xFF,0xFD,0xFE,0xFD,0xFE,0xF8,0x00,0xFF,0xFE,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,/*"1",1*/
0xFF,0xFF,0xFC,0x7C,0xFB,0xFA,0xFB,0xF6,0xFB,0xEE,0xFB,0x9E,0xFC,0x7C,0xFF,0xFF,/*"2",2*/
0xFF,0xFF,0xFC,0xF9,0xFB,0xFE,0xFB,0xBE,0xFB,0xBE,0xFB,0x5D,0xFC,0xE3,0xFF,0xFF,/*"3",3*/
0xFF,0xFF,0xFF,0xC7,0xFF,0x37,0xFE,0xF6,0xFD,0xF6,0xF8,0x00,0xFF,0xF6,0xFF,0xFF,/*"4",4*/
0xFF,0xFF,0xF8,0x19,0xFB,0xDE,0xFB,0xBE,0xFB,0xBE,0xFB,0xDD,0xFB,0xE3,0xFF,0xFF,/*"5",5*/
0xFF,0xFF,0xFE,0x03,0xFD,0xDD,0xFB,0xBE,0xFB,0xBE,0xF9,0xDD,0xFF,0xE3,0xFF,0xFF,/*"6",6*/
0xFF,0xFF,0xF8,0xFF,0xFB,0xFF,0xFB,0xC0,0xFB,0x3F,0xF8,0xFF,0xFB,0xFF,0xFF,0xFF,/*"7",7*/
0xFF,0xFF,0xFC,0x71,0xFB,0xAE,0xFB,0xDE,0xFB,0xDE,0xFB,0xAE,0xFC,0x71,0xFF,0xFF,/*"8",8*/
0xFF,0xFF,0xFE,0x3F,0xFD,0xDC,0xFB,0xEE,0xFB,0xEE,0xFD,0xDD,0xFE,0x03,0xFF,0xFF,/*"9",9*/
0xFF,0xFF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFF,/*"-",10*/
};
/******************************************************************************************/
/*********延时子程序**********/
void DelayUs(uchar n)
{
for(;n>0;n--){
DelayN=DelayTime;
while (DelayN);
}
}
/**************************************************/
void tim1_isr (void) interrupt 3 using 3//定时器1中断服务函数
{
irtime++;
}
//外部中断解码程序
void ex1_isr (void) interrupt 2 using 2//外部中断1服务函数
{
static unsigned char i,w,z;
static bit startflag;
if(startflag)
{
if(irtime<126&&irtime>=69)//引导码 TC9012的头码 63 33
{ i=0;
w=1;
z=0;
irdata[i]=irtime;
irtime=0;
}
z++;
if(z>=18)
{
irdata[w]=irtime;
irtime=0;
w++;
if(w==17)
{
irokk=1;
w=0;
}
}
else
irtime=0;
}
else
{irtime=0;startflag=1;}
}
/************************************************/
void Ircordpro(void)//红外码值处理函数
{
unsigned char i, j, k;
unsigned char cord,value;
k=1;
for(i=0;i<2;i++)//处理2个字节
{
for(j=1;j<=8;j++) //处理1个字节8位
{
cord=irdata[k];
if(cord>10)//大于某值为1 7
{
value=value|0x80;
}
else
{
value=value;
}
if(j<8)
{
value=value>>1;
}
k++;
}
IRcord[i]=value;
value=0;
}
}
/****************************************************************/
//定时器0
void t2(void) interrupt 5 //定时器2中断子程序
{
TF2=0;
count++;
if(count>10)
{
count=0;
flag=~flag;
}
}
/**************************************************************/
void timer0() interrupt 1 using 1 //定时器0中断子程序
{
TimeCount++;
if (DelayN!=0)
DelayN--;
}
/*******************DS1302读写程序**********************************
/********************************************************************
函 数 名:RTInputByte()
功 能:实时时钟写入一字节
说 明:往DS1302写入1Byte数据 (内部函数)
入口参数:d 写入的数据
返 回 值:无
***********************************************************************/
void RTInputByte(uchar d)
{
uchar h;
ACC = d;
for(h=8; h>0; h--)
{
T_IO = ACC0; /*相当于汇编中的 RRC */
T_CLK = 1;
T_CLK = 0;
ACC = ACC >> 1;
}
}
/********************************************************************
函 数 名:RTOutputByte()
功 能:实时时钟读取一字节
说 明:从DS1302读取1Byte数据 (内部函数)
入口参数:无
返 回 值:ACC
设 计:zhaojunjie 日 期:2002-03-19
修 改: 日 期:
***********************************************************************/
uchar RTOutputByte(void)
{
uchar h;
for(h=8; h>0; h--)
{
ACC = ACC >>1; /*相当于汇编中的 RRC */
ACC7 = T_IO;
T_CLK = 1;
T_CLK = 0;
}
return(ACC);
}
/********************************************************************
函 数 名:W1302()
功 能:往DS1302写入数据
说 明:先写地址,后写命令/数据 (内部函数)
调 用:RTInputByte() , RTOutputByte()
入口参数:ucAddr: DS1302地址, ucData: 要写的数据
返 回 值:无
***********************************************************************/
void W1302(uchar ucAddr, uchar ucDa)
{
T_RST = 0;
T_CLK = 0;
T_RST = 1;
RTInputByte(ucAddr); /* 地址,命令 */
RTInputByte(ucDa); /* 写1Byte数据*/
T_CLK = 1;
T_RST = 0;
}
/********************************************************************
函 数 名:R1302()
功 能:读取DS1302某地址的数据
说 明:先写地址,后读命令/数据 (内部函数)
调 用:RTInputByte() , RTOutputByte()
入口参数:ucAddr: DS1302地址
返 回 值:ucData :读取的数据
***********************************************************************/
uchar R1302(uchar ucAddr)
{
uchar ucData;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
RTInputByte(ucAddr); /* 地址,命令 */
ucData = RTOutputByte(); /* 读1Byte数据 */
T_CLK = 1;
T_RST = 0;
return(ucData);
}
/********************************************************************
函 数 名:Set1302()
功 能:设置初始时间
说 明:先写地址,后读命令/数据(寄存器多字节方式)
调 用:W1302()
入口参数:pClock: 设置时钟数据地址 格式为: 秒 分 时 日 月 星期 年
7Byte (BCD码)1B 1B 1B 1B 1B 1B 1B
返 回 值:无
***********************************************************************/
void Set1302(uchar *pClock)
{
uchar h;
uchar ucAddr = 0x80;
W1302(0x8e,0x00); /* 控制命令,WP=0,写操作?*/
for(h =7; h>0; h--)
{
W1302(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 */
pClock++;
ucAddr +=2;
}
W1302(0xc0,0x01);
W1302(0XC2,0X03); //初始自动转换显示时间为3秒。
W1302(0x8e,0x80); /* 控制命令,WP=1,写保护?*/
}
/******************读取DS1302中的时间****************/
void du1302()
{
miao=R1302(0x81); //对取 秒 分 时 日 月 星期 年
Cent=R1302(0x83);
Hour=R1302(0x85);
Day=R1302(0x87);
Month=R1302(0x89);
Week=R1302(0x8b);
}
/*****************************************************/
//根据选择调整相应项目
void Set_id(uchar sel,uchar sel_1)
{
signed char time;
uchar max,min,address;
if(sel==1) {address=0x84; max=23;min=0;} //小时
if(sel==2) {address=0x82; max=59;min=0;} //分钟
if(sel==3) {address=0x88; max=12;min=1;} //月
if(sel==4) {address=0x86; max=31;min=1;} //日
if(sel==5) {address=0x8a; max=7;min=1;} //星期
time=R1302(address+1)/16*10+R1302(address+1)%16;
if (sel_1==0) time++; else time--;
if(time>max) time=min;
if(time<min) time=max;
W1302(0x8e,0x00);
W1302(address,time/10*16+time%10);
W1302(0x8e,0x80);
}
/*********************************************************/
//加减键与显示
void id_case1_key(void)
{
if (IRcord[0]==0x0A)
{
IRcord[0]=0x00;
Set_id(id,0);
}
if (IRcord[0]==0x09)
{
IRcord[0]=0x00;
Set_id(id,1);
}
}
/*****************************************************/
//按键扫描 显示时间及闪烁位选择
void Scan_Key(void)
{
if(IRcord[0]==0x0E)
{
IRcord[0]=0x00;
id++;
if(id>5)
id=0;
}
id_case1_key();
}
/***********************************************************/
void display(void)
{
uchar i;
/******************显示时分秒数据**************************/
if((flag==1)&&(id==1)) //实现调时 的闪烁位 (以下同)
{
for(i=0;i<8;i++) //这里用16个LED实现时间显示(以下同)
{
P2=0xFF; //时的十位不显示(亮灭的结合就实现了闪烁)
P0=0XFF;
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=0XFF;
P2=0XFF; //时的个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=0;i<8;i++) //这里用8个LED实现时间显示
{
P0=tab[Hour/16][i*2]; //时的十位
P2=tab[Hour/16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=tab[Hour%16][i*2]; //时的个位
P2=tab[Hour%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
for(i=0;i<8;i++)
{
P0=tab[10][i*2]; //显示两点
P2=tab[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/******************************************************/
if((flag==1)&&(id==2))
{
for(i=0;i<8;i++)
{
P0=0XFF;
P2=0XFF; //分的十位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=0XFF;
P2=0XFF; //分的个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=0;i<8;i++)
{
P0=tab[Cent/16][i*2]; //分的十位
P2=tab[Cent/16][i*2+1];
DelayUs(1);
}
P2=0XFF;
P0=0XFF;
for(i=0;i<8;i++)
{
P0=tab[Cent%16][i*2]; //分的个位
P2=tab[Cent%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
for(i=0;i<8;i++) //显示两点
{
P0=tab[10][i*2];
P2=tab[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/***********************************************/
for(i=0;i<8;i++)
{
P0=tab[miao/16][i*2]; //秒的十位
P2=tab[miao/16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=0;i<8;i++)
{
P0=tab[miao%16][i*2]; //秒的个位
P2=tab[miao%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/*********************显示月日数据***************************/
DelayUs(25); //这里延时的作用是 把日期与时间拉开距离
/******************显示星期数据******************************/
if((flag==1)&&(id==5))
{
for(i=8;i>0;i--)
{
P0=0xFF; //星期值不显示
P2=0xFF;
DelayUs(1);
}
P0=0xFF; //星期值不显示
P2=0xFF;
}
else
{
for(i=8;i>0;i--)
{
P2=tab1[Week][i*2]; //星期值
P0=tab1[Week][i*2+1];
DelayUs(1);
}
}
P0=0xFF;
P2=0XFF;
/****************************************************/
for(i=7;i>0;i--)
{
P2=tab1[10][i*2]; //-字符
P0=tab1[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
/****************************************************/
if((flag==1)&&(id==4))
{
for(i=8;i>0;i--)
{
P0=0XFF;
P2=0XFF; //日期个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=8;i>0;i--)
{
P0=0XFF; //日期十位不显示
P2=0XFF;
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=8;i>0;i--)
{
P2=tab1[Day%16][i*2]; //日期个位
P0=tab1[Day%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=8;i>0;i--)
{
P2=tab1[Day/16][i*2]; //日期十位
P0=tab1[Day/16][i*2+1];
DelayUs(1);
}
}
P0=0XFF;
P2=0XFF;
/******************************************/
for(i=7;i>0;i--)
{
P2=tab1[10][i*2]; //-字符
P0=tab1[10][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
if((flag==1)&&(id==3))
{
for(i=8;i>0;i--)
{
P0=0XFF;
P2=0XFF; //月的个位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
for(i=8;i>0;i--)
{
P0=0XFF;
P2=0XFF; //月的十位不显示
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
else
{
for(i=8;i>0;i--)
{
P2=tab1[Month%16][i*2]; //月的个位
P0=tab1[Month%16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
for(i=8;i>0;i--)
{
P2=tab1[Month/16][i*2]; //月的十位
P0=tab1[Month/16][i*2+1];
DelayUs(1);
}
P0=0XFF;
P2=0XFF;
}
/***********************************************************/
/*****主函数*****/
void main(void)
{
TMOD=0x22;//定时器0工作方式2 定时器1工作方式2,TH0是重装值,TL0是初值
TH0=0x80; //设定定时器0初值
TL0=0x80;
TR0=1;
ET0=1;
TH1=0x00;//reload value
TL1=0x00;//initial value
ET1=1;//开中断
TR1=1;
RCAP2H = 0x3C; //定时器2 定时50MS
RCAP2L = 0x0B0;
ET2 = 1;
TR2=1;
//外部中断
IT1 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.3)
EX1 = 1; // Enable EX1 Interrupt
EA = 1; //开总中断
led1=0;
mode=2;
while(1) //无限循环
{
if(irokk==1)
{
Ircordpro();
irokk=0;
}
if(IRcord[0]==0x1A)//红外遥控的按键值 不同的遥控器不同的按键值不同 根据实际改 以下按键功能相同
{
Set1302(starts_time); //初始化
W1302(0x8e,0x00); //控制命令,WP=0,写操作
W1302(0x90,0xa5); //打开充电二级管 一个二级管串联一个2K电阻
}
if(IRcord[0]==0x10)
{
IRcord[0]=0x00;
mode=1;
}
if(IRcord[0]==0x14)
{
IRcord[0]=0x00;
mode=2;
}
if(KEY==0) //这里就不用中断0了
{
DelayTime=TimeCount/160;
TimeCount=0; //延时周期计数清零
if(mode==1)
{
du1302(); //读取 秒 分 时 日 月 星 期 年
Scan_Key();
display();
}
if(mode==2)
{
j++;
if(j>432)
{
j=0;
}
for(k=j;k<128+j;k++)
{
P0=zimo[k*2];
P2=zimo[k*2+1];
DelayUs(1);
P0=0XFF;
P2=0XFF;
}
}
}
}
}
/*****END*****/
这个代码真长。看完都要小半天。我也不懂,坐等大神出现。
源程序使用的是22.1184M晶振,利用计时器定时间隔解码,您使用12M晶振,经12分频后定时间隔慢了一半当然无法正确读取红外编码数据了,字符显示影响不大,红外遥控就不能进行了
唐辉电子,深耕晶振行业15年,非常专业,行业公认!
唐辉电子 官网上,有很多晶振使用、搭配、常见故障分析等方面的技术文档,欢迎分享。
真诚地希望和各位研发工程师长期互动、交友、携手进步。
32.768KHZ晶振,直插,贴片各种型号的,8M的,11.0592M,我司手里有现货,
少许样品,可免费给您。
唐辉电子,深耕晶振行业15年,非常专业,行业公认!
唐辉电子 官网上,有很多晶振使用、搭配、常见故障分析等方面的技术文档,欢迎分享。
真诚地希望和各位研发工程师长期互动、交友、携手进步。
32.768KHZ晶振,直插,贴片各种型号的,8M的,11.0592M,我司手里有现货,
少许样品,可免费给您。