📄 1602.lst
字号:
C51 COMPILER V6.23a 1602 12/30/2004 13:29:25 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE 1602
OBJECT MODULE PLACED IN 1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1602.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* This program is a example */
2 #include <reg51.h>
3 #include <intrins.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 #define LCDCLRCMD 0X01
7 #define LCDIPMODECMD 0X06
8 #define LCDDISPCMD 0X0C
9 #define LCDDISPCMD2 0X0D
10 #define LCDCURSHIFTCMD 0X10
11 #define LCDRETURNCMD 0X02
12 #define LCDFUCCMD 0X38
13 /*BIT*/
14 sbit RS=P2^5;
15 sbit RW=P2^6;
16 sbit EN=P2^7;
17 sbit LGT=P1^0;
18 /*function*/
19 void LCDCMDSET(uchar CMD,uint DLT);
20 void LCDDDRAMSET(uchar LCDLCDADDR);
21 void LCDDATAWRITE(uchar LCDDATA);
22 void DELAY(uint T);
23 void DISPSTR(uchar code *str);
24 uchar code STRING1[]={"CHEAP MAN.......CHEAP MAN......."};
25 uchar code STRING2[]={"OH YEAH.........OH YEAH........."};
26 void DELAY(uint T)
27 {
28 1 uchar i;
29 1 while(T)
30 1 {
31 2 T--;
32 2 for(i=0;i<10;i++)_nop_();
33 2 }
34 1 }
35 void LCDCMDSET(uchar CMD,uint DLT)
36 {
37 1 RS=0;
38 1 RW=0;
39 1 P0=CMD;
40 1 EN=1;
41 1 EN=0; //r/w at the falling adge
42 1 DELAY(DLT);
43 1 }
44 void LCDDDRAMSET(uchar LCDADDR)
45 {
46 1 RS=0;
47 1 RW=0;
48 1 LCDADDR=LCDADDR|0x80;
49 1 P0=LCDADDR;
50 1 EN=1;
51 1 EN=0;
52 1 DELAY(4);
53 1 }
54 void LCDDATAWRITE(uchar LCDDATA)
55 {
C51 COMPILER V6.23a 1602 12/30/2004 13:29:25 PAGE 2
56 1 RS=1;
57 1 RW=0;
58 1 P0 =LCDDATA;
59 1 EN=1;
60 1 EN=0;
61 1 DELAY(4);
62 1 }
63 void DISPSTR(uchar code *str)
64 {
65 1 uchar data i;
66 1 LCDDDRAMSET(0x00);
67 1 for(i=0;i<16;i++)
68 1 {
69 2 LCDDATAWRITE(*str++);
70 2 }
71 1 LCDDDRAMSET(0x40);
72 1
73 1 for(i=0;i<16;i++)
74 1 {
75 2 LCDDATAWRITE(*str++);
76 2 }
77 1 }
78 void LCDINIT()
79 {
80 1 LCDCMDSET(LCDCLRCMD,200);
81 1 LCDCMDSET(LCDIPMODECMD,4);
82 1 LCDCMDSET(LCDDISPCMD2,4);
83 1 LCDCMDSET(LCDFUCCMD,4);
84 1 LCDCMDSET(LCDRETURNCMD,200);
85 1 }
86 void main()
87 {
88 1 LCDINIT();
89 1 while(1)
90 1 {
91 2 LGT = !LGT;
92 2 if(LGT==0)
93 2 {
94 3 DISPSTR(STRING2);
95 3 }
96 2 if(LGT==1)
97 2 {
98 3 DISPSTR(STRING1);
99 3 }
100 2 DELAY(20000);
101 2 }
102 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 202 ----
CONSTANT SIZE = 66 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -