📄 lcd_6610_drv.s
字号:
#include "LCD_6610_PORT.h"
.section .text
.global LCD_6610_WriteCmd
.global LCD_6610_WriteDat
/*
void LCD_6610_WriteCmd(uint8 cmd)//写指令
r24:cmd
r25:计数
*/
LCD_6610_WriteCmd :
cbi PORT_LCD_6610-0x20, LCD_SDATA;低_写命令
ldi r25, 7
sbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_H
cbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_L
CycleCmd:
;先写高位
rol r24;带进位左移
brcs OneCmd;C置位转
ZeroCmd:
cbi PORT_LCD_6610-0x20, LCD_SDATA;低
LoadCmd:
sbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_H
dec r25;减一
cbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_L
brpl CycleCmd;正数转
ret
OneCmd:
sbi PORT_LCD_6610-0x20, LCD_SDATA;高
rjmp LoadCmd
/*
void LCD_6610_WriteDat(uint8 dat)//写数据
r24:dat
r25:计数
*/
LCD_6610_WriteDat :
sbi PORT_LCD_6610-0x20, LCD_SDATA;高_写数据
ldi r25, 7
sbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_H
cbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_L
CycleDat:
;先写高位
rol r24;带进位左移
brcc ZeroDat;C清零转,考虑到清屏要用到多个1
OneDat:
sbi PORT_LCD_6610-0x20, LCD_SDATA;高
LoadDat:
sbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_H
dec r25;减一
cbi PORT_LCD_6610-0x20, LCD_SCLK;LCD_SCLK_L
brpl CycleDat;正数转
ret
ZeroDat:
cbi PORT_LCD_6610-0x20, LCD_SDATA;低
rjmp LoadDat
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -