?? gu.lst
字號:
C51 COMPILER V7.06 GU 03/25/2008 09:37:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE GU
OBJECT MODULE PLACED IN gu.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 2\gu.c BROWSE DEBUG OBJECTEXTEND PRINT(.\gu.lst) OBJECT(gu.obj)
stmt level source
1
2 #include <sst89E564RD.H>
3 #include <intrins.h>
4
5 typedef unsigned char BYTE;
6 typedef bit BOOL;
7
8 sbit LCD_RS = P2^0;
9 sbit LCD_RW = P2^1;
10 sbit LCD_EP = P2^2;
11
12 BYTE code dis1[] = {" WLCOME TO "};
13 BYTE code dis2[] = {" WWW.WILLAR.COM "};
14 BYTE code dis3[] = {" OT EMOCLW "};
15 BYTE code dis4[] = {" MOC.RALLIW.WWW "};
16
17 delay(int ms)
18 { // 延時子程序
19 1 int i;
20 1 while(ms--)
21 1 {
22 2 for(i = 0; i< 250; i++)
23 2 {
24 3 _nop_();
25 3 _nop_();
26 3 _nop_();
27 3 _nop_();
28 3 }
29 2 }
30 1 }
31
32 BOOL lcd_bz()
33 { // 測試LCD忙碌狀態
34 1 BOOL result;
35 1 LCD_RS = 0;
36 1 LCD_RW = 1;
37 1 LCD_EP = 1;
38 1 _nop_();
39 1 _nop_();
40 1 _nop_();
41 1 _nop_();
42 1 result = (BOOL)(P0 & 0x80);
43 1 LCD_EP = 0;
44 1 return result;
45 1 }
46
47 lcd_wcmd(BYTE cmd)
48 { // 寫入指令數據到LCD
49 1 while(lcd_bz());
50 1 LCD_RS = 0;
51 1 LCD_RW = 0;
52 1 LCD_EP = 0;
53 1 _nop_();
54 1 _nop_();
55 1 P0 = cmd;
C51 COMPILER V7.06 GU 03/25/2008 09:37:44 PAGE 2
56 1 _nop_();
57 1 _nop_();
58 1 _nop_();
59 1 _nop_();
60 1 LCD_EP = 1;
61 1 _nop_();
62 1 _nop_();
63 1 _nop_();
64 1 _nop_();
65 1 LCD_EP = 0;
66 1 }
67
68 lcd_pos(BYTE pos)
69 { //設定顯示位置
70 1 lcd_wcmd(pos | 0x80);
71 1 }
72
73 lcd_wdat(BYTE dat)
74 { //寫入字符顯示數據到LCD
75 1 while(lcd_bz());
76 1 LCD_RS = 1;
77 1 LCD_RW = 0;
78 1 LCD_EP = 0;
79 1 P0 = dat;
80 1 _nop_();
81 1 _nop_();
82 1 _nop_();
83 1 _nop_();
84 1 LCD_EP = 1;
85 1 _nop_();
86 1 _nop_();
87 1 _nop_();
88 1 _nop_();
89 1 LCD_EP = 0;
90 1 }
91
92 lcd_init()
93 { //LCD初始化設定
94 1 lcd_wcmd(0x38); //16*2顯示,5*7點陣,8位數據
95 1 delay(1);
96 1 lcd_wcmd(0x0c); //顯示開,關光標
97 1 delay(1);
98 1 lcd_wcmd(0x06); //移動光標
99 1 delay(1);
100 1 lcd_wcmd(0x01); //清除LCD的顯示內容
101 1 delay(1);
102 1 }
103
104 main()
105 {
106 1 BYTE i;
107 1 lcd_init(); // 初始化LCD
108 1 delay(10);
109 1
110 1 while(1)
111 1 {
112 2 lcd_wcmd(0x06); //向右移動光標
113 2 lcd_pos(0); //設置顯示位置為第一行的第1個字符
114 2 i = 0;
115 2 while(dis1[ i ] != '\0')
116 2 { //顯示字符"Welcome TO"
117 3 lcd_wdat(dis1[ i ]);
C51 COMPILER V7.06 GU 03/25/2008 09:37:44 PAGE 3
118 3 i++;
119 3 delay(30); //控制兩字之間顯示速度
120 3 }
121 2 lcd_pos(0x40); //設置顯示位置為第二行第1個字符
122 2 i = 0;
123 2 while(dis2[ i ] != '\0')
124 2 {
125 3 lcd_wdat(dis2[ i ]); //顯示字符" WWW.WILLAR.COM "
126 3 i++;
127 3 delay(30); //控制兩字之間顯示速度
128 3 }
129 2 delay(800); //控制停留時間
130 2
131 2 lcd_wcmd(0x01); //清除LCD的顯示內容
132 2 delay(1);
133 2 lcd_wcmd(0x04); //向左移動光標
134 2
135 2 lcd_pos(15); //設置顯示位置為第一行的第16個字符
136 2 i = 0;
137 2 while(dis3[ i ] != '\0')
138 2 { //顯示字符"Welcome TO"
139 3 lcd_wdat(dis3[ i ]);
140 3 i++;
141 3 delay(30); //控制兩字之間顯示速度
142 3 }
143 2 lcd_pos(0x4F); //設置顯示位置為第二行的第16個字符
144 2 i = 0;
145 2 while(dis4[ i ] != '\0')
146 2 {
147 3 lcd_wdat(dis4[ i ]); //顯示字符" WWW.WILLAR.COM "
148 3 i++;
149 3 delay(30); //控制兩字之間顯示速度
150 3 }
151 2 delay(800); //控制停留時間
152 2
153 2 lcd_wcmd(0x01); //清除LCD的顯示內容
154 2 delay(200); //控制兩屏轉換時間
155 2
156 2 }
157 1 }
158
*** WARNING C316 IN LINE 158 OF 2\gu.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 305 ----
CONSTANT SIZE = 68 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -