110VCGQ/模块资料/1.3寸OLED显示屏12864液晶屏模块1.3寸显示模块IIC接口/中景园电子1.3寸OLED显示屏模块资料V2.0/测试程序/中景园电子1.3寸OLED显示屏_C51系列_IIC_例程/oled.lst

221 lines
8.8 KiB
Plaintext
Raw Normal View History

2024-11-18 10:09:39 +08:00
C51 COMPILER V9.52.0.0 OLED 03/25/2015 20:23:32 PAGE 1
C51 COMPILER V9.52.0.0, COMPILATION OF MODULE OLED
OBJECT MODULE PLACED IN oled.obj
COMPILER INVOKED BY: C:\Keil_c51\C51\BIN\C51.EXE SRC\oled.c BROWSE INCDIR(.\SRC) DEBUG OBJECTEXTEND PRINT(.\oled.lst) TA
-BS(2) OBJECT(oled.obj)
line level source
1 //////////////////////////////////////////////////////////////////////////////////
2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѧϰʹ<CFB0>ã<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>;
3 //<2F>о<EFBFBD>԰<EFBFBD><D4B0><EFBFBD><EFBFBD>
4 //<2F><><EFBFBD>̵<EFBFBD>ַ<EFBFBD><D6B7>http://shop73023976.taobao.com/?spm=2013.1.0.0.M4PqC2
5 //
6 // <20><> <20><> <20><> : main.c
7 // <20><> <20><> <20><> : v2.0
8 // <20><> <20><> : HuangKai
9 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : 2014-0101
10 // <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD> :
11 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : OLED IIC<49>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>(51ϵ<31><CFB5>)
12 // ˵<><CBB5>:
13 // ----------------------------------------------------------------
14 // GND <20><>Դ<EFBFBD><D4B4>
15 // VCC <20><>5V<35><56>3.3v<EFBFBD><EFBFBD>Դ
16 // D0 P1^0<><30>SCL<43><4C>
17 // D1 P1^1<><31>SDA<44><41>
18 // RES <20>Ӹ<EFBFBD>
19 // DC <20>ӵ<EFBFBD>
20 // CS <20>ӵ<EFBFBD>
21 // ----------------------------------------------------------------
22 // <20>޸<EFBFBD><DEB8><EFBFBD>ʷ :
23 // <20><> <20><> :
24 // <20><> <20><> : HuangKai
25 // <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
26 //<2F><>Ȩ<EFBFBD><C8A8><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
27 //Copyright(C) <20>о<EFBFBD>԰<EFBFBD><D4B0><EFBFBD><EFBFBD>2014/3/16
28 //All rights reserved
29 //******************************************************************************/
30 #include "oled.h"
31 #include "picture.h"
32
33
34 /**********************************************
35 //IIC Start
36 **********************************************/
37 void IIC_Start()
38 {
39 1 SCL = high;
40 1 SDA = high;
41 1 SDA = low;
42 1 SCL = low;
43 1 }
44
45 /**********************************************
46 //IIC Stop
47 **********************************************/
48 void IIC_Stop()
49 {
50 1 SCL = low;
51 1 SDA = low;
52 1 SCL = high;
53 1 SDA = high;
54 1 }
C51 COMPILER V9.52.0.0 OLED 03/25/2015 20:23:32 PAGE 2
55 /**********************************************
56 // IIC Write byte
57 **********************************************/
58 void Write_IIC_Byte(unsigned char IIC_Byte)
59 {
60 1 unsigned char i;
61 1 for(i=0;i<8;i++)
62 1 {
63 2 if(IIC_Byte & 0x80)
64 2 SDA=high;
65 2 else
66 2 SDA=low;
67 2 SCL=high;
68 2 SCL=low;
69 2 IIC_Byte<<=1;
70 2 }
71 1 SDA=1;
72 1 SCL=1;
73 1 SCL=0;
74 1 }
75 /**********************************************
76 // IIC Write Command
77 **********************************************/
78 void Write_IIC_Command(unsigned char IIC_Command)
79 {
80 1 IIC_Start();
81 1 Write_IIC_Byte(0x78); //Slave address,SA0=0
82 1 Write_IIC_Byte(0x00); //write command
83 1 Write_IIC_Byte(IIC_Command);
84 1 IIC_Stop();
85 1 }
86 /**********************************************
87 // IIC Write Data
88 **********************************************/
89 void Write_IIC_Data(unsigned char IIC_Data)
90 {
91 1 IIC_Start();
92 1 Write_IIC_Byte(0x78); //D/C#=0; R/W#=0
93 1 Write_IIC_Byte(0x40); //write data
94 1 Write_IIC_Byte(IIC_Data);
95 1 IIC_Stop();
96 1 }
97 /********************************************
98 // fill_Picture
99 ********************************************/
100 void fill_picture(unsigned char fill_Data)
101 {
102 1 unsigned char m,n;
103 1 for(m=0;m<8;m++)
104 1 {
105 2 Write_IIC_Command(0xb0+m); //page0-page1
106 2 Write_IIC_Command(0x02); //low column start address
107 2 Write_IIC_Command(0x10); //high column start address
108 2 for(n=0;n<128;n++)
109 2 {
110 3 Write_IIC_Data(fill_Data);
111 3 }
112 2 }
113 1 }
114 /******************************************
115 // picture<72><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB>ͼƬ
116 ******************************************/
C51 COMPILER V9.52.0.0 OLED 03/25/2015 20:23:32 PAGE 3
117 void Picture()
118 {
119 1 unsigned char x,y;
120 1 unsigned int i=0;
121 1 for(y=0;y<8;y++)
122 1 {
123 2 Write_IIC_Command(0xb0+y);
124 2 Write_IIC_Command(0x02);
125 2 Write_IIC_Command(0x10);
126 2 for(x=0;x<128;x++)
127 2 {
128 3 Write_IIC_Data(show[i++]);
129 3 }
130 2 }
131 1 }
132
133 /***********************Delay****************************************/
134 void Delay_50ms(unsigned int Del_50ms)
135 {
136 1 unsigned int m;
137 1 for(;Del_50ms>0;Del_50ms--)
138 1 for(m=6245;m>0;m--);
139 1 }
140
141 void Delay_1ms(unsigned int Del_1ms)
142 {
143 1 unsigned char j;
144 1 while(Del_1ms--)
145 1 {
146 2 for(j=0;j<123;j++);
147 2 }
148 1 }
149
150
151
152 void Initial_M096128x64_ssd1306()
153 {
154 1 Delay_50ms(5);
155 1 Write_IIC_Command(0xAE); //display off
156 1 Write_IIC_Command(0x02); //Set Memory Addressing Mode
157 1 Write_IIC_Command(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing M
-ode (RESET);11,Invalid
158 1 Write_IIC_Command(0x40); //Set Page Start Address for Page Addressing Mode,0-7
159 1 Write_IIC_Command(0xb0); //Set COM Output Scan Direction
160 1 Write_IIC_Command(0x81);//---set low column address
161 1 Write_IIC_Command(0xff);//---set high column address
162 1 Write_IIC_Command(0xa1);//--set start line address
163 1 Write_IIC_Command(0xa6);//--set contrast control register
164 1 Write_IIC_Command(0xa8);
165 1 Write_IIC_Command(0x3f);//--set segment re-map 0 to 127
166 1 Write_IIC_Command(0xad);//--set normal display
167 1 Write_IIC_Command(0x8b);//--set multiplex ratio(1 to 64)
168 1 Write_IIC_Command(0x33);//
169 1 Write_IIC_Command(0xc8);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
170 1 Write_IIC_Command(0xd3);//-set display offset
171 1 Write_IIC_Command(0x00);//-not offset
172 1 Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
173 1 Write_IIC_Command(0x80);//--set divide ratio
174 1 Write_IIC_Command(0xd9);//--set pre-charge period
175 1 Write_IIC_Command(0x1f); //
176 1 Write_IIC_Command(0xda);//--set com pins hardware configuration
177 1 Write_IIC_Command(0x12);
C51 COMPILER V9.52.0.0 OLED 03/25/2015 20:23:32 PAGE 4
178 1 Write_IIC_Command(0xdb);//--set vcomh
179 1 Write_IIC_Command(0x40);//0x20,0.77xVcc
180 1 // Write_IIC_Command(0x8d);//--set DC-DC enable
181 1 // Write_IIC_Command(0x14);//
182 1 Write_IIC_Command(0xaf);//--turn on oled panel
183 1 }
184
185
186
187
188
*** WARNING C316 IN LINE 188 OF SRC\oled.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 351 ----
CONSTANT SIZE = 1024 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)