基于PIC16F877A的万年历程序
另外还可参考他人一篇博文,写的挺多的:http://wujieflash.blog.163.com/blog/static/5024751920080226525471/
代码包下载:http://qylk2011.googlecode.com/files/time.rar
代码如下:
//使用4M晶振
#include
__CONFIG(XT&WDTDIS);
#define Rssp_On 0x3f//显示开指令
#define Rssp_Off 0x3e//显示关指令
#define Col_Add 0x40//列
#define Page_Add 0xb8//页
#define Start_Line 0xc0//起始行
#define Rs RC2 //定义12864液晶接口
#define RW RC1
#define Ce RC0
#define Cs1 RC3
#define Cs2 RC4
#define T_CLK RA1 //实时时钟时钟线引脚
#define T_IO RA2 //实时时钟数据线引脚
#define T_RST RA0 //实时时钟复位线引脚
#define TRI TRISA2 //I/O作为输入
#define DQ RA3 //定义18B20数据端口
#define DQ_DIR TRISA3 //定义18B20D口方向寄存器
#define DQ_HIGH() DQ_DIR =1 //设置数据口为输入
#define DQ_LOW() DQ = 0; DQ_DIR = 0 //设置数据口为输出
unsigned char temp1; //采集到的温度高8位
unsigned char temp2; //采集到的温度低8位,转换后的温度值BCD码形式
const unsigned char tablexiao[16]={0,0,1,2,2,3,4,4,5,6,6,7,8,8,9,9};
unsigned char moon[3];
unsigned char m_temp[3];
unsigned char timebuf[7];
bit display_time; //刷新时间显示标志位
bit display_tem; //刷新温度显示标志位
bit tem_en; //启动温度显示标志位
unsigned char n; //辅助于timer1
unsigned char n2; //辅助于timer1
const unsigned char shuzi[]={
/*-- 文字: 0 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,
/*-- 文字: 1 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x20,0x30,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
/*-- 文字: 2 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x60,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x20,0x00,
/*-- 文字: 3 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x30,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x18,0x20,0x20,0x21,0x21,0x1E,0x00,
/*-- 文字: 4 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x3F,0x04,
/*-- 文字: 5 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0xF8,0x48,0x48,0x48,0x48,0x88,0x00,0x00,0x18,0x20,0x20,0x20,0x20,0x1F,0x00,
/*-- 文字: 6 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0xE0,0x10,0x88,0x88,0x88,0x30,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00,
/*-- 文字: 7 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x08,0x08,0x08,0x08,0xC8,0x38,0x00,0x00,0x00,0x00,0x30,0x0E,0x01,0x00,0x00,
/*-- 文字: 8 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x60,0x90,0x08,0x08,0x08,0x90,0x60,0x00,0x0C,0x12,0x21,0x21,0x21,0x12,0x0C,
/*-- 文字: 9 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x19,0x22,0x22,0x22,0x11,0x0F,0x00,
/*-- 文字: : --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
/*-- 文字: . --11*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
};
const unsigned char hanzi[]=
{
/*-- 文字: 年 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x20,0x30,0xDC,0xCF,0xCF,0xCC,0xCC,0xFC,0xFC,0xCC,0xCC,0xCC,0x0C,0x00,0x00,
0x0C,0x0C,0x0C,0x0F,0x0F,0x0C,0x0C,0x0C,0x7F,0x7F,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,
/*-- 文字: 月 --*/
/*-- 黑体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0xFE,0xFE,0x26,0x26,0x26,0x26,0x26,0x26,0xFE,0xFE,0x00,0x00,0x00,
0x00,0x40,0x70,0x3F,0x0F,0x03,0x03,0x03,0x03,0x23,0x63,0x7F,0x3F,0x00,0x00,0x00,
PIC16F877A万年历程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)