網路城邦
上一篇 回創作列表 下一篇   字體:
SH1106 AVR Assembler 控制指令及資料指令
2015/05/24 12:42:14瀏覽453|回應0|推薦0
lcd_enc 為將temp(R16)中的內容送至SH1106 Command
lcd_end 為將temp(R16)中的內容送至SH1106 Data
使用暫存器:R16,R17
動作:旋轉temp,將C的內容依序(串行)送到SH1106的SDR腳
lcd_enc,lcd_end 差別為Command時 D/C 腳為 Low
                                  Data        時 D/C 腳為 High


lcd_enc:
cbi oled,dc
ldi r17,$07            ;r17 設定8bit
lc1:         lsl temp ;temp Bit7 => C
brcc   lc3 ;c = 0 跳 lc3
rcall   sdr_h   ;c = 1 call d_hi
rjmp   lc2
lc3:         rcall   sdr_l
lc2:         cpi r17,0 ;r17 = 0 結束
breq   lc4
dec r17
rjmp  lc1
lc4:
ret
sdr_h:
sbi oled,sdr
sbi oled,scl
cbi         oled,scl
ret
sdr_l:
cbi oled,sdr
sbi oled,scl
cbi         oled,scl
ret 
lcd_end:          
sbi oled,dc
ldi r17,$07 ;r17 設定8bit
lc5:          lsl temp ;temp Bit7 => C
brcc         lc7 ;c = 0 跳 ds3
rcall         sdr_h ;c = 1 call d_hi
rjmp         lc6
lc7:         rcall         sdr_l
lc6:         cpi r17,0 ;r17 = 0 結束
breq         lc8
dec r17
rjmp         lc5
lc8:
ret
( 不分類不分類 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=BX8AAE&aid=23509879