📄 key4x412232.lst
字号:
C51 COMPILER V8.02 KEY4X412232 01/21/2009 22:22:47 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY4X412232
OBJECT MODULE PLACED IN H:\MYPROJ~1\12232~1\KEY4X412232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE H:\MYPROJ~1\12232~1\KEY4X412232.C DB SB OE
line level source
1 #include "reg51.h"
2 #include"intrins.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define nop _nop_() /*定义空操作指令*/
6 #define DATE P0 //数据口
7 //键盘扫描
8 #define x(n) {if(n) PIN_KEY1=1; else PIN_KEY1=0;}
9 #define y(n) {if(n) PIN_KEY2=1; else PIN_KEY2=0;}
10 #define z(n) {if(n) PIN_KEY3=1; else PIN_KEY3=0;}
11
12 sbit E1 = P1^6;
13 sbit E2 = P1^7;
14 sbit A0 = P2^7;
15 sbit cs1=P1^4;
16 sbit PIN_BUZZER=P3^5;
17 unsigned char temp,num1;
18 unsigned char key;
19 unsigned char i,j;
20 uint count,num;
21 static uchar code * data pzm;
22 static uchar code * data pzm1;
23 uchar code zm[]={
24 /*-- 文字: 0 --*/
25 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
26 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
27
28 /*-- 文字: 1 --*/
29 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
30 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
31
32 /*-- 文字: 2 --*/
33 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
34 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
35
36 /*-- 文字: 3 --*/
37 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
38 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
39
40 /*-- 文字: 4 --*/
41 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
42 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
43
44 /*-- 文字: 5 --*/
45 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
46 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
47
48 /*-- 文字: 6 --*/
49 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
50 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
51
52 /*-- 文字: 7 --*/
53 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
54 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
55
C51 COMPILER V8.02 KEY4X412232 01/21/2009 22:22:47 PAGE 2
56 /*-- 文字: 8 --*/
57 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
58 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
59
60 /*-- 文字: 9 --*/
61 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
62 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
63
64 };
65 uchar code zm1[]={
66 /*-- 文字: 欢 --*/
67 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
68 0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,
69 0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,
70
71 /*-- 文字: 迎 --*/
72 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
73 0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
74 0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00,
75
76 /*-- 文字: 使 --*/
77 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
78 0x40,0x20,0xF0,0x1C,0x07,0xF2,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xF4,0x04,0x00,
79 0x00,0x00,0x7F,0x00,0x40,0x41,0x22,0x14,0x0C,0x13,0x10,0x30,0x20,0x61,0x20,0x00,
80
81 /*-- 文字: 用 --*/
82 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
83 0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,
84 0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,
85
86 /*-- 文字: 本 --*/
87 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
88 0x08,0x08,0x08,0x08,0x08,0xC8,0x38,0xFF,0x18,0x68,0x88,0x08,0x08,0x08,0x08,0x00,
89 0x08,0x08,0x04,0x02,0x05,0x04,0x04,0x7F,0x04,0x04,0x04,0x03,0x06,0x0C,0x04,0x00,
90
91 /*-- 文字: 系 --*/
92 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
93 0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62,0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00,
94 0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81,0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00,
95
96 /*-- 文字: 统 --*/
97 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
98 0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4,0xA4,0x9D,0x86,0x84,0xA4,0xC4,0x84,0x00,
99 0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30,0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,0x00,
100
101 };
102 sbit PIN_KEY4=P0^4;
103 sbit PIN_KEY5=P0^5;
104 sbit PIN_KEY6=P0^6;
105 sbit PIN_KEY7=P0^7;
106
107 sbit PIN_KEY1=P2^5;
108 sbit PIN_KEY2=P2^4;
109 sbit PIN_KEY3=P2^3;
110 uchar keyscan();
111 #define LCD_DISPLAYON 0xaf //af 开显示,
112 #define LCD_DISPLAYOFF 0xae //ae 关显示,
113 #define LCD_DRIVERON 0xa5 //a5 静态显示驱动
114 #define LCD_DRIVEROFF 0xa4 //a4正常驱动
115 #define LCD_DUTY16 0xa8 //占空比1/16
116 #define LCD_DUTY32 0xa9 //占空比1/32
117 //
C51 COMPILER V8.02 KEY4X412232 01/21/2009 22:22:47 PAGE 3
118 #define LCD_END 0xee /*关闭“读-修改-写”模式,并把列地址指针
119 恢复到打开“读-修改-写”模式前的位置。*/
120
121 #define LCD_RESET 0xe2 /*初始化。① 设置显示初始行为第一行;
122 ②页地址设置为第三页。*/
123
124 #define LCD_RWMODE 0xe0 /*“读-修改-写”模式 。执行该指令以后,
125 每执行一次写数据,指令列地址自动加1;
126 但执行读数据指令时列地址不会改变。
127 这个状态一直持续到执行“END”指令。
128 注意:在“读-修改-写”模式下,
129 除列地址设置指令之外,其他指令照常执行。 */
130 #define LCD_STARTLINE0 0xc0 //设置显示起始行 可以加0-31
131 #define LCD_PAGE0 0xb8 //页地址设置 可以加0-3
132 #define LCD_COLUMNADDR0 0x00 //列地址设置 可以加0-60
133
134 #define LCD_ON() LCD_Command(LCD_DISPLAYON)
135 #define LCD_OFF() LCD_Command(LCD_DISPLAYOFF)
136 #define LCD_StaticON() LCD_Command(LCD_DRIVERON)
137 #define LCD_StaticOFF() LCD_Command(LCD_DRIVEROFF)
138 #define LCD_Select16() LCD_Command(LCD_DUTY16)
139 #define LCD_Select32() LCD_Command(LCD_DUTY32)
140 #define LCD_StartRW() LCD_Command(LCD_RWMODE)
141 #define LCD_EndRW() LCD_Command(LCD_END)
142 #define LCD_Reset() LCD_Command(LCD_RESET)
143 #define LCD_SetStartLine(i) LCD_Command(LCD_STARTLINE0|i)
144 #define LCD_SetPage(i) LCD_Command(LCD_PAGE0|i)
145 #define LCD_SetColumn(i) LCD_Command(LCD_COLUMNADDR0|i)
146 void delay1s();
147 void LCD_Command(uchar);
148 void LCD_SetRam(bit zhucongmian,uchar ndata);
149 void LCD_Init();
150 void clrscr(void);
151 drawword(uchar liedizhi,uchar layer,uchar wenzi);
152 /******************************************************************************************
153 * 函数名称 :LCD_Command
154 * 功能描述 :写命令
155 * 参数 : 参数名称: 输入/输出? 类型 描述
156 *
157 * 返回值 :
158 * 作者 :
159 * 创建日期 :2006-12-19
160 * 全局变量 :
161 * 全局静态变量:
162 * 局部静态变量:
163 *----------------------------------------修改历史------------------------------------------
164 * 当前版本 : 修改人: 修改日期:
165 * 修改说明 :
166 ******************************************************************************************/
167 void delay1()
168 { ; ;
169 1 }
170 void LCD_Command(uchar nCommand)
171 {
172 1 A0=0;
173 1
174 1 E1=1;
175 1
176 1 E2=1;
177 1
178 1 DATE=nCommand;
179 1
C51 COMPILER V8.02 KEY4X412232 01/21/2009 22:22:47 PAGE 4
180 1 E1=0;
181 1
182 1 E2=0;
183 1
184 1 }
185 /******************************************************************************************
186 * 函数名称 :LCD_SetRam
187 * 功能描述 :送显示数据ndata,setMS为0主,1从
188 * 参数 : 参数名称: 输入/输出? 类型 描述
189 *
190 * 返回值 :
191 * 作者 :
192 * 创建日期 :2006-12-19
193 * 全局变量 :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -