📄 lcd.lst
字号:
C51 COMPILER V7.02b LCD 07/17/2007 21:54:33 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2
3 /********************************************************************/
4 //lcd part
5 #define LINE1 0
6 #define LINE2 1
7 #define LINE1_HEAD 0x80
8 #define LINE2_HEAD 0xC0
9 #define LCD_DELAY_TIME 40
10 #define DATA_MODE 0x38
11 #define OPEN_SCREEN 0x0C
12 #define DISPLAY_ADDRESS 0x80
13 #define CLEARSCREEN LCD_en_command(0x01)
14 //common part
15 #define HIGH 1
16 #define LOW 0
17 #define TRUE 1
18 #define FALSE 0
19 #define ZERO 0
20 #define MSB 0x80
21 #define LSB 0x01
22
23 #define LCDIO P0
24 code unsigned char s1[13]={119,119,119,46,50,50,115,107,121,46,99,111,109,}; //显示www.22sky.com
25 code unsigned char s2[5]={68,73,83,80,58,}; //显示DISP:
26
27 /*****************************************************************************/
28 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
29 sbit LCD1602_RS=P2^7; //data command select 1 data 0 command pin 4
30 sbit LCD1602_RW=P2^6; //read write select 1 read 0 write pin 5
31 sbit LCD1602_EN=P2^5; //LCD enable signal pin 6
32 /********************************************************************/
33
34 void LCD_en_command(unsigned char command);//write command function
35 void LCD_en_dat(unsigned char temp);//write data function
36 void LCD_init(void);//lcd initize function
37 void cap_clr(void);
38 void ad_clr(void);
39
40 /********************************************************************/
41 void delay_nms(unsigned int n);//delay function
42
43 /********************************************************************/
44 void LCD_en_command(unsigned char command)//写命令
45 {
46 1 LCDIO=command;
47 1 LCD1602_RS=LOW;
48 1 LCD1602_RW=LOW;
49 1 LCD1602_EN=LOW;
50 1 delay_nms(2);
51 1 LCD1602_EN=HIGH;
52 1 }
53 /********************************************************************/
54 void LCD_en_dat(unsigned char dat)//写数据
55 {
C51 COMPILER V7.02b LCD 07/17/2007 21:54:33 PAGE 2
56 1 LCDIO=dat;
57 1 LCD1602_RS=HIGH;
58 1 LCD1602_RW=LOW;
59 1 LCD1602_EN=LOW;
60 1 delay_nms(2);
61 1 LCD1602_EN=HIGH;
62 1 }
63
64 /********************************************************************/
65 void LCD_init(void)
66 {
67 1 unsigned char i;
68 1 unsigned char *p_2=s2;
69 1 unsigned char *p_1=s1;
70 1 CLEARSCREEN;//clear screen
71 1 LCD_en_command(DATA_MODE);//set 8 bit data transmission mode
72 1 LCD_en_command(OPEN_SCREEN);//open display (enable lcd display)
73 1 LCD_en_command(DISPLAY_ADDRESS);//set lcd first display address
74 1 CLEARSCREEN;//clear screen
75 1 /*****************lcd第一行显示:www.22sky.com**************************/
76 1 for(i=0;i<13;i++)
77 1 {
78 2 LCD_en_command(0x80+i);
79 2 LCD_en_dat(*p_1);
80 2 delay_nms(2);
81 2 p_1=p_1+1;
82 2 }
83 1
84 1 /*****************lcd第二行显示阻值:DISP:**************************/
85 1 for(i=0;i<5;i++)
86 1 {
87 2 LCD_en_command(0xc0+i);
88 2 LCD_en_dat(*p_2);
89 2 delay_nms(2);
90 2 p_2=p_2+1;
91 2 }
92 1
93 1
94 1 }
95 /********************************************************************/
96 /*********************** OTHER PART *********************************/
97 void delay_nms(unsigned int n)
98 {
99 1 unsigned int i=0,j=0;
100 1 for (i=n;i>0;i--)
101 1 for (j=0;j<1140;j++);
102 1 }
103 /********************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 201 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
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 + -