221 lines
8.8 KiB
Plaintext
221 lines
8.8 KiB
Plaintext
|
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)
|