亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd701_drv.asm

?? Input method of font
?? ASM
字號:
//======================================================
//  The information contained herein is the exclusive property of
//  Sunnnorth Technology Co. And shall not be distributed, reproduced,
//  or disclosed in whole in part without prior written permission.
//             (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//                          ALL RIGHTS RESERVED
//  The entire notice above must be reproduced on all authorized copies.
//========================================================

//============================================================
// 文件名稱:LCD701_Drv.asm
// 實現功能:SPLC701B底層驅動,利用SPCE061A的IO模擬SPLC701B時序
// 日期:    2005/6/18
//============================================================

.INCLUDE LCD701_Cfg.inc					// SPLC701B配置文件,可對傳輸模式、IO分配等進行設置

.PUBLIC _LCD701_InitIO
.PUBLIC F_LCD701_InitIO
.PUBLIC _LCD701_Read
.PUBLIC F_LCD701_Read
.PUBLIC _LCD701_Cmd
.PUBLIC F_LCD701_Cmd

.CODE

//======================================================
// 函數名稱:	LCD701_InitIO
// C調用:		void LCD701_InitIO(void)
// 匯編調用:	F_LCD701_InitIO
// 實現功能:   初始化IO
// 入口參數:	無
// 出口參數:	無
// 破壞寄存器:	無
//======================================================
_LCD701_InitIO:
F_LCD701_InitIO:
	/////-----       串行模式	    -----/////
.IF (IM_CFG == 000b)or(IM_CFG == 001b)	
	push r1 to [sp]
	r1 = [P_Ctrl_Attrib]				
	r1 |= PIN_CSB + PIN_SCL + PIN_SDA
	[P_Ctrl_Attrib] = r1
	r1 = [P_Ctrl_Buffer]
	r1 |= PIN_CSB + PIN_SCL + PIN_SDA
	[P_Ctrl_Buffer] = r1
	r1 = [P_Ctrl_Dir]
	r1 |= PIN_CSB + PIN_SCL + PIN_SDA
	[P_Ctrl_Dir] = r1
	pop r1 from [sp]
.ENDIF
	/////-----       68-8位模式	    -----/////
.IF IM_CFG == 010b			
	push r1 to [sp]
	r1 = [P_Ctrl_Attrib]				
	r1 |= PIN_RS + PIN_CSB + PIN_RW + PIN_E
	[P_Ctrl_Attrib] = r1
	r1 = [P_Ctrl_Buffer]
	r1 |= PIN_RS + PIN_CSB + PIN_RW
	r1 &= ~PIN_E
	[P_Ctrl_Buffer] = r1
	r1 = [P_Ctrl_Dir]
	r1 |= PIN_RS + PIN_CSB + PIN_RW + PIN_E
	[P_Ctrl_Dir] = r1
	r1 = [P_DB_Attrib]
	r1 |= PIN_DB_MASK
	[P_DB_Attrib] = r1
	r1 = [P_DB_Dir]
	r1 |= PIN_DB_MASK
	[P_DB_Dir] = r1
	pop r1 from [sp]
.ENDIF
	/////-----       68-4位模式	    -----/////
.IF IM_CFG == 011b		
.ENDIF
	/////-----       80-8位模式	    -----/////
.IF IM_CFG == 110b		
	push r1 to [sp]
	r1 = [P_Ctrl_Attrib]				
	r1 |= PIN_RS + PIN_CSB + PIN_RDB + PIN_WRB
	[P_Ctrl_Attrib] = r1
	r1 = [P_Ctrl_Buffer]
	r1 |= PIN_RS + PIN_CSB + PIN_RDB + PIN_WRB
	[P_Ctrl_Buffer] = r1
	r1 = [P_Ctrl_Dir]
	r1 |= PIN_RS + PIN_CSB + PIN_RDB + PIN_WRB
	[P_Ctrl_Dir] = r1
	r1 = [P_DB_Attrib]
	r1 |= PIN_DB_MASK
	[P_DB_Attrib] = r1
	r1 = [P_DB_Dir]
	r1 |= PIN_DB_MASK
	[P_DB_Dir] = r1
	pop r1 from [sp]
.ENDIF
	/////-----       80-4位模式	    -----/////
.IF IM_CFG == 111b		
.ENDIF
retf

//======================================================
// 函數名稱:	LCD701_Write(私有函數)
// C調用:		無
// 匯編調用:	F_LCD701_Write
// 實現功能:   僅對于串行模式,向SPLC701B寫入16位數據
// 入口參數:   r1 - 待寫入的數據
// 出口參數:   無
// 破壞寄存器: 無
//======================================================
	/////-----       串行模式	    -----/////
.IF (IM_CFG == 000b)or(IM_CFG == 001b)	
F_LCD701_Write:					
	int off
	push r1,r3 to [sp]

	r3 = [P_Ctrl_Buffer]			// Set CSB Low
	r3 &= ~PIN_CSB
	[P_Ctrl_Buffer] = r3

	r2 = 0x8000						// Bit Mask
?SP_Write_Loop:
	r3 &= ~PIN_SCL					// Set SCL Low
	[P_Ctrl_Buffer] = r3
	test r1,r2						// Determine whether SDA High or Low
	jnz ?SP_Write_High
?SP_Write_Low:
	r3 &= ~PIN_SDA					// SDA Low
	jmp ?SP_Write_SDA
?SP_Write_High:
	r3 |= PIN_SDA					// SDA High
?SP_Write_SDA:
	[P_Ctrl_Buffer] = r3			// Write SDA

	r3 |= PIN_SCL					// Set SCL High
	[P_Ctrl_Buffer] = r3
	r2 = r2 LSR 1
	jnz ?SP_Write_Loop				// Next bit

	r3 |= PIN_CSB					// Set CSB High
	[P_Ctrl_Buffer] = r3
	pop r1,r3 from [sp]
	int fiq,irq
retf
.ENDIF

//======================================================
// 函數名稱:	LCD701_Read
// C調用:		unsigned LCD701_Read(void)
// 匯編調用:	F_LCD701_Read
// 實現功能:   從SPLC701B的當前地址讀出一個字節數據
// 入口參數:   無
// 出口參數:   r1 - 讀出的1字節數據
// 破壞寄存器: r1
//======================================================
	/////-----       串行模式	    -----/////
.IF (IM_CFG == 000b)or(IM_CFG == 001b)
_LCD701_Read:
F_LCD701_Read:
	int off
	push r2,r3 to [sp]
	r1 = 0x700F|((IM_CFG&0x01)<<10)	// Point Index Register to 0x0F
	call F_LCD701_Write
	
	r3 = [P_Ctrl_Buffer]			// Set CSB Low
	r3 &= ~PIN_CSB
	[P_Ctrl_Buffer] = r3

	r1 = 0x0073|((IM_CFG&0x01)<<2)	// Write 8 bit Start Code
	r2 = 0x0080						// Bit Mask
?SP_Write_Loop:
	r3 &= ~PIN_SCL					// Set SCL Low
	[P_Ctrl_Buffer] = r3
	test r1,r2						// Determine whether SDA High or Low
	jnz ?SP_Write_High
?SP_Write_Low:
	r3 &= ~PIN_SDA					// SDA Low
	jmp ?SP_Write_SDA
?SP_Write_High:
	r3 |= PIN_SDA					// SDA High
?SP_Write_SDA:
	[P_Ctrl_Buffer] = r3			// Write SDA

	r3 |= PIN_SCL					// Set SCL High
	[P_Ctrl_Buffer] = r3
	r2 = r2 LSR 1
	jnz ?SP_Write_Loop				// Next bit

	r3 = [P_Ctrl_Dir]				// Set SDA as Input Pin
	r3 &= ~PIN_SDA
	[P_Ctrl_Dir] = r3
	r3 = [P_Ctrl_Attrib]
	r3 &= ~PIN_SDA
	[P_Ctrl_Attrib] = r3
	r3 = [P_Ctrl_Buffer]
	r3 &= ~PIN_SDA
	[P_Ctrl_Data] = r3

	r2 = 0x8000						// Skip 16 bit Invalid Data
	r3 = [P_Ctrl_Buffer]
?SP_Skip_Loop:
	r3 &= ~PIN_SCL					// Set Clk Low
	[P_Ctrl_Buffer] = r3
	r3 |= PIN_SCL					// Set Clk High
	[P_Ctrl_Buffer] = r3
	r2 = r2 LSR 1
	jnz ?SP_Skip_Loop				// Next Bit
	
	r1 = 0x0000						// Read 8 bit Data to r1
	r2 = 0x0080						// Bit Mask
?SP_Read_Loop:
	r3 = [P_Ctrl_Buffer]			// Set Clk Low
	r3 &= ~PIN_SCL
	[P_Ctrl_Buffer] = r3

	r3 = [P_Ctrl_Data]				// Get SDA
	r3 &= PIN_SDA
	jz ?SP_Read_Low
?SP_Read_High:						
	r1 |= r2
?SP_Read_Low:						
	// do nothing
	r3 = [P_Ctrl_Buffer]
	r3 |= PIN_SCL					//Set Clk High
	[P_Ctrl_Buffer] = r3			
	r2 = r2 LSR 1
	jnz ?SP_Read_Loop				// Next bit

	r3 = [P_Ctrl_Attrib]			// Set SDA as Output Pin
	r3 |= PIN_SDA
	[P_Ctrl_Attrib] = r3
	r3 = [P_Ctrl_Dir]
	r3 |= PIN_SDA
	[P_Ctrl_Dir] = r3

	r3 = [P_Ctrl_Buffer]			//Set CSB High
	r3 |= PIN_CSB
	[P_Ctrl_Buffer] = r3
	pop r2,r3 from [sp]
	int fiq,irq
retf
.ENDIF

//======================================================
// 函數名稱:	LCD701_Cmd
// C調用:		void LCD701_Cmd(unsigned CmdCode)
// 匯編調用:	F_LCD701_Cmd
// 實現功能:   向SPLC701B寫入命令,命令格式為:
//					高8位 - Index Register
//					低8位 - Control Code
// 入口參數:   CmdCode(r1) - 16位命令
// 出口參數:   無
// 破壞寄存器: 無
//======================================================
_LCD701_Cmd:
	push r1 to [sp]
	r1 = sp+4
	r1 = [r1]
	call F_LCD701_Cmd
	pop r1 from [sp]
retf

	/////-----       串行模式	    -----/////
.IF (IM_CFG == 000b)or(IM_CFG == 001b)
// r1: Cmd
F_LCD701_Cmd:
	push r1,r2 to [sp]
	r2 = r1
	r1 = r1 lsr 4					//IR
	r1 = r1 lsr 4
	r1 |= 0x7000|((IM_CFG&0x01)<<10)
	call F_LCD701_Write
	
	r1 = r2
	r1 = r1 & 0x00ff
	r1 |= 0x7200|((IM_CFG&0x01)<<10)
	call F_LCD701_Write
	pop r1,r2 from [sp]
retf
.ENDIF

.IF IM_CFG == 010b						// 68 system interface, 8bit
F_LCD701_Cmd:
	push r1,r3 to [sp]
	r2 = r1
.IF P_DB_HighByte
	r1 &= 0xff00
.ELSE
	r1 = r1 lsr 4						// Index Register
	r1 = r1 lsr 4
.ENDIF
	r3 = [P_Ctrl_Buffer]			
	r3 &= ~PIN_E						// E=0
	[P_Ctrl_Buffer] = r3
r3 &= ~PIN_CSB
[P_Ctrl_Buffer] = r3
	r3 &= ~(PIN_CSB + PIN_RW + PIN_RS)	// CSB=0; RW=0; RS=0;
	[P_Ctrl_Buffer] = r3
	r3 = [P_DB_Buffer]					// Load IndexCode onto DataBus
	r3 &= ~PIN_DB_MASK
	r3 |= r1
	[P_DB_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// E=1
	r3 |= PIN_E
	[P_Ctrl_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// E=0
	r3 &= ~PIN_E
	[P_Ctrl_Buffer] = r3
r3 |= PIN_CSB
[P_Ctrl_Buffer]	= r3

	r1 = r2
.IF P_DB_HighByte
	r1 = r1 lsl 4
	r1 = r1 lsl 4
.ELSE
	r1 = r1 & 0x00ff					// Control Code
.ENDIF
	r3 = [P_Ctrl_Buffer]
	r3 |= PIN_RS						// RS=1
	[P_Ctrl_Buffer] = r3
r3 &= ~PIN_CSB
[P_Ctrl_Buffer]	= r3
	r3 = [P_DB_Buffer]					// Load ControlCode onto DataBus
	r3 &= ~PIN_DB_MASK
	r3 |= r1
	[P_DB_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// E=1
	r3 |= PIN_E
	[P_Ctrl_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// E=0
	r3 &= ~PIN_E
	[P_Ctrl_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// CSB=1, RW=1
	r3 |= (PIN_CSB + PIN_RW)			
	[P_Ctrl_Buffer] = r3
	pop r1,r3 from [sp]
retf
.ENDIF

.IF IM_CFG == 010b						// 68 system interface, 8bit
_LCD701_Read:
F_LCD701_Read:
	nop	
retf
.ENDIF

.IF IM_CFG == 110b						// 80 system interface, 8bit
F_LCD701_Cmd:
	push r1,r3 to [sp]
	r2 = r1
.IF P_DB_HighByte
	r1 &= 0xff00
.ELSE
	r1 = r1 lsr 4						// Index Register
	r1 = r1 lsr 4
.ENDIF
	r3 = [P_Ctrl_Buffer]			
	r3 &= ~PIN_RS						// RS=0
	[P_Ctrl_Buffer] = r3
	r3 = [P_Ctrl_Buffer]
	r3 &= ~PIN_CSB
	[P_Ctrl_Buffer] = r3
	r3 = [P_Ctrl_Buffer]
	r3 &= ~PIN_WRB						// WRB=0
	[P_Ctrl_Buffer] = r3
	r3 = [P_DB_Buffer]					// Load IndexCode onto DataBus
	r3 &= ~PIN_DB_MASK
	r3 |= r1
	[P_DB_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// WRB=1
	r3 |= PIN_WRB
	[P_Ctrl_Buffer] = r3
	r3 |= PIN_CSB
	[P_Ctrl_Buffer]	= r3

	r1 = r2
.IF P_DB_HighByte
	r1 = r1 lsl 4
	r1 = r1 lsl 4
.ELSE
	r1 = r1 & 0x00ff					// Control Code
.ENDIF
	r3 = [P_Ctrl_Buffer]
	r3 |= PIN_RS						// RS=1
	[P_Ctrl_Buffer] = r3
r3 &= ~PIN_CSB
[P_Ctrl_Buffer]	= r3
	r3 &= ~PIN_WRB							// WRB=0
	[P_Ctrl_Buffer] = r3
	r3 = [P_DB_Buffer]					// Load ControlCode onto DataBus
	r3 &= ~PIN_DB_MASK
	r3 |= r1
	[P_DB_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// WRB=1
	r3 |= PIN_WRB
	[P_Ctrl_Buffer] = r3
	r3 = [P_Ctrl_Buffer]				// CSB=1
	r3 |= PIN_CSB
	[P_Ctrl_Buffer] = r3
	pop r1,r3 from [sp]
retf
.ENDIF

.IF IM_CFG == 110b						// 80 system interface, 8bit
_LCD701_Read:
F_LCD701_Read:
	nop	
retf
.ENDIF

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线资源网站| 国产精品剧情在线亚洲| 97久久精品人人爽人人爽蜜臀| 久久av资源站| 久久成人免费电影| 久久电影网电视剧免费观看| 蜜臀av国产精品久久久久| 免费在线观看不卡| 蜜桃精品视频在线| 国产在线精品一区二区三区不卡 | 91精品国产丝袜白色高跟鞋| 91激情五月电影| 欧美在线一区二区| 欧美肥妇free| 精品国产凹凸成av人导航| 精品1区2区在线观看| 久久久久久久久免费| 国产精品日产欧美久久久久| 亚洲色图在线播放| 日韩精品1区2区3区| 精品午夜久久福利影院| 国产99久久精品| 97精品国产露脸对白| 欧美色视频一区| 久久综合九色综合97婷婷女人 | 亚洲视频一区二区免费在线观看| 亚洲嫩草精品久久| 美女脱光内衣内裤视频久久网站| 国产精品一区二区在线观看网站| www.亚洲在线| 69av一区二区三区| 国产精品入口麻豆九色| 亚洲大片在线观看| 国产成人丝袜美腿| 欧美日韩精品一区二区在线播放| 日韩免费观看2025年上映的电影| 亚洲国产精品成人综合 | 精品福利二区三区| 亚洲视频一区二区免费在线观看| 日韩和欧美一区二区三区| 国产99久久久精品| 日韩欧美国产小视频| 最新国产成人在线观看| 蜜桃一区二区三区在线| 色天使久久综合网天天| 久久免费看少妇高潮| 日韩精品一区第一页| av一区二区不卡| 久久先锋影音av| 日韩国产精品久久久| 99精品视频在线观看| 久久你懂得1024| 日本少妇一区二区| 欧美主播一区二区三区| 中文字幕av资源一区| 国产永久精品大片wwwapp | 国精产品一区一区三区mba桃花| 99久久婷婷国产综合精品电影 | 国产精品一区二区你懂的| 欧美视频日韩视频在线观看| 国产精品国产a| 岛国精品一区二区| 久久久久久一级片| 麻豆免费精品视频| 日韩欧美不卡在线观看视频| 亚洲v精品v日韩v欧美v专区| 欧洲视频一区二区| 一区二区三区四区不卡视频| 99vv1com这只有精品| 国产精品美女久久久久aⅴ| 国产一区视频在线看| 欧美精品一区二区三区高清aⅴ| 日韩成人精品在线观看| 欧美久久久久免费| 日产国产欧美视频一区精品| 欧美日韩视频一区二区| 日韩精品电影在线| 日韩欧美高清dvd碟片| 麻豆免费看一区二区三区| 欧美一三区三区四区免费在线看| 三级成人在线视频| 欧美一区欧美二区| 精品一区二区三区香蕉蜜桃| 精品国产乱子伦一区| 国产综合久久久久久久久久久久| 26uuu国产电影一区二区| 国产精品系列在线播放| 国产精品女同互慰在线看| 99riav久久精品riav| 一区二区欧美精品| 欧美一区国产二区| 国产一区不卡在线| 中文字幕一区三区| 欧美午夜精品久久久久久孕妇| 亚洲午夜电影在线| 日韩片之四级片| 成人久久18免费网站麻豆| 一区二区三区久久| 日韩欧美在线1卡| 成人激情校园春色| 午夜精品久久久久久久蜜桃app| 日韩欧美一区二区不卡| 国产成人精品影视| 亚洲一区二区三区视频在线| 欧美zozozo| 91网站在线播放| 久久av老司机精品网站导航| 国产精品情趣视频| 欧美精品 日韩| 成人18视频日本| 日本伊人色综合网| 国产精品麻豆网站| 91精品国产综合久久精品| 不卡一区在线观看| 秋霞影院一区二区| 亚洲精品免费电影| www成人在线观看| 欧美性感一类影片在线播放| 国产一区二区三区免费看 | 欧美日韩在线播放三区四区| 麻豆精品精品国产自在97香蕉| 国产蜜臀av在线一区二区三区| 欧美主播一区二区三区美女| 国产精品456露脸| 日韩成人午夜电影| 亚洲激情自拍视频| 亚洲国产精品av| 亚洲精品在线免费播放| 欧美日韩不卡一区| 99久久国产免费看| 国产精品亚洲人在线观看| 丝袜美腿一区二区三区| 亚洲乱码精品一二三四区日韩在线| 亚洲精品一区二区精华| 欧美久久久久久久久久| 色噜噜狠狠一区二区三区果冻| 国产精一区二区三区| 久久精品国产一区二区| 日韩经典一区二区| 亚洲.国产.中文慕字在线| 一区二区三区不卡视频在线观看 | 日韩美一区二区三区| 欧美三级三级三级爽爽爽| 91色九色蝌蚪| 91影院在线观看| 99国产精品视频免费观看| 成人福利电影精品一区二区在线观看 | 欧美α欧美αv大片| 欧美一级日韩一级| 欧美一区二区三区白人| 91精品久久久久久蜜臀| 欧美一区二区三区精品| 日韩一级片网站| 日韩一区二区三区电影在线观看| 欧美精品123区| 日韩视频免费直播| 日韩免费一区二区| 久久日韩精品一区二区五区| 久久蜜桃av一区精品变态类天堂| 精品毛片乱码1区2区3区 | 丁香婷婷深情五月亚洲| 国产精品一二三区在线| 国产99一区视频免费| www..com久久爱| 色国产精品一区在线观看| 欧美午夜在线观看| 日韩精品中文字幕在线不卡尤物| 欧美zozo另类异族| 中文字幕不卡一区| 亚洲午夜精品久久久久久久久| 性感美女久久精品| 久久成人精品无人区| 成人一级视频在线观看| 色系网站成人免费| 欧美一区午夜视频在线观看| 久久蜜桃香蕉精品一区二区三区| 日本一区二区三区四区| 亚洲永久精品大片| 蜜臀久久99精品久久久久宅男| 国产高清精品在线| 欧美亚洲日本国产| 2020日本不卡一区二区视频| 综合激情成人伊人| 三级一区在线视频先锋| 风间由美中文字幕在线看视频国产欧美| 国产91综合网| 欧美精品一卡两卡| 国产精品色婷婷久久58| 午夜精品久久久久久| 成人手机电影网| 91精品一区二区三区在线观看| 色婷婷精品久久二区二区蜜臀av| 欧美主播一区二区三区| 国产精品三级视频| 不卡高清视频专区| 亚洲制服丝袜一区| 日韩欧美国产三级电影视频| 国产91清纯白嫩初高中在线观看| 亚洲视频图片小说| 日韩丝袜情趣美女图片|