📄 1305_oled.lst
字号:
C51 COMPILER V8.12 1305_OLED 08/28/2008 20:16:23 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE 1305_OLED
OBJECT MODULE PLACED IN 1305_OLED.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1305_OLED.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************/
2 /*1305_OLED.c*/
3 /********************************************************/
4 /* 模块: 1305_OLED.c */
5 /* 描述: */
6 /* */
7 /* 处理器: */
8 /* 调用函数: */
9 /* 版本历史: */
10 /* ================================================== */
11 /* V1.0 */
12 /* 作者: AncentLee */
13 /* 日期: */
14 /* 修改原因: */
15 /* ================================================== */
16
17 #include <REGX52.H>
18 #include <intrins.h>
19 #include "usual_declare.h"
20 #include "8080_parallel_base.h"
21 #include "IO_define.h"
22
23 #include <stdio.h>
24
25 /*F_OLED_read_status()***********************************/
26 /* 函数名:OLED_read_status() */
27 /* 参数: 无 */
28 /* 返回值:无 */
29 /* 作用域: */
30 /* 功能: */
31 /********************************************************/
32 void OLED_read_status()
33 {
34 1 uint8 status;
35 1 do
36 1 {
37 2 status=parallel_read_command();
38 2 // printf("%bd",status);
39 2 status=status&0x80;
40 2 // printf("%bd",status);
41 2 //_getkey();
42 2 }while(status!=0);
43 1 }
44 /* End of F_OOLED_read_status()**************************/
45
46
47 /*F_OLED_init********************************************/
48 /* 函数名:OLED_init() */
49 /* 参数: 无 */
50 /* 返回值:无 */
51 /* 作用域: */
52 /* 功能: */
53 /********************************************************/
54
55
C51 COMPILER V8.12 1305_OLED 08/28/2008 20:16:23 PAGE 2
56 void OLED_init(void)
57 {
58 1 parallel_init();
59 1
60 1 OLED_CS=0;
61 1 OLED_RESET=0;
62 1 OLED_RESET=1;
63 1
64 1
65 1 OLED_read_status();
66 1 parallel_write_command(0xae);
67 1 OLED_read_status();
68 1 parallel_write_command(0xad);
69 1 OLED_read_status();
70 1 parallel_write_command(0x8a);
71 1 OLED_read_status();
72 1 parallel_write_command(0xa8);
73 1 OLED_read_status();
74 1 parallel_write_command(0x3f);
75 1 OLED_read_status();
76 1 parallel_write_command(0xd3);
77 1 OLED_read_status();
78 1 parallel_write_command(0x00);
79 1 OLED_read_status();
80 1 parallel_write_command(0x40);
81 1 OLED_read_status();
82 1 parallel_write_command(0xa1);
83 1 OLED_read_status();
84 1 parallel_write_command(0xc8);
85 1 OLED_read_status();
86 1 parallel_write_command(0xa6);
87 1 OLED_read_status();
88 1 parallel_write_command(0xa4);
89 1 OLED_read_status();
90 1 parallel_write_command(0x81);
91 1 OLED_read_status();
92 1 parallel_write_command(0x5c);
93 1 OLED_read_status();
94 1 parallel_write_command(0xd5);
95 1 OLED_read_status();
96 1 parallel_write_command(0x60);
97 1 OLED_read_status();
98 1 parallel_write_command(0xd8);
99 1 OLED_read_status();
100 1 parallel_write_command(0x00);
101 1 OLED_read_status();
102 1 parallel_write_command(0xd9);
103 1 OLED_read_status();
104 1 parallel_write_command(0x84);
105 1 OLED_read_status();
106 1 parallel_write_command(0xaf);
107 1 }
108 /* End of F_OLED_init***********************************/
109
110
111 /*F_OLED_clear_screen************************************/
112 /* 函数名:OLED_clear_screen() */
113 /* 参数: 无 */
114 /* 返回值:无 */
115 /* 作用域: */
116 /* 功能: */
117 /********************************************************/
C51 COMPILER V8.12 1305_OLED 08/28/2008 20:16:23 PAGE 3
118 void OLED_clear_screen()
119 {
120 1 uint8 j,page;
121 1 for(page=0;page<8;page++)
122 1 {
123 2 OLED_read_status();
124 2 parallel_write_command(176+page); //set page address
125 2 OLED_read_status();
126 2 parallel_write_command(0x00); //set low address
127 2 OLED_read_status();
128 2 parallel_write_command(0x10); //set higher address
129 2 OLED_read_status();
130 2 for(j=0;j<128;j++)
131 2 {
132 3 OLED_read_status();
133 3 parallel_write_data(0x00);
134 3 }
135 2 }
136 1 }
137 /* End of F_OLED_clear_screen****************************/
138
139
140
141 /*F_OLED_display*****************************************/
142 /* 函数名:OLED_clear_screen() */
143 /* 参数: 无 */
144 /* 返回值:无 */
145 /* 作用域: */
146 /* 功能: */
147 /********************************************************/
148 void OLED_display(uint8 picture[])
149 {
150 1 uint8 j;
151 1 uint8 page;
152 1 for(page=0;page<8;page++)
153 1 {
154 2 OLED_read_status();
155 2 parallel_write_command(176+page);//set page address
156 2 OLED_read_status();
157 2 parallel_write_command(0x00);//set low address
158 2 OLED_read_status();
159 2 parallel_write_command(0x10);//set higher address
160 2 OLED_read_status();
161 2 for(j=0;j<128;j++)
162 2 {
163 3 OLED_read_status();
164 3 parallel_write_data(picture[j+page*128]);
165 3 }
166 2 }
167 1 }
168 /* End of F_OLED_display********************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 342 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.12 1305_OLED 08/28/2008 20:16:23 PAGE 4
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -