📄 lcd.lst
字号:
C51 COMPILER V6.23a LCD 12/11/2007 13:18:32 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\obj\Lcd.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE driver\Lcd.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\Lcd.lst) O
-BJECT(.\obj\Lcd.obj)
stmt level source
1 #include<reg52.h>
2 #include <intrins.h>
3 #include "Lcd.H"
4 #define uchar unsigned char
5 #define uint unsigned int
6 unsigned char flag;
7
8 sbit CS = P2^7;
9 sbit SID= P2^6;
10 sbit CLK= P2^5;
11
12
13 uchar code addr[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
14 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
15 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
16 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f };//DDRAM地址
17
18 uchar code datshu[]={ 0x30,/*0*/ 0x31,/*1*/0x32,/*2*/0x33,/*3*/ //数字库:0123456789.
19 0x34,/*4*/ 0x35,/*5*/0x36,/*6*/0x37,/*7*/
20 0x38,/*8*/ 0x39,/*9*/0x2e,/*.*/0x41,/*A*/0x56 /*V*/};
21
22
23 /*********************************************************/
24 /*Header:Lcd.h
25 /*File Name:Lcd.c
26 /*Author: 陈培炜,杨帆
27 /*Data;2007
28 /*Function:程序内部调用的函数
29 /*********************************************************/
30 void Send(unsigned char senddata);
31 void WriteCmd( uchar cmd );
32 void WriteData( uchar Data );
33
34 void displayChar( uchar *x_add, uchar *dat );
35 void HanZiString(uchar x,uchar *p);
36
37 void DispOrder(unsigned char x);
38 void WriteRAM( uchar Data );
39
40 void delay(unsigned int t);
41
42 /*****************************初始化子程序******************************/
43 void InitLcd(void)
44 {
45 1
46 1 CS = 1;
47 1 WriteCmd( 0x30 );
48 1 delay( 150 );//延时150us
49 1
50 1 WriteCmd(0x30);
51 1 delay( 45 );//延时45us
52 1
53 1 WriteCmd( 0x0C );
54 1 delay( 150 );//延时150us
C51 COMPILER V6.23a LCD 12/11/2007 13:18:32 PAGE 2
55 1
56 1 WriteCmd( 0x01 );
57 1 delay( 15000 );//延时12MS
58 1
59 1 WriteCmd(0x06);
60 1 }
61 /*********************************************/
62 /*Header:Lcd.h
63 /*File Name:Lcd.c
64 /*Author: 陈培炜,杨帆
65 /*Data;2007
66 /*Function:
67 /*********************************************/
68
69 void cls(void)
70 {
71 1 WriteCmd( 0x01 );
72 1 delay( 15000 );//延时12MS
73 1
74 1 }
75
76 /*****************************延时子程序***************************/
77 void delay( uint t )
78 {
79 1 while( t-- );
80 1 }
81 /***********************************************************
82 /*Header:Lcd.h
83 /*File Name:Lcd.c
84 /*Author: 陈培炜,杨帆
85 /*Data;2007
86 /*Function:
87 ***********************************************************/
88 void DelayUS(unsigned int n) //N us延时函数
89 {
90 1 unsigned int i=0;
91 1 for (i=0;i<n;i++)
92 1 _nop_();
93 1 }
94 /***********************************************************
95 /*Header:Lcd.h
96 /*File Name:Lcd.c
97 /*Author: 陈培炜,杨帆
98 /*Data;2007
99 /*Function:
100 ***********************************************************/
101 void Send(unsigned char senddata)
102 {
103 1 unsigned char i;
104 1 for(i=0;i<8;i++)
105 1 {
106 2 if((senddata)&0x80)
107 2 SID = 1;
108 2 else
109 2 SID = 0;
110 2 CLK = 1;
111 2 _nop_();
112 2 CLK = 0;
113 2 senddata<<=1;
114 2 }
115 1 }
116
C51 COMPILER V6.23a LCD 12/11/2007 13:18:32 PAGE 3
117
118 /*******************************写指令子程序***************************/
119 void WriteCmd( uchar cmd )
120 {
121 1 Send(0xf8);
122 1 Send(cmd&0xf0);
123 1 Send(cmd<<4);
124 1 DelayUS(20);
125 1 }
126
127 /***********************************写数据子程序****************************/
128 void WriteData(unsigned char Data)
129 {
130 1 Send(0xfa);
131 1 Send(Data&0xf0);
132 1 Send(Data<<4);
133 1 DelayUS(20);
134 1 }
135 /***************************************************************/
136 void WriteRAM( uchar Data )
137 {
138 1 Send(0xfa); //11111010
139 1 Send(Data&0xf0); //xxxx0000
140 1 Send(Data<<4); //xxxx0000
141 1 delay(20);
142 1 }
143
144 /********************显示字符*************************************/
145 void displayChar( uchar *x_add, uchar *dat )
146 {
147 1 WriteCmd( *x_add );//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
148 1 WriteData( *dat );
149 1 }
150
151 /***************************显示字符串**************************************/
152
153 void HanZiString(uchar x,uchar *p)
154 {
155 1 uchar ad;
156 1 ad = addr[x];
157 1 WriteCmd(ad);
158 1 while (*p!='\0')
159 1 {
160 2 WriteRAM(*(p++));
161 2 }
162 1 }
163
164 /*********************************************************/
165 /*Header:Lcd.h
166 /*File Name:Lcd.c
167 /*Author: 陈培炜,杨帆
168 /*Data;2007
169 /*Function:温度与占空比的显示函数
170 /*********************************************************/
171 void disp(unsigned char tempreture,unsigned int high)
172 {
173 1 unsigned char a,b;
174 1 unsigned int z;
175 1 HanZiString(0,"温度 ℃");
176 1 a = tempreture/10;
177 1 b = tempreture%10;
178 1 displayChar( &addr[3],&datshu[a] );
C51 COMPILER V6.23a LCD 12/11/2007 13:18:32 PAGE 4
179 1 displayChar( &addr[4],&datshu[b] );
180 1
181 1 z = high/100;
182 1 a = z/10;
183 1 b = z%10;
184 1 HanZiString(8,"占空比 /100 ");
185 1 displayChar( &addr[12],&datshu[a] );
186 1 displayChar( &addr[13],&datshu[b] );
187 1 }
188
189 /*********************************************/
190 /*
191 /* 设定温度范围显示函数
192 /*********************************************/
193 void disp2(unsigned char dt,unsigned char ut,unsigned char flag)
194 {
195 1 unsigned char t,d;
196 1
197 1 HanZiString(0,"设定温度范围:");
198 1 HanZiString(11,"——");
199 1
200 1 if(flag == 0)
201 1 {
202 2 HanZiString(17,"__");
203 2 HanZiString(21," ");
204 2 }
205 1 else
206 1 {
207 2 HanZiString(17," ");
208 2 HanZiString(21,"__");
209 2 }
210 1
211 1 t = dt/10;
212 1 d = dt%10;
213 1 displayChar( &addr[9],&datshu[t] );
214 1 displayChar( &addr[10],&datshu[d] );
215 1
216 1 t = ut/10;
217 1 d = ut%10;
218 1 displayChar( &addr[13],&datshu[t] );
219 1 displayChar( &addr[14],&datshu[d] );
220 1 }
221 /*********************************************/
222 /*********************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 617 ----
CONSTANT SIZE = 100 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 18
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 + -