?? bussys.lst
字號:
C51 COMPILER V8.08 BUSSYS 03/01/2008 06:10:47 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE BUSSYS
OBJECT MODULE PLACED IN bussys.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bussys.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*+++++++++++++++++++++++++++++++++++++
2 LCD顯示,采用FM12864FLCD顯示模塊(帶中文字庫)
3 功能說明:鍵盤顯示,鍵盤采用普通彩電遙控器(SAA3010A),
4 語音芯片采用ISD1420P,能夠錄放20秒,
5 單片機采用AT89C51,
6 通過鍵盤控制實現(xiàn),語音報站同時LCD顯示站名,
7 晶振24MHz。
8 接線說明:P1口接LCD的數(shù)據(jù)口,
9 P0口接ISD1420P的地址口,
10 P3.2----PLAY
11 P3.3----REC
12 P3.4----RS
13 P3.5----WR
14 P3.6----E
15 P3.7接SM0038信號輸出腳
16 版本時間:2007-05-27 23:12
17 +++++++++++++++++++++++++++++++++++++++*/
18 #include<reg51.h>
19
20 void Clear();
21 void Delay(unsigned int t);
22 void Write_com(unsigned char d);
23 void Write_data(unsigned char d);
24 unsigned char Read_data();
25 void Disp_char(unsigned char pos,unsigned char dat);
26 void Disp_word0(unsigned char posx,unsigned char *p,unsigned char n);
27 void Lcd_system(void);
28 bit hw_yima();
29 void delay0(unsigned int t);
30 void Disp_control(unsigned char zm);
31 void Disp_number(unsigned char pos,unsigned int dat);
32 void Report(unsigned char sl);
33 void Rec_bus(unsigned char rec);
34 void Disp_pucture(unsigned char *p);
35 void bus_contorl();
36
37 unsigned char n=0; //紅外碼位數(shù)
38 unsigned char p_last=0; //上一次顯示指針偏移量
39 unsigned char zm_last=0;
40 unsigned char k=0;
41 unsigned char *q2;
42 unsigned int secret=0; //錄音密碼
43 unsigned int ymcode = 255; //紅外線編碼
44 bit flag0=1; //譯碼標志位
45 bit s;
46 bit hw=0; //解碼成功失敗標志位
47 bit mode=0; //模式選擇,0:報站模式,1錄音模式(錄音需要輸入密碼)。
48 bit xs=0; //顯示輸入密碼標志位
49 bit ly=0; //錄音允許位
50 sbit P1_0 = P3^7; //紅外線信號輸入斷口
51 sbit PLAY=P3^3; //放音
52 sbit REC =P3^2; //錄音
53 sbit LCD_RS=P3^4; //數(shù)據(jù)、命令選擇信號
54 sbit LCD_WR=P3^5; //讀寫信號
55 sbit LCD_E =P3^6; //使能信號
C51 COMPILER V8.08 BUSSYS 03/01/2008 06:10:47 PAGE 2
56 unsigned int tm=0;
57 unsigned char code gImage_word0[1024];
58 unsigned char code gImage_word2[1024];
59 unsigned char code table0[]={"虎泉 桌刀泉廣阜屯街道口洪山 丁字橋傅家坡大東門閱馬場下一站:"};
60 unsigned char code table1[]={"深圳市勤正達電子有限公司成立于2002年,是專業(yè)研發(fā)及生產(chǎn)液晶顯示器"
61 "和液晶模塊的高新技術企業(yè)。LCD 顯示器覆蓋了多種系列多年來公司秉承"
62 "全力面向客戶,技術專攻的經(jīng)營理念,一直致力于為廣大電子成品制造商"
63 "提供質(zhì)量精良,性能穩(wěn)定,品種齊全的LCD 顯示屏及LCM 顯示模塊系列產(chǎn)"
64 "品。望成為您的首選合作伙伴。 "};
65 unsigned char code table2[]={"請輸入密碼:""錄音模式""密碼錯誤!"};
66
67 void main()
68 {
69 1 unsigned char num=0;
70 1 unsigned int i=0;
71 1 unsigned char *q;
72 1 TMOD=0x11;
73 1 TH1 = 0xF0;
74 1 TL1 = 0x60;
75 1 EA = 1;
76 1 ET1 = 1;
77 1 REC = 1;
78 1 PLAY= 1;
79 1 Delay(100);
80 1 Lcd_system(); //系統(tǒng)初始化
81 1 q=gImage_word2;
82 1 Disp_pucture(q);
83 1 delay0(30000);
84 1 q=gImage_word0;
85 1 Disp_pucture(q);
86 1 delay0(40000);
87 1 Clear();
88 1 while(1)
89 1 {
90 2 q=table1;
91 2 for(num=0;num<5;num++)
92 2 {
93 3 if(0==mode)
94 3 {
95 4 Disp_word0(0,q,32);
96 4 q=q+64;
97 4 }
98 3 for(i=0;i<60000;i++)
99 3 {
100 4 bus_contorl();
101 4 }
102 3 }
103 2 }
104 1 }
105
106 /***************************************
107 * 名稱: Clear()
108 * 說明:
109 * 功能: 清除全屏顯示
110 * 參數(shù): 無
111 * 返回值: 無
112 ****************************************/
113 void Clear()
114 {
115 1 Write_com(0x01);
116 1 Write_com(0x34);
117 1 Write_com(0x30);
C51 COMPILER V8.08 BUSSYS 03/01/2008 06:10:47 PAGE 3
118 1 }
119
120 /***************************************
121 * 名稱: Lcd_system()
122 * 說明:
123 * 功能: 系統(tǒng)初始化
124 * 參數(shù): 無
125 * 返回值: 無
126 ****************************************/
127 void Lcd_system(void)
128 {
129 1 Delay(600);
130 1 LCD_E = 0;
131 1 Write_com(0x34);
132 1 Delay(10000);
133 1 Write_com(0x30);
134 1 Delay(10000);
135 1 Write_com(0x01);
136 1 Delay(10000);
137 1 Write_com(0x06);
138 1 Delay(10000);
139 1 Write_com(0x0c);
140 1 Delay(10000);
141 1 }
142
143 /***************************************
144 * 名稱: Delay(unsigned int t)
145 * 說明:
146 * 功能: 延時
147 * 參數(shù): t:延時長度
148 * 返回值: 無
149 ****************************************/
150 void Delay(unsigned int t)
151 {
152 1 unsigned int i;
153 1 for(i=0;i<t;i++)
154 1 {;;;;;;;;;;}
155 1 }
156
157 /***************************************
158 * 名稱: Write_com(unsigned char d)
159 * 說明:
160 * 功能: 寫命令字
161 * 參數(shù): d:命令代碼
162 * 返回值: 無
163 ****************************************/
164 void Write_com(unsigned char d)
165 {
166 1 LCD_RS = 0;
167 1 LCD_E = 0;
168 1 LCD_WR = 0;
169 1 P1 = d;
170 1 LCD_E = 1;
171 1 Delay(40);
172 1 LCD_E = 0;
173 1 LCD_WR = 1;
174 1 Delay(100);
175 1 }
176
177 /***************************************
178 * 名稱: Write_data(unsigned char d)
179 * 說明:
C51 COMPILER V8.08 BUSSYS 03/01/2008 06:10:47 PAGE 4
180 * 功能: 寫數(shù)據(jù)
181 * 參數(shù): d:需要寫入的數(shù)據(jù)
182 * 返回值: 無
183 ****************************************/
184 void Write_data(unsigned char d)
185 {
186 1 LCD_E = 0;
187 1 LCD_RS = 1;
188 1 LCD_WR = 0;
189 1 P1 = d;
190 1 LCD_E = 1;
191 1 Delay(40);
192 1 LCD_E = 0;
193 1 LCD_WR = 1;
194 1 Delay(100);
195 1 }
196
197 /***************************************
198 * 名稱: unsigned char Read_data(void)
199 * 說明:
200 * 功能: 讀數(shù)據(jù)
201 * 參數(shù): 無
202 * 返回值: d:讀出數(shù)據(jù)
203 ****************************************/
204 unsigned char Read_data(void)
205 {
206 1 unsigned char d = 0;
207 1 LCD_E = 0;
208 1 LCD_RS = 1;
209 1 LCD_WR = 1;
210 1 LCD_E = 1;
211 1 Delay(50);
212 1 d = P1;
213 1 LCD_E = 0;
214 1 LCD_WR = 0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -