?? test.lst
字號(hào):
C51 COMPILER V8.02 TEST 01/27/2007 22:14:50 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE test.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG51.H>
2 sbit P0_0=P0^0;
3 sbit rs = P1^0; //H=data; L=command;
4 sbit rw = P1^1; //H=read; L=write;
5 sbit e = P1^2; //input enable;
6 sbit busy=P2^7; //lcd busy bit
7
8
9
10
11 #define com_expand_command 0x40
12 #define base_command 0x34
13
14 #define oppsite_cursor_dec 0x10
15 #define open_display_oppsite 0x0D
16 #define clear_screen 0x01
17
18
19 /*------下面的這些反白指令沒(méi)有什么用處!--------*/
20 #define oppsite_first_line 0x04
21 #define oppsite_second_line 0x05
22 #define oppsite_third_line 0x06
23 #define oppsite_forth_line 0x07
24 /*------上面的這些反白指令沒(méi)有什么用處!--------*/
25
26 /*-----鍵盤掃描碼定義------------------*/
27 #define key_down_1 14 //第一鍵
28 #define key_down_2 13 //第二鍵
29 #define key_down_3 11 //
30 #define key_down_4 7 //
31
32 #define k1 14
33 #define k2 13
34 #define K3 11
35 #define K4 7
36
37 #define OK_Down 14
38 #define Up_Down 11
39 #define Down_Down 7
40 /*-----鍵盤掃描碼定義------------------*/
41
42
43
44 /*-------------屏幕代號(hào)定義區(qū)-----------*/
45 #define Main_menu 4
46 #define Wave_Choose_menu 5
47 #define Fruequency_Choose_menu 6
48 #define Wave_range 7
49
50 #define comm 0
51 #define dat 1
52 #define uchar unsigned char
53
54
55
C51 COMPILER V8.02 TEST 01/27/2007 22:14:50 PAGE 2
56 uchar code screen_data[][64]={
57 {
58 "淮北煤炭師范學(xué)院"
59 "03級(jí)電子信息 2班"
60 " 石瑋松 "
61 " 畢業(yè)設(shè)計(jì) "},//第一屏
62 ///////////////////////////
63 {" "
64 " "
65 " DDS信號(hào)發(fā)生器 "
66 " "},//第二屏
67 //////////////////////////
68 {"指導(dǎo)老師: 周正"
69 " "
70 " 候俊欽"
71 " "},//第三屏
72 ////////////////////////
73 {" 系統(tǒng)啟動(dòng)中 "
74 "請(qǐng)您保護(hù)國(guó)有資產(chǎn)"
75 "您請(qǐng)稍候********"
76 " "},//第四屏
77 ////////////////////////
78 {"波形 頻率 幅度"
79 " 歡迎 使用 "
80 "返回 確認(rèn)"
81 "煤師院信號(hào)發(fā)生器"},//第五屏
82 ///////////////////////
83 {"正弦波 三角波"
84 "返回 確認(rèn)"
85 "方波 "
86 "煤師院信號(hào)發(fā)生器"////第六屏
87 },
88 {"頻率: HZ"
89 " 歡迎 使用 "
90 "返回 確認(rèn)"
91 "煤師院信號(hào)發(fā)生器"////第七屏
92 },
93 {"幅度: MV"
94 " 歡迎 使用 "
95 "返回 確認(rèn)"
96 "煤師院信號(hào)發(fā)生器" ////第八屏
97 }
98
99 };
100
101 //函數(shù)聲明
102 void chk_busy (void);
103 void voice_function();
104
105 void Set_Oppsite_Point(uchar posituin);
106 void Down_Down_function();
107 void Up_Down_function();
108 void Ok_Down_function();
109 void Shown_Main_menu();//顯示主菜單
110
111
112
113 /*-----鍵盤變量定義--------*/
114 unsigned char KEY_WORD;
115 bit KEY_DOWN;
116 uchar Current_screen_num;
117 uchar Currrent_Position;//保存光標(biāo)所在的位置
C51 COMPILER V8.02 TEST 01/27/2007 22:14:50 PAGE 3
118
119 /*------鍵盤掃描也是中T0中斷函數(shù)--------*/
120 void inter_timer0() interrupt 1
121 {
122 1 unsigned char b;
123 1 TR0=0;
124 1 P3=0xff;
125 1 b=P3;
126 1 b=b&0x0f;
127 1 if(b!=15)
128 1 {
129 2 KEY_DOWN=1;
130 2 KEY_WORD=b;
131 2 voice_function();
132 2 }
133 1 while(b!=15)
134 1 {
135 2 b=P3;
136 2 b=b&0x0f;
137 2 }
138 1 TR0=1;
139 1
140 1
141 1 }
142
143 /*------發(fā)音子程序-------*/
144 void voice_function()
145 {
146 1 int c,e,d;
147 1 for(d=0;d<1;d++)
148 1 {
149 2
150 2 for (c=0;c<50;c++)
151 2 for(e=0;e<100;e++)
152 2 P0_0=0;
153 2
154 2 for (c=0;c<50;c++)
155 2 for(e=0;e<100;e++)
156 2 P0_0=1;
157 2 }
158 1 }
159 /*------------寫LCD子程序----------*/
160 void wr_lcd (unsigned char dat_comm,unsigned char content)
161 {
162 1 unsigned char i;
163 1
164 1 chk_busy ();
165 1
166 1 if(dat_comm)
167 1 {
168 2 rs=1; //data
169 2 rw=0; //write
170 2 }
171 1 else
172 1 {
173 2 rs=0; //command
174 2 rw=0; //write
175 2 }
176 1 P2=content; //本人用的上P2口輸出數(shù)據(jù)
177 1
178 1 e=1;
179 1
C51 COMPILER V8.02 TEST 01/27/2007 22:14:50 PAGE 4
180 1 for(i=0;i<5;i++)
181 1 {
182 2 ; //這里是用來(lái)迤時(shí)間的這是我加的我
183 2 //是怕這個(gè)家伙太快了不會(huì)液晶反應(yīng)不過(guò)來(lái)
184 2 }
185 1 e=0;
186 1
187 1
188 1 }
189
190 void chk_busy (void)
191 {
192 1 P2=0xff;
193 1 rs=0;
194 1 rw=1;
195 1 e =1;
196 1 while(busy==1);
197 1 e =0;
198 1 }
199 /*--------初始化定時(shí)器----------*/
200 void inicial_timer () {
201 1 TMOD=0x1;
202 1 EA=1;
203 1 TR0=1;
204 1 ET0=1;
205 1 }
206 /*------------顯示一個(gè)整屏----------*/
207 void display_all_screen (uchar screen_num)
208 {
209 1 uchar counter;
210 1 wr_lcd (comm,clear_screen);//這里是寫入清屏指令
211 1 wr_lcd (comm,0x80);
212 1 for(counter=0;counter<64;counter++)
213 1 {
214 2 wr_lcd (dat,screen_data[screen_num][counter]);
215 2 }
216 1
217 1 }
218
219
220
221 void delay_ms(unsigned int ms)////延時(shí)毫秒級(jí)的
222 { unsigned int i,j;
223 1 uchar timer;
224 1 for(i=0;i<ms;i++)
225 1 for(j=0;j<30;j++)
226 1 { for(timer=10;timer>1;timer--)
227 2 {
228 3 ;
229 3 }
230 2 }
231 1 }
232
233
234 /*------鍵盤響應(yīng)函數(shù)----------*/
235 void respond_key_down()
236 {
237 1 if(KEY_DOWN)
238 1 {
239 2 KEY_DOWN=0;
240 2 switch(KEY_WORD)
241 2 {
C51 COMPILER V8.02 TEST 01/27/2007 22:14:50 PAGE 5
242 3 case Up_Down:
243 3 Up_Down_function();
244 3 break;
245 3 case Down_Down:
246 3 Down_Down_function();
247 3
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -