📄 lcd.lst
字号:
C51 COMPILER V8.02 LCD 12/05/2007 10:38:51 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <c8051f020.h>
2
3 typedef unsigned char uchar;
4 typedef unsigned int uint;
5
6 #define LCD_COM P2
7 sbit RS = P3^0; //RS=0:读写指令;RS=1:读写数据
8 sbit RW = P3^1; //RW=1:读
9 sbit E = P3^2;
10 //------忙检查---------------
11
12 void del(uint t)
13 {
14 1 while(t--);
15 1 }
16 void LCD_Check_Busy()
17 {
18 1 del(200);
19 1 }
20 //-----写指令----------------
21 void LCD_Write_REG(uchar ins)
22 {
23 1 LCD_Check_Busy();
24 1 RS=0;
25 1 RW=0;
26 1 E=1;
27 1 del(30);
28 1 LCD_COM=ins;
29 1 del(30);
30 1 E=0;
31 1 }
32 //-------写数据--------------
33 void LCD_Write_Dat(uchar dat)
34 {
35 1 LCD_Check_Busy();
36 1 RS=1;
37 1 RW=0;
38 1 E=1;
39 1 del(30);
40 1 LCD_COM=dat;
41 1 del(30);
42 1 E=0;
43 1 }
44 /***************************************************
45 设置显示地址(行、列)
46 行:0~3
47 列:0~7
48 ***************************************************/
49 void Set_Position(uchar row,uchar line)
50 {
51 1 switch(row)
52 1 {
53 2 case 0: LCD_Write_REG(0x80+line);break;
54 2 case 1: LCD_Write_REG(0x90+line);break;
55 2 case 2: LCD_Write_REG(0x88+line);break;
C51 COMPILER V8.02 LCD 12/05/2007 10:38:51 PAGE 2
56 2 case 3: LCD_Write_REG(0x98+line);break;
57 2 default: break;
58 2 }
59 1 }
60
61 /************************************************
62 清屏(2ms的时间)
63 *************************************************/
64 void Clear_LCD()
65 {
66 1 LCD_Write_REG(0x01);
67 1 del(5000);
68 1 }
69 /*************************************************
70 写字符串
71 **************************************************/
72 void LCD_Write_String(uchar *p)
73 {
74 1 while(*p)
75 1 {
76 2 LCD_Write_Dat(*p);
77 2 p++;
78 2 }
79 1 }
80 /****************************************************
81 液晶初始化
82 ****************************************************/
83 void Init_LCD()
84 {
85 1 LCD_Write_REG(0x30); //功能设置 8位数据,基本指令
86 1 LCD_Write_REG(0x0c); //显示状态 ON,游标OFF,反白OFF
87 1 Clear_LCD(); //清除显示
88 1 LCD_Write_REG(0x06); //
89 1 LCD_Write_REG(0x80); //设置DDRAM地址为0
90 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 152 ----
CONSTANT SIZE = ---- ----
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 + -