-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patholed.asm
216 lines (211 loc) · 3.55 KB
/
oled.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
;*******************************************************
;OLED Commands
;*******************************************************
;**************************
;Fonts:
;0,6,10,18,51,120,123
;**************************
#include "def.inc"
UDATA_SHR
font res 1 ; Set Font (0 default)
oledtmp res 1
global OLED_Init
global OLED_Orgin
global OLED_StartScreen
global OLED_Clear
global OLED_ClearScreen
global OLED_Rotate180
global OLED_StartText
global OLED_SendNull
global OLED_NextLine
global OLED_EEPROM
global OLED_DMNULL
global OLED_DMNOT
global OLED_DOUT
global OLED_TextPos
global OLED_FillRect
global OLED_DrawRect
global OLED_DrawLine
global OLED_HEX
extern CONV_HEX
extern Delay1000
extern Delay125
extern UART_SendByte
extern EEPROM_Read
extern ee_dat
extern baud
code
OLED_Init
call Delay1000 ; Delay for Boot Screen
call Delay1000
movlw 0x18 ; 9600bps
movwf baud
call OLED_SetBaud19.2k
movlw 0x0A ; 19200bps
movwf baud
call OLED_Clear
;call OLED_Rotate180
return
OLED_SetBaud19.2k
movlw "S"
call UART_SendByte
movlw "B"
call UART_SendByte
movlw "1"
call UART_SendByte
movlw "9"
call UART_SendByte
movlw "2"
call UART_SendByte
movlw "0"
call UART_SendByte
movlw "0"
call UART_SendByte
call OLED_SendNull
return
OLED_FillRect ;FR(X,Y,X2,Y2)
movlw "F"
call UART_SendByte
movlw "R"
call UART_SendByte
return
OLED_DrawRect ;DR(X,Y,X2,Y2)
movlw "D"
call UART_SendByte
movlw "R"
call UART_SendByte
return
OLED_DrawLine ;LN(X,Y,X2,Y2)
movlw "L"
call UART_SendByte
movlw "N"
call UART_SendByte
return
OLED_DOUT ;DOUT(00011111)
movlw "D"
call UART_SendByte
movlw "O"
call UART_SendByte
movlw "U"
call UART_SendByte
movlw "T"
call UART_SendByte
return
OLED_Orgin
movlw "T"
call UART_SendByte
movlw "P"
call UART_SendByte
movlw 0x00
call UART_SendByte
movlw 0x00
call UART_SendByte
return
OLED_TextPos
movlw "T"
call UART_SendByte
movlw "P"
call UART_SendByte
return
OLED_StartScreen
movlw "D"
call UART_SendByte
movlw "S"
call UART_SendByte
movlw "S"
call UART_SendByte
movlw "1"
call UART_SendByte
call Delay1000
return
OLED_Clear
movlw "C"
call UART_SendByte
movlw "L"
call UART_SendByte
return
OLED_ClearScreen
call OLED_CS
call OLED_DMNOT
call OLED_CS
call OLED_DMNULL
return
OLED_CS
movlw "F"
call UART_SendByte
movlw "R"
call UART_SendByte
movlw 0x00
call UART_SendByte
movlw 0x00
call UART_SendByte
movlw 0x80
call UART_SendByte
movlw 0x41
call UART_SendByte
return
OLED_DMNOT
movlw "D"
call UART_SendByte
movlw "M"
call UART_SendByte
movlw "!"
call UART_SendByte
return
OLED_DMNULL
movlw "D"
call UART_SendByte
movlw "M"
call UART_SendByte
movlw 0x00
call UART_SendByte
return
OLED_Rotate180
call OLED_Clear
movlw "S"
call UART_SendByte
movlw "D"
call UART_SendByte
movlw "2"
call UART_SendByte
return
OLED_StartText
movlw "T"
call UART_SendByte
movlw "T"
call UART_SendByte
return
OLED_SendNull
movlw 0x00
call UART_SendByte
call Delay125
return
OLED_NextLine
movlw "T"
call UART_SendByte
movlw "R"
call UART_SendByte
movlw "T"
call UART_SendByte
return
OLED_EEPROM
call EEPROM_Read
sublw 0xFF
btfsc STATUS,Z
goto $+4
movf ee_dat,w
call UART_SendByte
goto OLED_EEPROM
return
OLED_HEX
movwf oledtmp
swapf oledtmp, w
andlw 0x0f
call CONV_HEX
call UART_SendByte
movf oledtmp, w
andlw 0x0f
call CONV_HEX
call UART_SendByte
return
END