📄 lcd12864.lst
字号:
C51 COMPILER V8.08 LCD12864 01/11/2009 23:45:34 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN LCD12864.OBJ
COMPILER INVOKED BY: F:\Keil\C51\BIN\C51.EXE LCD12864.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <delay.h>
2 #include <reg52.h>
3 #include <LCD12864.h>
4 #include <intrins.h>
5
6
7 sbit LCD_RS = P1^3; //数据/命令选择
8 sbit LCD_RW = P1^4; //读写控制
9 sbit LCD_EN = P1^5; //片选信号
10 sbit LCD_PSB = P1^6; //通信方式选择
11
12
13
14 /*********************************
15 函数名称:write_cmd(uint lcd_cmd)写指令
16 入口参数:lcd_cmd
17 返回参数:无
18 *********************************/
19
20 void WriteCmd12864(uchar lcd_cmd)
21 {
22 1 while(ReadBusy());
23 1 LCD_RS = LOW;
24 1 LCD_RW = LOW;
25 1 LCD_EN = LOW;
26 1 LCD_DATA = lcd_cmd;
27 1 delayNop();
28 1 LCD_EN = HIGH;
29 1 delayNop();
30 1 LCD_EN = LOW;
31 1 }
32
33
34
35 /********************************
36 函数名称:write_data(uint lcd_data)写数据
37 入口参数:current_data
38 返回参数:无
39 ********************************/
40
41 void WriteData12864(uchar lcd_data)
42 {
43 1 while(ReadBusy());
44 1 LCD_RS=HIGH;
45 1 LCD_RW=LOW;
46 1 LCD_EN=LOW;
47 1 LCD_DATA=lcd_data;
48 1 delayNop();
49 1 LCD_EN=HIGH;
50 1 delayNop();
51 1 LCD_EN=LOW;
52 1 }
53
54
55
C51 COMPILER V8.08 LCD12864 01/11/2009 23:45:34 PAGE 2
56 /********************************
57 函数名称:ReadBusy()判忙
58 入口参数:无
59 返回参数:"1"忙;"0"不忙
60 ********************************/
61
62 bit ReadBusy()
63 {
64 1 bit result;
65 1 LCD_RS = LOW;
66 1 LCD_RW = HIGH;
67 1 LCD_EN =HIGH;
68 1 delayNop();
69 1 result = (bit)(P0&0x80);
70 1 LCD_EN = LOW;
71 1 return (result);
72 1 }
73
74
75
76 /********************************
77 函数名称:LcdInit()初始化
78 入口参数:无
79 返回参数:无
80 ********************************/
81
82 void LcdInit()
83 {
84 1 delay(10);
85 1 LCD_PSB=HIGH;
86 1
87 1 //WriteCmd12864(0x34);
88 1 WriteCmd12864(FUN_MODE);
89 1 WriteCmd12864(DISPLAY_ON);
90 1 WriteCmd12864(CLEAR_SCREEN);
91 1 }
92
93
94
95 /********************************
96 函数名称:LcdClear()清屏
97 入口参数:无
98 返回参数:无
99 ********************************/
100
101 void LcdClear(void)
102 {
103 1 while(ReadBusy());
104 1 WriteCmd12864(CLEAR_SCREEN);
105 1 delay(5);
106 1 }
107
108
109 /********************************
110 函数名称:Display12864(uchar addr,uchar *hz)显示CGROM里的汉字
111 入口参数:无
112 返回参数:无
113 ********************************/
114
115 void Display12864(uchar addr,uchar *hz)
116 {
117 1
C51 COMPILER V8.08 LCD12864 01/11/2009 23:45:34 PAGE 3
118 1 WriteCmd12864(addr);
119 1 while(*hz != '\0')
120 1 {
121 2 WriteData12864(*hz);
122 2 hz++;
123 2
124 2 }
125 1 }
126
127
128
129
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 152 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -