📄 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 通过键盘控制实现,语音报站同时LCD显示站名,
7 晶振24MHz。
8 接线说明:P1口接LCD的数据口,
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; //红外码位数
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; //数据、命令选择信号
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年,是专业研发及生产液晶显示器"
61 "和液晶模块的高新技术企业。LCD 显示器覆盖了多种系列多年来公司秉承"
62 "全力面向客户,技术专攻的经营理念,一直致力于为广大电子成品制造商"
63 "提供质量精良,性能稳定,品种齐全的LCD 显示屏及LCM 显示模块系列产"
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(); //系统初始化
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 * 参数: 无
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 * 功能: 系统初始化
124 * 参数: 无
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 * 参数: 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 * 参数: 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 * 功能: 写数据
181 * 参数: d:需要写入的数据
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 * 功能: 读数据
201 * 参数: 无
202 * 返回值: d:读出数据
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 + -