📄 m12232a.c
字号:
/*
**长沙太阳人电子有限公司SMG12232A模拟接口参考程序
**电话: 0731-4167806,4167808
**E-mail: www@sunman.cn
**Create by :谭超 E-mail: tanchao_1@126.com
**最后修改 : 2005年5月18日
**版本说明: 带显示矩形框、线、点子程序。
*/
//[字符图象输出文件=hzk.c]
//[字体名称=宋体]
//[字体大小=16]
//[字节方向=垂直]
//[字位顺序=从低到高]
/************************************包含的头文件***********************************/
#include <STC89C58.h>
#include <math.h>
#include <intrins.h>
#include <string.h>
#include <absacc.h>
#include <typedef.h>
#define STC89C58 1
#define W77E58 0
#define STCSPD_1 0 // STC单片机用单倍速
#define STCSPD_2 1 // STC单片机用双倍速
#define DATA P0
#define vT0HVal 0xfc
#define vT0LVal 0x76
#define LCD_CMD_COL 0x00
#define LCD_CMD_PAGE 0xb8
#define LCD_LEFT 0
#define LCD_TOP 0
#define LCD_RIGHT 121
#define LCD_BOTTOM 31
#define ENGLISHCHARDOTSIZE 16
#define ENGLISHCHARSIZE 8
#define ENGLISHCHARNUMBER 70//定义最大字符数
#define CHINESECHARDOTSIZE 32
#define CHINESECHARSIZE 16
#define CHINESECHARNUMBER 70//定义最大汉字数
#define vT01MS 2
#define vT010MS 10
#define vT01S 100
sbit A0PIN = P2^7;
sbit WRPIN = P3^6;
sbit RDPIN = P3^7;
sbit CS1PIN = P2^6;
sbit CS2PIN = P2^5;
//sbit CLPIN = P2^4;
sbit KS1 =P1^4;
sbit KS2 =P1^5;
sbit KS3 =P1^6;
sbit KS4 =P1^7;
/*
// 键盘编码值定义===3*3
#define vKeyVal_1 0x0001 //下翻一钩
#define vKeyVal_2 0x0002 //下翻一页
#define vKeyVal_3 0x0004 //信令
#define vKeyVal_4 0x0010 //确认
#define vKeyVal_5 0x0020 //上翻一钩
#define vKeyVal_6 0x0040 //上翻一页
#define vKeyVal_7 0x0100 //表单
#define vKeyVal_8 0x0200 //切换
#define vKeyVal_9 0x0400 //上翻一钩
*/
// 键盘编码值定义===4*4
#define vKeyVal_1 0x0001 //下翻一钩
#define vKeyVal_2 0x0002 //下翻一页
#define vKeyVal_3 0x0004 //信令
#define vKeyVal_4 0x0008 //确认
#define vKeyVal_5 0x0010 //上翻一钩
#define vKeyVal_6 0x0020 //上翻一页
#define vKeyVal_7 0x0040 //表单
#define vKeyVal_8 0x0080 //切换
#define vKeyVal_9 0x0100 //上翻一钩
#define vKeyVal_10 0x0200 //下翻一页
#define vKeyVal_11 0x0400 //信令
#define vKeyVal_12 0x0800 //确认
#define vKeyVal_13 0x1000 //上翻一钩
#define vKeyVal_14 0x2000 //上翻一页
#define vKeyVal_15 0x4000 //表单
#define vKeyVal_16 0x8000 //切换
#define vKeyVal_Null 0x0000
#define vKeyAct_Null 0
#define vKeyAct_Push 1
#define vKeyAct_Pop 2
#define vKeyAct_Keep 3
#define vBaudTime 0xfa // 0xfa对应9600Hz波特率,但若要查看信令解码数据,则要用57600Hz(0xff)
#define UseAddr 0x8000 //0x8000~0xf3ff空间地址
#define vSecondAddr 0x8001
#define vMinuteAddr 0x8002
#define vHourAddr 0x8003
#define NUMBER 20
#define CountAddr 0x8200 //0x8000~0xf3ff空间地址
#define RecordBaseAddr 0x8400
uchar idata Count;
uint iKeyVal;
uint iKeyValPre;
/************************************************************************
************************************************************************/
uchar idata Str[] = "07-11-27(15:02)";
uchar data Lcd_CurrentX,Lcd_CurrentY,Lcd_Mask;
uchar code LeftMask[] = {0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};//下移位标志(左循环1位值),0XFF表示没偏移,否则填充相对应偏移量个'0'。
uchar code RightMask[] = {0xff,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f};//上移位标志(右循环1位值),0XFF表示没偏移,否则填充相对应偏移量个'0'。
uchar code Mask1[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//0xfe左循环1位值(填'1')。
uchar code Mask2[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//0x01左循环1位值(填'0')。
uchar data cT01ms; // 定时器0中的1ms,10ms,及1s的时基计数器
uchar data cT010ms;
uchar data cT01s;
uint data iDY_Timer; // 通用定时器计数值
uchar idata vSecond;
uchar idata vMinute;
uchar idata vHour;
uchar idata vSecondST;
uchar idata vMinuteST;
uchar idata vHourST;
uchar FlashTime; //光标闪动时间间隔
uchar KeyCount;
bit bFlash;
bit bFlag;
bit b_1Min;
/************************************************************************
//横向取模(控制12232液晶显示程序有关),字节倒序(左低右高,与12232液晶D0在0行D7在7行对应。)
//左右翻转(横向取模从左到右,写入从上到下。),逆时针旋转90度(横向取模,列写入。)
************************************************************************/
uchar code EnglishCode[]={ //字符索引目录---直接用单个字符赋值好了,没必要转换成制数值.
32, //字符:[ ][1]
48, //字符:[0][2]
49, //字符:[1][3]
50, //字符:[2][4]
51, //字符:[3][5]
52, //字符:[4][6]
53, //字符:[5][7]
54, //字符:[6][8]
55, //字符:[7][9]
56, //字符:[8][10]
57, //字符:[9][11]
65, //字符:[A][12]
66, //字符:[B][13]
67, //字符:[C][14]
68, //字符:[D][15]
69, //字符:[E][16]
70, //字符:[F][17]
71, //字符:[G][18]
72, //字符:[H][19]
73, //字符:[I][20]
74, //字符:[J][21]
75, //字符:[K][22]
76, //字符:[L][23]
77, //字符:[M][24]
78, //字符:[N][25]
79, //字符:[O][26]
80, //字符:[P][27]
81, //字符:[Q][28]
82, //字符:[R][29]
83, //字符:[S][30]
84, //字符:[T][31]
85, //字符:[U][32]
86, //字符:[V][33]
87, //字符:[W][34]
88, //字符:[X][35]
89, //字符:[Y][36]
90, //字符:[Z][37]
97, //字符:[a][38]
98, //字符:[b][39]
99, //字符:[c][40]
100, //字符:[d][41]
101, //字符:[e][42]
102, //字符:[f][43]
103, //字符:[g][44]
104, //字符:[h][45]
105, //字符:[i][46]
106, //字符:[j][47]
107, //字符:[k][48]
108, //字符:[l][49]
109, //字符:[m][50]
110, //字符:[n][51]
111, //字符:[o][52]
112, //字符:[p][53]
113, //字符:[q][54]
114, //字符:[r][55]
115, //字符:[s][56]
116, //字符:[t][57]
117, //字符:[u][58]
118, //字符:[v][59]
119, //字符:[w][60]
120, //字符:[x][61]
121, //字符:[y][62]
122, //字符:[z][63]
45 , //字符:[-][64]
58 , //字符:[:][65]
40 , //字符:[(][66]
41 , //字符:[)][67]
95 //字符:[_][68]
};
uchar code ChineseCode[]={
51413, //字符:[日][1]---0xC8D5
50906, //字符:[期][2]---0xC6DA
50410, //字符:[年][3]---0xC4EA
54466, //字符:[月][4]---0xD4C2
51889, //字符:[时][5]---0xCAB1
47062, //字符:[分][6]---0xB7D6
50155, //字符:[秒][7]---0xC3EB
52930, //字符:[温][8]---0xCEC2
46792, //字符:[度][9]---0xB6C8
41446, //字符:[℃][10]---0xA1E6
51118, //字符:[钱][11]---0xC7AE
53409, //字符:[小][12]---0xD0A1
52164, //字符:[四][13]---0xCBC4
48356, //字符:[间][14]---0xBCE4
46286, //字符:[次][15]---0xB4CE
51965 //字符:[数][16]---0xCAFD
};
uchar code EnglishCharDot[]={//根据索引获取对应的点阵内容
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //字符:[ ][1]
0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00, //字符:[0][2]
0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00, //字符:[1][3]
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00, //字符:[2][4]
0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00, //字符:[3][5]
0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00, //字符:[4][6]
0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00, //字符:[5][7]
0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00, //字符:[6][8]
0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00, //字符:[7][9]
0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00, //字符:[8][10]
0x00,0x00,0xE0,0x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00, //字符:[9][11]
0x00,0x20,0x00,0x3C,0xC0,0x23,0x38,0x02,0xE0,0x02,0x00,0x27,0x00,0x38,0x00,0x20, //字符:[A][12]
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x20,0x70,0x11,0x00,0x0E,0x00,0x00, //字符:[B][13]
0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x38,0x08,0x00,0x00, //字符:[C][14]
0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00, //字符:[D][15]
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0xE8,0x23,0x08,0x20,0x10,0x18,0x00,0x00, //字符:[E][16]
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0xE8,0x03,0x08,0x00,0x10,0x00,0x00,0x00, //字符:[F][17]
0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x22,0x38,0x1E,0x00,0x02,0x00,0x00, //字符:[G][18]
0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20, //字符:[H][19]
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x00,0x00,0x00,0x00, //字符:[I][20]
0x00,0xC0,0x00,0x80,0x08,0x80,0x08,0x80,0xF8,0x7F,0x08,0x00,0x08,0x00,0x00,0x00, //字符:[J][21]
0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,0x28,0x26,0x18,0x38,0x08,0x20,0x00,0x00, //字符:[K][22]
0x08,0x20,0xF8,0x3F,0x08,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x30,0x00,0x00, //字符:[L][23]
0x08,0x20,0xF8,0x3F,0xF8,0x00,0x00,0x3F,0xF8,0x00,0xF8,0x3F,0x08,0x20,0x00,0x00, //字符:[M][24]
0x08,0x20,0xF8,0x3F,0x30,0x20,0xC0,0x00,0x00,0x07,0x08,0x18,0xF8,0x3F,0x08,0x00, //字符:[N][25]
0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00, //字符:[O][26]
0x08,0x20,0xF8,0x3F,0x08,0x21,0x08,0x01,0x08,0x01,0x08,0x01,0xF0,0x00,0x00,0x00, //字符:[P][27]
0xE0,0x0F,0x10,0x18,0x08,0x24,0x08,0x24,0x08,0x38,0x10,0x50,0xE0,0x4F,0x00,0x00, //字符:[Q][28]
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0x88,0x03,0x88,0x0C,0x70,0x30,0x00,0x20, //字符:[R][29]
0x00,0x00,0x70,0x38,0x88,0x20,0x08,0x21,0x08,0x21,0x08,0x22,0x38,0x1C,0x00,0x00, //字符:[S][30]
0x18,0x00,0x08,0x00,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x00,0x18,0x00,0x00,0x00, //字符:[T][31]
0x08,0x00,0xF8,0x1F,0x08,0x20,0x00,0x20,0x00,0x20,0x08,0x20,0xF8,0x1F,0x08,0x00, //字符:[U][32]
0x08,0x00,0x78,0x00,0x88,0x07,0x00,0x38,0x00,0x0E,0xC8,0x01,0x38,0x00,0x08,0x00, //字符:[V][33]
0xF8,0x03,0x08,0x3C,0x00,0x07,0xF8,0x00,0x00,0x07,0x08,0x3C,0xF8,0x03,0x00,0x00, //字符:[W][34]
0x08,0x20,0x18,0x30,0x68,0x2C,0x80,0x03,0x80,0x03,0x68,0x2C,0x18,0x30,0x08,0x20, //字符:[X][35]
0x08,0x00,0x38,0x00,0xC8,0x20,0x00,0x3F,0xC8,0x20,0x38,0x00,0x08,0x00,0x00,0x00, //字符:[Y][36]
0x10,0x20,0x08,0x38,0x08,0x26,0x08,0x21,0xC8,0x20,0x38,0x20,0x08,0x18,0x00,0x00, //字符:[Z][37]
0x00,0x00,0x00,0x19,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x3F,0x00,0x20, //字符:[a][38]
0x08,0x00,0xF8,0x3F,0x00,0x11,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00, //字符:[b][39]
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x00, //字符:[c][40]
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x88,0x10,0xF8,0x3F,0x00,0x20, //字符:[d][41]
0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00, //字符:[e][42]
0x00,0x00,0x80,0x20,0x80,0x20,0xF0,0x3F,0x88,0x20,0x88,0x20,0x88,0x00,0x18,0x00, //字符:[f][43]
0x00,0x00,0x00,0x6B,0x80,0x94,0x80,0x94,0x80,0x94,0x80,0x93,0x80,0x60,0x00,0x00, //字符:[g][44]
0x08,0x20,0xF8,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20, //字符:[h][45]
0x00,0x00,0x80,0x20,0x98,0x20,0x98,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00, //字符:[i][46]
0x00,0x00,0x00,0xC0,0x00,0x80,0x80,0x80,0x98,0x80,0x98,0x7F,0x00,0x00,0x00,0x00, //字符:[j][47]
0x08,0x20,0xF8,0x3F,0x00,0x24,0x00,0x02,0x80,0x2D,0x80,0x30,0x80,0x20,0x00,0x00, //字符:[k][48]
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00, //字符:[l][49]
0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x00,0x80,0x3F,0x80,0x20,0x80,0x00,0x00,0x3F, //字符:[m][50]
0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20, //字符:[n][51]
0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00, //字符:[o][52]
0x80,0x80,0x80,0xFF,0x00,0xA1,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00, //字符:[p][53]
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0xA0,0x80,0xFF,0x00,0x80, //字符:[q][54]
0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x20,0x80,0x00,0x80,0x01,0x00,0x00, //字符:[r][55]
0x00,0x00,0x00,0x33,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x19,0x00,0x00, //字符:[s][56]
0x00,0x00,0x80,0x00,0x80,0x00,0xE0,0x1F,0x80,0x20,0x80,0x20,0x00,0x00,0x00,0x00, //字符:[t][57]
0x80,0x00,0x80,0x1F,0x00,0x20,0x00,0x20,0x00,0x20,0x80,0x10,0x80,0x3F,0x00,0x20, //字符:[u][58]
0x80,0x00,0x80,0x01,0x80,0x0E,0x00,0x30,0x00,0x08,0x80,0x06,0x80,0x01,0x80,0x00, //字符:[v][59]
0x80,0x0F,0x80,0x30,0x00,0x0C,0x80,0x03,0x00,0x0C,0x80,0x30,0x80,0x0F,0x80,0x00, //字符:[w][60]
0x00,0x00,0x80,0x20,0x80,0x31,0x00,0x2E,0x80,0x0E,0x80,0x31,0x80,0x20,0x00,0x00, //字符:[x][61]
0x80,0x80,0x80,0x81,0x80,0x8E,0x00,0x70,0x00,0x18,0x80,0x06,0x80,0x01,0x80,0x00, //字符:[y][62]
0x00,0x00,0x80,0x21,0x80,0x30,0x80,0x2C,0x80,0x22,0x80,0x21,0x80,0x30,0x00,0x00, //字符:[z][63]
0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, //字符:[-][64]
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00, //字符:[:][65]
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x18,0x18,0x04,0x20,0x02,0x40,0x00,0x00, //字符:[(][66]
0x00,0x00,0x02,0x40,0x04,0x20,0x18,0x18,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00, //字符:[)][67]
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80 //字符:[_][68]
};
uchar code ChineseCharDot[]={
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, //字符:[日][1]---0xC8D5
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, //字符:[期][2]---0xC6DA
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, //字符:[年][3]---0xC4EA
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, //字符:[月][4]---0xD4C2
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, //字符:[时][5]---0xCAB1
0x80,0x00,0x40,0x80,0x20,0x40,0x98,0x20,0x87,0x10,0x82,0x0F,0x80,0x00,0x80,0x00,
0x83,0x20,0x84,0x40,0x98,0x3F,0x30,0x00,0x60,0x00,0xC0,0x00,0x40,0x00,0x00,0x00, //字符:[分][6]---0xB7D6
0x12,0x04,0x12,0x03,0xD2,0x00,0xFE,0xFF,0x91,0x00,0x11,0x83,0xC0,0x80,0x38,0x40,
0x10,0x40,0x00,0x20,0xFF,0x23,0x00,0x10,0x08,0x08,0x10,0x04,0x60,0x03,0x00,0x00, //字符:[秒][7]---0xC3EB
0x10,0x02,0x21,0xFE,0x86,0x01,0x70,0x40,0x00,0x7F,0x7E,0x41,0x4A,0x41,0x4A,0x7F,
0x4A,0x41,0x4A,0x41,0x4A,0x7F,0x7E,0x41,0x00,0x41,0x00,0x7F,0x00,0x40,0x00,0x00, //字符:[温][8]---0xCEC2
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, //字符:[度][9]---0xB6C8
0x00,0x00,0x02,0x00,0x05,0x00,0xE2,0x07,0x18,0x18,0x04,0x20,0x02,0x40,0x02,0x40,
0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x04,0x20,0x1E,0x18,0x00,0x00,0x00,0x00, //字符:[℃][10]---0xA1E6
0x40,0x01,0x30,0x01,0xEF,0x7F,0x24,0x21,0x24,0x11,0x04,0x01,0x90,0x20,0x90,0x20,
0xFF,0x10,0x88,0x0B,0x49,0x0C,0x4E,0x14,0x48,0x22,0x48,0x41,0x00,0xF0,0x00,0x00, //字符:[钱][11]---0xC7AE
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, //字符:[小][12]---0xD0A1
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, //字符:[四][13]---0xCBC4
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, //字符:[间][14]---0xBCE4
0x00,0x02,0x02,0x5E,0x1C,0x43,0xC0,0x20,0x30,0x20,0x4C,0x10,0x30,0x08,0x0F,0x04,
0x08,0x03,0xF8,0x01,0x08,0x06,0x08,0x08,0x28,0x30,0x18,0x60,0x08,0x20,0x00,0x00, //字符:[次][15]---0xB4CE
0x10,0x42,0x92,0x42,0x54,0x2A,0x38,0x2E,0xFF,0x13,0x38,0x1A,0x54,0x26,0x52,0x02,
0x80,0x40,0xF0,0x20,0x1F,0x13,0x12,0x0C,0x10,0x33,0xF0,0x60,0x10,0x20,0x00,0x00 //字符:[数][16]---0xCAFD
};
/************************************************************************
==========================函数声明======================================
************************************************************************/
void lcdpos(void);
uchar lcdrd(void);
void lcdwd(uchar dispdata);
void timeRead(void);
void Byte_Write(uint addres,uchar write_data);
void DisplayCount(void);
void DisplayTime(void);
void DisplayRecord(uchar number);
void Sector_Erase(uint addres);
/**************************************************************************
* 函数原型: void DogReset(void)
* 功 能: 重新设置看门狗
**************************************************************************/
void DogReset(void) reentrant{
#if STC89C58
#if STCSPD_1
WDT_CONTR=0x35;
#elif STCSPD_2
WDT_CONTR=0x36;
#endif
#elif W77E58
TA=0xaa;
TA=0x55;
RWT=1;
_nop_();
_nop_();
#endif
}
/**************************************************************************
* 函数原型: void Dog_Init(void)
* 功 能: 看门狗设置
**************************************************************************/
void Dog_Init(void){
#if STC89C58
#if STCSPD_1
WDT_CONTR=0x34; // 2秒
#elif STCSPD_2
WDT_CONTR=0x35; // 2秒
#endif
#elif W77E58
CKCON&=0x3f; // 3秒
CKCON|=0xc0;
/* _nop_();
_nop_();
_nop_();
TA=0xaa;
TA=0x55;
WDCON=0;*/
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TA=0xaa;
TA=0x55;
WDCON=2;
#endif
}
/************************************************************************
函数名:
参数:
功能:显示一个偏移后的字符
返回值:
************************************************************************/
void putsizeimage(uchar XSIZE,uchar YSIZE,uchar code *s){
uchar k,lx,ly,a1,a2,y;
k=Lcd_CurrentY&0x7;//字符的下偏移行数(针对非8位(页)偏移)
YSIZE+=k;//偏移等效于增大字体---16+k
y=Lcd_CurrentY;//当前行参数
for(lx=0;lx<XSIZE;lx++,Lcd_CurrentX++){//列---XSIZE=16或8
DogReset();
for(Lcd_CurrentY=y,ly=k,a1=0;ly<YSIZE;s++){//行---YSIZE=16+k
uchar p;
DogReset();
a2=*s;//新显示字库值
for(p=0;p<k;p++){//偏移行数(针对非8位偏移)
DogReset();
a2<<=1;//写入12232时上低下高故左移1位,等效于显示字符时向下偏移1位。
if((a1&0x80)==0x80){//若a1移出的是'1',将其存到a2的bit0。-----step2用到。
a2++;
}
a1<<=1;//将A2移出去的放入A1,等效于A1,A2组成1个16位的移位器。
}
lcdpos();//地址写命令
p=YSIZE&0x7;//增大字体后大于2页,即大于16,与16比较的差值。---字体类型(大小)有关
if(ly<8){ //偏移小于一个字节---8----step1
if(YSIZE<8){//增大后的字体小于8
Lcd_Mask=LeftMask[k]&RightMask[p];//下偏移或者上偏移
a1=lcdrd();//读当前显示的数据内容
a1&=(~Lcd_Mask);//获取偏移的数据内容
a1|=(a2&Lcd_Mask);//屏蔽a2的偏移的数据内容,将剩余的内容移到a1对应的位。
lcdwd(a1);//写替代显示的数据数据内容
ly=YSIZE;//结束当前字符循环条件
Lcd_CurrentY+=YSIZE-k;//下一个字符地址
}
else{//增大后的字体大于8
Lcd_Mask=LeftMask[k];
a1=lcdrd();
a1&=(~Lcd_Mask);
a1|=(a2&Lcd_Mask);
lcdwd(a1);
ly+=8-k;//下一页,LY=8。
Lcd_CurrentY+=8-k;//下一页地址
}
}
else if(ly>=YSIZE-p){//超出字体高度(大小),当前字符显示最后处理----step3
if(k>=p){//若增大后字体大于16,则取上一次偏移剩余的点阵存于a2。
s--;
a1=*s;
a2=0;
for(p=0;p<k;p++){
DogReset();
a2<<=1;
if((a1&0x80)==0x80){
a2++;
}
a1<<=1;
}
p=YSIZE&0x7;//字体大于16后,最后一次显示剩余的点阵个数
}
Lcd_Mask=RightMask[p];//索引获取屏蔽位的数量
a1=lcdrd();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -