📄 1602.lst
字号:
C51 COMPILER V8.05a 1602 03/27/2009 14:27:42 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 1602
OBJECT MODULE PLACED IN 1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<1820.h>
3 #include<intrins.h>
4
5 #define uchar unsigned char
6 #define uint unsigned int
7 #define sint signed int
8
9 sbit Rs = P2^5;
10 sbit Rw = P2^6;
11 sbit En = P2^7;
12 sfr DBPort = 0xb0; //P3数据端口
13
14
15 void delay(uchar z)
16 {
17 1 uchar x,y;
18 1 for(x=z;x>0;x--)
19 1 for(y=110;y>0;y--);
20 1 }
21
22
23 //向LCD写入命令或数据************************************************************
24
25
26 void write(bit style, uchar input)
27 {
28 1
29 1 Rs=style;
30 1 DBPort=input;
31 1 delay(4);
32 1 En=1; //注意顺序
33 1 delay(4);
34 1 En=0;
35 1 }
36
37
38 //初始化LCD************************************************************
39 void start1602()
40 {
41 1 Rw=0;
42 1 En=0;
43 1 //DBPort=0xff;
44 1 //delay(4);
45 1 write(0,0x01); //8位数据端口,2行显示,5*7点阵
46 1 write(0,0x02);
47 1 write(0,0x06);
48 1 write(0,0x0c);
49 1 write(0,0x3C); //?
50 1
51 1 }
52
53 //************************************************************************
54 void goto_xy(uchar x, uchar y)
55 {
C51 COMPILER V8.05a 1602 03/27/2009 14:27:42 PAGE 2
56 1 if(y==0)
57 1 write(0,0x80|x);
58 1 if(y==1)
59 1 write(0,0x80|(x-0x40)); //?
60 1 }
61
62
63 void printf(uchar *str)
64 {
65 1 while(*str!='\0')
66 1 {
67 2 write(1,*str);
68 2 str++;
69 2 }
70 1 }
71
72 void printd (sint x)
73 { sint y[10];
74 1 uchar i=0,j;
75 1
76 1 if(x<0)
77 1 {
78 2 write(1,0x2d);
79 2
80 2 x=-x;
81 2 }
82 1
83 1
84 1 y[0]=x%10;
85 1 while(x/10!=0)
86 1 { i++;
87 2 x=x/10;
88 2 y[i]=x%10 ;
89 2
90 2 }
91 1 j=i+1;
92 1 for(j;j>0;i--,j--)
93 1 {
94 2 write(1,y[i]+48) ;
95 2 }
96 1 }
97
98 void main()
99 {
100 1 sint tmp,u=0;
101 1 uchar i,j;
102 1 start1602();
103 1 tmp=gettemp();
104 1 goto_xy(0,0);
105 1 printf("Temperature :");
106 1
107 1
108 1 goto_xy(0,1);
109 1 printf("buffering.");
110 1
111 1 for(i=6;i>0;i--)
112 1 {
113 2
114 2 for(j=20;j>0;j--)
115 2 {
116 3 delay(127);
117 3 }
C51 COMPILER V8.05a 1602 03/27/2009 14:27:42 PAGE 3
118 2 printf(".");
119 2 }
120 1
121 1
122 1 while(1)
123 1 {
124 2 for(i=200;i>0;i--)
125 2 {
126 3 delay(127);
127 3 }
128 2 tmp=gettemp();
129 2 goto_xy(0,1);
130 2 printf(" ");
131 2 goto_xy(10,1);
132 2 printd(u++);
133 2
134 2 goto_xy(0,1);
135 2 printf(" ");
136 2 printd(tmp);
137 2 printf(" C");
138 2
139 2 }
140 1 }
141
142
143
144
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 604 ----
CONSTANT SIZE = 52 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 27
IDATA SIZE = ---- ----
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -