📄 beepon.lst
字号:
ARM COMPILER V2.32a, beepon 25/01/07 14:11:00 PAGE 1
ARM COMPILER V2.32a, COMPILATION OF MODULE beepon
OBJECT MODULE PLACED IN beepon.OBJ
COMPILER INVOKED BY: d:\Keil\ARM\BIN\CA.exe beepon.c THUMB BROWSE DEBUG TABS(4)
stmt level source
1
2
3 #include <includes.h>
4 #include <LPC21xx.H> /* LPC21xx definitions */
5 #define BEEPCON 0x80000000 /*P0.7 引脚控制B1,低电平蜂鸣*/
6 #define safe 0x00000800 /*p0.11绿灯亮 低电平亮*/
7 #define danger 0x00001000 /*p0.12红灯亮*/
8 #define LCD_BL 0x00800000 /*P0.23背光高电平亮 */
9 #define GUI_LCM_XMAX 128 /* 定义液晶x轴的点数 */
10 #define GUI_LCM_YMAX 64 /* 定义液晶y轴的点数 */
11
12 //IODIR1=IODIR1|0xFFFF0000; 使用P1 口时用这种办法改变输入输出方向
13 //IOSET1=0xB1AA0000 ;
14
15 /* 硬件连接: D0--D7 <===> P1.16--P1.23 PINSEL2 =0x0008H P1:25:16 用作GPIO 管脚。
16 * LCD_DIR <---> P0.22
17 * LCD_BL <--> P0.23
18 * /WR <===> P0.27
19 * /RD <===> P0.28
20 * /CE <===> P0.29
21
22 * C/D <===> P1.27/TDO 跳线
23 * /RST <===> P1.24*/
24
25 #define LCD_WR 0x08000000
26 #define LCD_RD 0x10000000
27 #define LCD_CE 0x20000000
28 #define LCD_CD 0x08000000
29 #define LCD_RST 0x01000000
30 #define LCD_DIR 0x00400000
31
32
33 /* T6963C 命令定义 */
34 #define LCD_CUR_POS 0x21 /* 光标位置设置(只有设置到有效显示地址并打开显示时才看到) */
35 #define LCD_CGR_POS 0x22 /* CGRAM偏置地址设置(可以增加自已的符号) */
36 #define LCD_ADR_POS 0x24 /* 地址指针位置(设置读写操作指针) */
37
38 #define LCD_TXT_STP 0x40 /* 文本区首址(从此地址开始向屏幕左上角显示字符) */
39 #define LCD_TXT_WID 0x41 /* 文本区宽度(设置显示宽度,N/6或N/8,其中N为x轴的点数) */
40 #define LCD_GRH_STP 0x42 /* 图形区首址(从此地址开始向屏幕左上角显示点) */
41 #define LCD_GRH_WID 0x43 /* 图形区宽度(设置显示宽度,N/6或N/8,其中N为x轴的点数) */
42
43 #define LCD_MOD_OR 0x80 /* 显示方式:逻辑或 */
44 #define LCD_MOD_XOR 0x81 /* 显示方式:逻辑异或 */
45 #define LCD_MOD_AND 0x82 /* 显示方式:逻辑与 */
46 #define LCD_MOD_TCH 0x83 /* 显示方式:文本特征 */
47
48 #define LCD_DIS_SW 0x90 /* 显示开关:D0=1/0,光标闪烁启用/禁用 */
49 /* D1=1/0,光标显示启用/禁用 */
50 /* D2=1/0,文本显示启用/禁用(打开后再使用) */
51 /* D3=1/0,图形显示启用/禁用(打开后再使用) */
52
53 #define LCD_CUR_SHP 0xA0 /* 光标形状选择:0xA0-0xA7表示光标占的行数 */
54
55 #define LCD_AUT_WR 0xB0 /* 自动写设置 */
56 #define LCD_AUT_RD 0xB1 /* 自动读设置 */
57 #define LCD_AUT_OVR 0xB2 /* 自动读/写结束 */
58
59 #define LCD_INC_WR 0xC0 /* 数据一次写,地址加1 */
ARM COMPILER V2.32a, beepon 25/01/07 14:11:00 PAGE 2
60 #define LCD_INC_RD 0xC1 /* 数据一次读,地址加1 */
61 #define LCD_DEC_WR 0xC2 /* 数据一次写,地址减1 */
62 #define LCD_DEC_RD 0xC3 /* 数据一次读,地址减1 */
63 #define LCD_NOC_WR 0xC4 /* 数据一次写,地址不变 */
64 #define LCD_NOC_RD 0xC5 /* 数据一次读,地址不变 */
65
66 #define LCD_SCN_RD 0xE0 /* 屏读 */
67
68 #define LCD_SCN_CP 0xE8 /* 屏拷贝 */
69
70 #define LCD_BIT_OP 0xF0 /* 位操作:D0-D2--定义D0-D7位,D3--1为置位,0为清除 */
71 uint8 gui_disp_buf[GUI_LCM_YMAX][GUI_LCM_XMAX/8];
72
73 /************************************************
74 * 名称:DelayNS()
75 * 功能:长软件延时
76 * 入口参数:dly 延时参数,值越大,延时越长
77 * 出口参数:无
78 ***************************************************/
79 extern void DelayNs(uint32 dly);
80 extern void LCD_WriteData(uint8 lcddat);
81 extern void LCD_FillAll(uint8 dat);
82 extern uint8 LCD_ReadData();
83 extern void LCD_UpdatePoint(uint32 x, uint32 y);
84 extern uint8 LCD_WriteTCommand2(uint8 command, uint8 dat1);
85
86 extern void LCD_Initialize(void);
87
88 extern uint8 LCD_ReadState(void);
89 extern uint8 LCD_WriteTCommand3(uint8 command, uint8 dat1, uint8 dat2);
90 extern uint8 LCD_WriteTCommand2(uint8 command, uint8 dat1) ;
91 extern uint8 LCD_WriteTCommand1(uint8 command);
92 extern uint8 LCD_RTCommand1(uint8 command);
93 extern uint8 LCD_WriteTData1(uint8 dat);
94 extern uint8 display_date(uint8 * Disp_date);
95 extern uint8 display_time(uint8 * Disp_time);
96 extern uint8 display_speed(uint8 * Disp_speed);
97 extern void TimeInit(void);
98 //extern void irq1(void)__irq;
99 //extern void irq2(void);
100 extern void ClkInit();
101 void DelayNs2(uint32 dly)
102 { uint32 i;
103 1 for(;dly>0;dly--)
104 1 for(i=0;i<1000;i++);}
105 /***********************************
106 *名称: main()
107 *
108 ********************************************/
109
110 uint8 count=0;
111 uint16 frequence; //存储T0计数值
112 int main(void)
113 {
114 1 uint32 i;
115 1 uint8 j;
116 1 uint32 addr1;
117 1 uint8 k;
118 1
119 1 uint8 speed; //存储转换后的车速
120 1 uint16 m[6];
121 1
122 1 uint8 temp;
123 1 uint32 times,dates;
124 1 // uint8 temp;
125 1 uint8 dat;
ARM COMPILER V2.32a, beepon 25/01/07 14:11:00 PAGE 3
126 1 uint8 datesz[8] ;
127 1 uint8 timesz[6];
128 1 uint8 speedsz[3];
129 1
130 1 uint8 Matrixdate[90]=
131 1 {
132 1 /*------------------------------------------------------------------------------
133 1 ; 源文件 / 文字: "日期:"
134 1 ; 宽×高(像素) : 18×39 横向5个字节
135 1 ------------------------------------------------------------------------------*/
136 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,
137 1 0x00,0x00,0x00,0x10,0x24,0x08,0x00,0x1F,
138 1 0xF8,0x24,0xFC,0x00,0x10,0x10,0x7E,0x88,
139 1 0x00,0x10,0x10,0x24,0x88,0x00,0x10,0x10,
140 1 0x3C,0xF8,0x00,0x10,0x10,0x24,0x88,0x10,
141 1 0x1F,0xF0,0x24,0x88,0x10,0x10,0x10,0x3C,
142 1 0x88,0x00,0x10,0x10,0x24,0xF8,0x00,0x10,
143 1 0x10,0xFE,0x88,0x00,0x10,0x10,0x14,0x88,
144 1 0x00,0x1F,0xF0,0x22,0x88,0x10,0x10,0x10,
145 1 0x41,0x28,0x10,0x10,0x10,0x82,0x10,0x00,
146 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
147 1 0x00,0x00
148 1 };
149 1 uint8 Matrixtime[90] =
150 1 {
151 1 /*------------------------------------------------------------------------------
152 1 ; 源文件 / 文字: 时间:
153 1 ; 宽×高(像素) : 18×39
154 1 ------------------------------------------------------------------------------*/
155 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,
156 1 0x00,0x00,0x00,0x20,0x20,0x08,0x00,0x00,
157 1 0x20,0x17,0xFC,0x00,0x78,0x20,0x50,0x08,
158 1 0x00,0x4B,0xFC,0x40,0x08,0x00,0x48,0x20,
159 1 0x47,0xC8,0x00,0x48,0x20,0x44,0x48,0x10,
160 1 0x79,0x20,0x44,0x48,0x10,0x48,0xA0,0x47,
161 1 0xC8,0x00,0x48,0xA0,0x44,0x48,0x00,0x48,
162 1 0x20,0x44,0x48,0x00,0x78,0x20,0x47,0xC8,
163 1 0x00,0x48,0x20,0x40,0x08,0x10,0x40,0xA0,
164 1 0x40,0x28,0x10,0x00,0x40,0x40,0x10,0x00,
165 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
166 1 0x00,0x00
167 1 };
168 1 uint8 Matrixspeed[90] =
169 1 {
170 1 /*------------------------------------------------------------------------------
171 1 ; 源文件 / 文字: 速度:
172 1 ; 宽×高(像素) : 18×39
173 1 ------------------------------------------------------------------------------*/
174 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,
175 1 0x00,0x00,0x40,0x80,0x01,0x00,0x00,0x20,
176 1 0x88,0x00,0x88,0x00,0x2F,0xFC,0x3F,0xFC,
177 1 0x00,0x00,0x80,0x22,0x20,0x00,0x07,0xF0,
178 1 0x2F,0xF8,0x00,0xE4,0x90,0x22,0x20,0x10,
179 1 0x27,0xF0,0x23,0xE0,0x10,0x20,0xC0,0x20,
180 1 0x00,0x00,0x21,0xA0,0x2F,0xF0,0x00,0x22,
181 1 0x90,0x22,0x20,0x00,0x24,0x88,0x21,0x40,
182 1 0x00,0x50,0x80,0x40,0x80,0x10,0x88,0x00,
183 1 0x43,0x60,0x10,0x07,0xFC,0x9C,0x1C,0x00,
184 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
185 1 0x00,0x00
186 1 };
187 1 uint8 Matrixxie[17]=
188 1 {
189 1 /*------------------------------------------------------------------------------
190 1 ; 源文件 / 文字: /
191 1 ; 宽×高(像素) : 18×7
ARM COMPILER V2.32a, beepon 25/01/07 14:11:00 PAGE 4
192 1 ------------------------------------------------------------------------------*/
193 1 0x00,0x00,0x02,0x04,0x04,0x04,0x08,
194 1 0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x40,
195 1 0x80,0x00
196 1 };
197 1 uint8 MatrixMaohao[12]=
198 1 {
199 1 /*------------------------------------------------------------------------------
200 1 ; 源文件 / 文字: :
201 1 ; 宽×高(像素) : 18×7
202 1 ------------------------------------------------------------------------------*/
203 1 0x00,0x00,
204 1 0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x00,
205 1 0x00,0x00
206 1 };
207 1 uint8 Matrixkmh[90] =
208 1 {
209 1 /*------------------------------------------------------------------------------
210 1 ; 源文件 / 文字: km/h
211 1 ; 宽×高(像素) : 18×40
212 1 ------------------------------------------------------------------------------*/
213 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,
214 1 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
215 1 0x00,0x00,0x02,0x80,0x40,0x00,0x00,0x04,
216 1 0x80,0x40,0x00,0x00,0x04,0x80,0x40,0x00,
217 1 0x00,0x04,0x80,0x42,0x17,0x38,0x08,0xBC,
218 1 0x44,0x18,0xC4,0x08,0xC2,0x48,0x10,0x84,
219 1 0x10,0x82,0x50,0x10,0x84,0x10,0x82,0x68,
220 1 0x10,0x84,0x20,0x82,0x44,0x10,0x84,0x20,
221 1 0x82,0x42,0x10,0x84,0x40,0x82,0x41,0x10,
222 1 0x84,0x40,0x82,0x00,0x00,0x00,0x40,0x00,
223 1 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
224 1 0x00,0x00
225 1 };
226 1
227 1
228 1
229 1
230 1 DelayNs(6000); //延时为LCD作准备
231 1
232 1 /*引脚定义*/
233 1 PINSEL0=0x00000005;
234 1 PINSEL1=0x00000000|0x20000000; //设置P0.30为CAP0.0; //设置引脚连接GPIO
235 1 PINSEL2=PINSEL2&0xFFFFFF03; //P1.16-P1.31均设置为GPIO
236 1 EXTMODE=0x08;
237 1 IODIR0= LCD_WR|LCD_RD|LCD_CE|BEEPCON|safe|danger|LCD_DIR|LCD_BL ;
238 1 IODIR1=IODIR1|0xFFFF0000; //P1口暂时定义全为 输出 使用时记得修改
239 1
240 1 IOCLR1|=LCD_RST; //重置LCD
241 1 IOSET0=IOSET0|BEEPCON; //禁止 蜂鸣
242 1 IOCLR0=IOCLR0|safe;
243 1 IOCLR0|=danger;
244 1 DelayNs(1000);
245 1 IOSET1|=LCD_RST;
246 1
247 1 /*for(i=0;i<2;i++)
248 1 {
249 1 IOSET0|=safe;
250 1 IOSET0|=danger;
251 1 DelayNs(4000);
252 1 IOCLR0|=safe;
253 1 DelayNs(4000);
254 1 IOCLR0|=danger;
255 1 DelayNs(4000);
256 1 }
257 1 IOCLR0=IOCLR0|LCD_BL;
ARM COMPILER V2.32a, beepon 25/01/07 14:11:00 PAGE 5
258 1 DelayNs(4000); */
259 1
260 1
261 1 /***************初始化***********************/
262 1 TimeInit(); //计数器初始化
263 1
264 1 ClkInit();
265 1 //实时时钟初始化
266 1 DelayNs2(4000);
267 1 LCD_Initialize(); //LCD初始化
268 1 LCD_FillAll(0x00); //清屏
269 1
270 1 IOCLR1=IOCLR1&0xFF00FFFF;
271 1 IOSET0|=safe;
272 1 IOSET0|=danger;
273 1 IOCLR0|=LCD_DIR;
274 1
275 1 /*****************显示汉字“日期:”*****************************/
276 1 LCD_WriteTCommand3(LCD_ADR_POS, 0x00, 0x00); // 置地址指针
277 1
278 1 i=0;
279 1 dat=Matrixdate[i] ;
280 1 for(k=0;k<18;k++)
281 1 {for(j=0;j<5;j++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -