lcd_6610_drv.s

来自「GPS DEMO CODE FOR NOKIA6610 LCD,下载于OURAV」· S 代码 · 共 62 行

S
62
字号
	#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 + =
减小字号Ctrl + -
显示快捷键?