📄 12864.lst
字号:
C51 COMPILER V7.06 12864 07/15/2012 20:15:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN .\obj\12864.obj
COMPILER INVOKED BY: D:\单片机相关软件\51单片机软件大全\Keil uVision2 软件\安装\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJ
-ECTEXTEND OBJECT(.\obj\12864.obj)
stmt level source
1 #include"init.h"
2 #include"12864.h"
3 #include"delay.h"
4 /**********************************************************
5
6 12864等待空闲
7
8 **********************************************************/
9 void wait(void)
10 {
11 1 P0=0xff;
12 1 RS=0;
13 1 RW=1;
14 1 EN=0;
15 1 delay_n10us(1);
16 1 EN=1;
17 1 while(SUBF&0x80);
18 1 }
19 /**********************************************************
20
21 12864写一条指令
22
23 **********************************************************/
24 void write_com(uchar com)
25 {
26 1 wait();
27 1 EN=0;
28 1 RS=0;
29 1 RW=0;
30 1 P0=com;
31 1 EN=0;
32 1 EN=1;
33 1 delay_nms(1);
34 1 EN=0;
35 1 }
36 /**********************************************************
37
38 12864写一个字符
39
40 **********************************************************/
41 void write_dat(uchar dat)
42 {
43 1 wait();
44 1 EN=0;
45 1 RS=1;
46 1 RW=0;
47 1 P0=dat;
48 1 EN=0;
49 1 EN=1;
50 1 delay_nms(1);
51 1 EN=0;
52 1 }
53 /**********************************************************
54
C51 COMPILER V7.06 12864 07/15/2012 20:15:16 PAGE 2
55 12864初始化
56
57 **********************************************************/
58 void init_12864()
59 {
60 1 PSB=1;
61 1 Rst=1;
62 1 NC =1;
63 1
64 1 delay_nms(100);
65 1 write_com(0x30);
66 1 delay_n10us(50);
67 1 write_com(0x30);
68 1 delay_n10us(5);
69 1 write_com(0x0c);
70 1 delay_n10us(20);
71 1 write_com(0x01);
72 1 delay_n10us(2);
73 1 write_com(0x06);
74 1 delay_n10us(10);
75 1 }
76 /**********************************************************
77
78 12864写字符 row代表行,first代表从第几位开始写 dat写的内容
79
80 **********************************************************/
81 void char_12864(uchar row,uchar first,uint dat)
82 {
83 1 switch(row)
84 1 {
85 2 case 1: write_com(0x80+first);
86 2 write_dat(dat);
87 2 delay_n10us(2); break;
88 2 case 2: write_com(0x90+first);
89 2 write_dat(dat);
90 2 delay_n10us(2); break;
91 2 case 3: write_com(0x88+first);
92 2 write_dat(dat);
93 2 delay_n10us(2); break;
94 2 case 4: write_com(0x98+first);
95 2 write_dat(dat);
96 2 delay_n10us(2); break;
97 2 }
98 1 }
99 /**********************************************************
100
101 12864写2个字节 row代表行,first代表从第几位开始写* dat写的内容
102
103 **********************************************************/
104 void char2_12864(uchar row,uchar first,uchar dat)
105 {
106 1 uchar i;
107 1 switch(row)
108 1 {
109 2 case 1: write_com(0x80+first); //显示年月日使用
110 2 for(i=0;i<2;i++)
111 2 {
112 3 write_dat(clock[dat+i]+0x30);
113 3 delay_n10us(2);
114 3 }
115 2 break;
116 2 case 2: write_com(0x90+first); //显示时间使用
C51 COMPILER V7.06 12864 07/15/2012 20:15:16 PAGE 3
117 2 for(i=0;i<2;i++)
118 2 {
119 3 write_dat(clock[dat+i]+0x30);
120 3 delay_n10us(2);
121 3 }
122 2 break;
123 2 case 3: write_com(0x88+first); //显示星期使用
124 2 for(i=0;i<2;i++)
125 2 {
126 3 write_dat(clock[dat+i]);
127 3 delay_n10us(2);
128 3 }
129 2 break;
130 2 case 4: write_com(0x98+first); //显示温度使用
131 2 for(i=0;i<6;i++)
132 2 {
133 3 write_dat(TempData[dat+i]);
134 3 delay_n10us(1);
135 3 }
136 2 break;
137 2 }
138 1 }
139 /**********************************************************
140
141 12864写字符串 row代表行,first代表从第几位开始写 * dat写的内容
142
143 **********************************************************/
144 void string_12864(uchar row,uchar first,uchar *dat)
145 {
146 1 uchar i;
147 1 switch(row)
148 1 {
149 2 case 1: write_com(0x80+first);
150 2 for(i=0;dat[i]!='\0';i++)
151 2 {
152 3 write_dat(dat[i]);
153 3 delay_n10us(2);
154 3 }
155 2 break;
156 2 case 2: write_com(0x90+first);
157 2 for(i=0;dat[i]!='\0';i++)
158 2 {
159 3 write_dat(dat[i]);
160 3 delay_n10us(2);
161 3 }
162 2 break;
163 2 case 3: write_com(0x88+first);
164 2 for(i=0;dat[i]!='\0';i++)
165 2 {
166 3 write_dat(dat[i]);
167 3 delay_n10us(2);
168 3 }
169 2 break;
170 2 case 4: write_com(0x98+first);
171 2 for(i=0;dat[i]!='\0';i++)
172 2 {
173 3 write_dat(dat[i]);
174 3 delay_n10us(2);
175 3 }
176 2 break;
177 2 }
178 1 }
C51 COMPILER V7.06 12864 07/15/2012 20:15:16 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 565 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 13
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 + -