📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 04/10/2008 10:43:45 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\xiazai\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE daima\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(.\xiazai\ma
-in.obj)
line level source
1 #include"reg52.h"
2 sfr WDT_CONTR=0xe1;
3 #define zimushuru 0
4 #define pinyinchazhao 1
5 #define hazixianshi 2
6 #define xunhuan_xianshi 3
7 #define write_to_eprom 4
8 #define read_of_eprom 5
9 #define yiwei_xianshi 6
10
11 extern void display(void);
12 extern bit keyread(unsigned char *keyborad);
13 extern unsigned char translatekeytoasc(key);
14
15 extern void Readtodisp_kuodown(unsigned char ASCIICode,unsigned char count);
16 extern void Clear_one_zimu(unsigned char ge);
17 extern void Pre_hz();
18 extern void Next_hz();
19 extern void Choose_hz(unsigned char no);
20 extern void pyInit();
21 extern void Pageup();
22 extern void Pagedown();
23 extern void pinyinchazi(unsigned char *py);
24 extern void Clear_one_hanzi(void);
25 extern unsigned char page;
26 extern void Save_eprom();
27 extern void Read_eprom();
28 extern void Choose_eprom();
29 extern void Init();
30 extern void Clear_all(void);
31 extern void flash_disply(void);
32 extern void flash_this_page(void);
33 extern void begin(void);
34 xdata unsigned char key;
35 unsigned char zhuangtai=zimushuru;
36
37 sbit OE=P3^5; //138的使能
38
39 unsigned char zi_mu_ge_shu=0,zimu[7]="";
40 bit flag_begin=0;
41
42
43 void main()
44 {
45 1
46 1 pyInit();
47 1 zhuangtai=1;
48 1 begin();
49 1 TMOD=0x01;
50 1 TH0=0xf8;
51 1 TL0=0x00;
52 1 EA=1;
53 1 ET0=1;
54 1 TR0=1;
C51 COMPILER V8.02 MAIN 04/10/2008 10:43:45 PAGE 2
55 1 OE=0;
56 1
57 1 while(1)
58 1 {
59 2 if(keyread(&key))
60 2 {
61 3 key=translatekeytoasc(key);
62 3 if(flag_begin==0&&key!=24)
63 3 continue;
64 3 if(flag_begin==0&&key==24)
65 3 {
66 4 flag_begin=1;
67 4 Init();
68 4 }
69 3 if(key>='a'&&key<='z')
70 3 {
71 4 if(zhuangtai<=hazixianshi)
72 4 {
73 5 if(zhuangtai!=zimushuru)
74 5 Clear_all();
75 5 zhuangtai=zimushuru;
76 5
77 5 if(zi_mu_ge_shu<=5)
78 5 {
79 6 zimu[zi_mu_ge_shu]=key;
80 6 Readtodisp_kuodown(key,zi_mu_ge_shu);
81 6 zi_mu_ge_shu++;
82 6 }
83 5 }
84 4 }
85 3 else if(key==12) //撤消键
86 3 {
87 4 if(zhuangtai==zimushuru&&zi_mu_ge_shu!=0)
88 4 {
89 5 zi_mu_ge_shu--;
90 5 zimu[zi_mu_ge_shu]='\0';
91 5 Clear_one_zimu(zi_mu_ge_shu);
92 5 }
93 4 else if(zhuangtai==hazixianshi)
94 4 {
95 5 Clear_one_hanzi();
96 5 }
97 4 }
98 3 else if(key==29)
99 3 {
100 4 if(zhuangtai==zimushuru) //空格键
101 4 {
102 5 pinyinchazi(zimu);
103 5 zhuangtai=pinyinchazhao;
104 5 zi_mu_ge_shu=0;
105 5 zimu[0]='\0';
106 5 zimu[1]='\0';
107 5 zimu[2]='\0';
108 5 zimu[3]='\0';
109 5 zimu[4]='\0';
110 5 zimu[5]='\0';
111 5 zimu[6]='\0';
112 5 }
113 4 }
114 3 else if(key==18)
115 3 {
116 4 if(zhuangtai==pinyinchazhao) //拼音下翻字
C51 COMPILER V8.02 MAIN 04/10/2008 10:43:45 PAGE 3
117 4 {
118 5 Next_hz();
119 5 }
120 4 }
121 3 else if(key==17)
122 3 {
123 4 if(zhuangtai==pinyinchazhao) //拼音上翻字
124 4 {
125 5 Pre_hz();
126 5 }
127 4 }
128 3 else if(key>=49&&key<=52)
129 3 {
130 4 if(zhuangtai==pinyinchazhao) //选字
131 4 {
132 5 zhuangtai=hazixianshi;
133 5 Choose_hz(key-49);
134 5 }
135 4 }
136 3 else if(key==15) //上翻页
137 3 {
138 4 if(zhuangtai<=hazixianshi)
139 4 {
140 5 zhuangtai=hazixianshi;
141 5 Pageup();
142 5 }
143 4 }
144 3 else if(key==16) //下翻页
145 3 {
146 4 if(zhuangtai<=hazixianshi)
147 4 {
148 5 zhuangtai=hazixianshi;
149 5 Pagedown();
150 5 }
151 4 }
152 3 else if(key==24) //ESC
153 3 {
154 4 if(zhuangtai==hazixianshi)
155 4 {
156 5 flash_disply();
157 5 zhuangtai=xunhuan_xianshi; //组循环显示
158 5 page=0;
159 5 }
160 4 else
161 4 {
162 5 zhuangtai=hazixianshi;
163 5 if(zhuangtai==xunhuan_xianshi)
164 5 page=0;
165 5 flash_this_page();
166 5 }
167 4 }
168 3 else if(key==27) //ctrl
169 3 {
170 4 if(zhuangtai!=xunhuan_xianshi&&zhuangtai!=yiwei_xianshi)
171 4 zhuangtai=write_to_eprom; //保存词组状态
172 4 }
173 3 else if(key==32) //enter
174 3 {
175 4 if(zhuangtai==read_of_eprom)
176 4 {
177 5 Choose_eprom();
178 5 zhuangtai=hazixianshi;
C51 COMPILER V8.02 MAIN 04/10/2008 10:43:45 PAGE 4
179 5 }
180 4 }
181 3 else if(key==21) //del键
182 3 {
183 4 if(zhuangtai!=xunhuan_xianshi)
184 4 zhuangtai=yiwei_xianshi;
185 4
186 4 }
187 3 else
188 3 { if(zhuangtai!=xunhuan_xianshi&&zhuangtai!=yiwei_xianshi) //在循环和移位显示状态不能进入
189 4 {
190 5 if(zhuangtai==write_to_eprom)
191 5 {
192 6 zhuangtai=hazixianshi;
193 6 Save_eprom(); //保存字
194 6 }
195 5 else
196 5 {
197 6 Read_eprom();
198 6 zhuangtai=read_of_eprom; //读取已存的字
199 6 }
200 5 }
201 4 }
202 3
203 3
204 3
205 3 }
206 2
207 2 }
208 1
209 1
210 1 }
211
212
213 void dis(void) interrupt 1
214 {
215 1 TH0=0xf0;
216 1 TL0=0x00;
217 1 display();
218 1
219 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 585 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 1 ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -