📄 key.lst
字号:
C51 COMPILER V7.07 KEY 03/12/2007 20:04:05 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <SST89x5x4.H>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define lcd_clr 0x01
6 #define you_on 0x0f
7
8 #define BIT0 0X01
9 #define BIT1 0X02
10 #define BIT2 0X04
11 #define BIT3 0X08
12 #define BIT4 0X10
13 #define BIT5 0X20
14 #define BIT6 0X40
15 #define BIT7 0X80
16
17
18
19 //全局变量定义
20 sbit rs = P1^7;
21 sbit rw = P1^6;
22 sbit e = P2^1;
23 sbit lcd_deng = P2^3;
24
25
26 //函数申明
27 void lcd_ini(void);
28 void lcd_wrc(uchar com);
29 void lcd_wrd(uchar dat);
30 void lcd_checkbusy();
31 void delay(uchar n);
32 void ldelay(uchar n);
33 void lcd_on();
34 void lcd_off();
35 uchar lcd_read_ac();
36 void lcd_dis_num(uint dat);
37 void lcd_dis_ch(uchar h,uchar l);
38 void lcd_add(uchar h,uchar l);
39
40 uchar key_data(void);
41
42
43
44 void main()
45 {
46 1 uchar i;
47 1
48 1 lcd_off();
49 1 lcd_on();
50 1 lcd_ini();
51 1 lcd_add(2,1);
52 1 lcd_dis_ch(0xb4,0xa1);
53 1 lcd_dis_ch(0xb4,0xa1);
54 1 lcd_dis_ch(0xb4,0xa1);
55 1 i=lcd_read_ac();
C51 COMPILER V7.07 KEY 03/12/2007 20:04:05 PAGE 2
56 1 lcd_dis_num(i);
57 1 // lcd_wrc(you_on); //游标开关
58 1 // lcd_wrc(0x10); //光标左移
59 1 lcd_add(1,1);
60 1 lcd_dis_num(3);
61 1 // ldelay(10);
62 1 while(1)
63 1 {
64 2 // lcd_wrd(0x30+keydata);
65 2
66 2
67 2 /*
68 2 for(i=0;i<5;i++)
69 2 {
70 2 delay(100);
71 2 lcd_dis_num(i);
72 2 delay(100);
73 2 }
74 2 // ldelay(100);
75 2 */
76 2 }
77 1 }
78
79
80 void lcd_ini()
81 {
82 1 delay(100);
83 1 lcd_wrc(0x34);
84 1 lcd_wrc(0x30);
85 1 lcd_wrc(0x01);
86 1 lcd_wrc(0x06);
87 1 lcd_wrc(0x0c);
88 1 delay(100);
89 1 }
90 void lcd_wrc(uchar com)
91 {
92 1 lcd_checkbusy();
93 1 rs = 0;
94 1 rw = 0;
95 1 e = 1;
96 1 P0 = com;
97 1 P0 = com;
98 1 delay(10);
99 1 e = 0;
100 1 }
101
102 void lcd_wrd(uchar dat)
103 {
104 1 lcd_checkbusy();
105 1 rs = 1;
106 1 rw = 0;
107 1 e = 1;
108 1 P0 = dat;
109 1 P0 = dat;
110 1 delay(5);
111 1 e = 0;
112 1 }
113 void lcd_checkbusy()
114 {
115 1 uchar busy;
116 1 P0 = 0XFF;
117 1 busy = P0;
C51 COMPILER V7.07 KEY 03/12/2007 20:04:05 PAGE 3
118 1 if(busy>0x7f)
119 1 {
120 2 rs = 0;
121 2 rw = 1;
122 2 e = 1;
123 2 busy = P0;
124 2 e = 0;
125 2 delay(10);
126 2 }
127 1 }
128 uchar lcd_rdd();
129 void delay(uchar n)
130 {
131 1 while(n--);
132 1 }
133 void ldelay(uchar n)
134 {
135 1 uchar a=100;
136 1 while(a--)
137 1 {
138 2 while(n--);
139 2 }
140 1 }
141 void lcd_on()
142 {
143 1 lcd_deng = 0;
144 1 }
145 void lcd_off()
146 {
147 1 lcd_deng = 1;
148 1 }
149 uchar lcd_read_ac()
150 {
151 1 uchar dat;
152 1 // P0 = 0X00;
153 1 rs = 0;
154 1 rw = 1;
155 1 e = 1;
156 1 dat = P0;
157 1 dat = P0;
158 1 e = 0;
159 1 return(dat&0x7f);
160 1 }
161 void lcd_dis_num(uint dat)
162 {
163 1 uint a=0;
164 1 dat =dat%10000;
165 1 a =dat/1000;
166 1 lcd_wrd(0x30+a);
167 1 dat =dat%1000;
168 1 a =dat/100;
169 1 lcd_wrd(0x30+a);
170 1 dat =dat%100;
171 1 a=dat/10;
172 1 lcd_wrd(0x30+a);
173 1 dat =dat%10;
174 1 lcd_wrd(0x30+dat);
175 1 }
176 void lcd_dis_ch(uchar h,uchar l)
177 {
178 1 lcd_wrd(h);
179 1 lcd_wrd(l);
C51 COMPILER V7.07 KEY 03/12/2007 20:04:05 PAGE 4
180 1 }
181
182 void lcd_add(uchar h,uchar l) //定位地址
183 {
184 1 l--;
185 1 switch(h)
186 1 {
187 2 case 1:
188 2 {
189 3 lcd_wrc(0x80+l);
190 3 break;
191 3 }
192 2 case 2:
193 2 {
194 3 lcd_wrc(0x90+l);
195 3 break;
196 3 }
197 2 case 3:
198 2 {
199 3 lcd_wrc(0x88+l);
200 3 break;
201 3 }
202 2 case 4:
203 2 {
204 3 lcd_wrc(0x98+l);
205 3 break;
206 3 }
207 2 }
208 1 }
209
210
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 374 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -