⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_driver_user_a.asm

📁 44b0+s6b0724包括系统初始化
💻 ASM
字号:
//========================================================================
// 文件名: LCD_Driver_User_A.asm
// 作  者: kaka.IN Hisense
//			sn.kaka@yahoo.com 
// 日  期: 2007/03/11
// 描  述: 底层接口驱动基础程序集(ASM语言版本)
//
// 参  考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写底
//			层接口驱动程序
// 版  本:
//      2007/03/11      First version    Mz Design
// 注  意: 该文件当中,主要是对四个重要的函数进行了ASM的重写
//========================================================================
.DEFINE		P_IOA_Data				0x7000
.DEFINE		P_IOA_Buffer			0x7001
.DEFINE		P_IOA_Dir				0x7002
.DEFINE		P_IOA_Attrib			0x7003
.DEFINE		P_IOA_Latch				0x7004
.DEFINE		P_IOB_Data				0x7005
.DEFINE		P_IOB_Buffer			0x7006
.DEFINE		P_IOB_Dir				0x7007
.DEFINE		P_IOB_Attrib			0x7008
	
// Define for the port use by LCD Driver
.define LCD_EP				0x1000
.define LCD_RW				0x0800
.define LCD_AO				0x0400
.define LCD_RE				0x0200
.define LCD_CS				0x0100


.define LCD_CMD_Dir			P_IOA_Dir
.define LCD_CMD_Attrib		P_IOA_Attrib
.define LCD_CMD_Buffer		P_IOA_Buffer

.define LCD_Data_BUS_Out	P_IOA_Buffer
.define LCD_Data_BUS_In		P_IOA_Data
.define LCD_Data_BUS_Dir	P_IOA_Dir
.define LCD_Data_BUS_Attrib	P_IOA_Attrib

.define LCD_Data_BUS_Byte	0//1

.external _TimeDelay
.code
	

//========================================================================
// 函数: unsigned int LCD_StatusRead(void)
// 描述: 从LCD中的显示缓冲RAM当中读一个字节的显示数据
// 参数: 无  
// 返回: 读出的数据,低八位有效(byte)
// 备注: 
// 版本:
//      2007/01/09      First version
// 注意: 
//========================================================================
.public _LCD_StatusRead
_LCD_StatusRead:
	r3 = [LCD_Data_BUS_Dir]				//设置数据口为输入
.if LCD_Data_BUS_Byte==1 
	r2 = r3&0x00ff
.else
	r2 = r3&0xff00
.endif
	[LCD_Data_BUS_Dir] = r2
	
	r2 = [LCD_CMD_Buffer]				//得到IOB口的状态
	r2 &= ~(LCD_EP+LCD_CS+LCD_AO)		//EP CS to Low 20050613  Editby xinqiang					
//	[LCD_CMD_Buffer] = r2 				//EP Low
	r2 |= (LCD_RW)
	[LCD_CMD_Buffer] = r2				//AO Hight, RW Hight
//	nop
	r2 |= LCD_EP
	[LCD_CMD_Buffer] = r2				//产生EP高电平,
//	nop
	r2 &= ~LCD_EP					//EP to Low
	[LCD_CMD_Buffer] = r2
	r1 = [LCD_Data_BUS_In]
	r2 |= LCD_CS
	[LCD_CMD_Buffer] = r2
	
//	r2 = [LCD_Data_BUS_Dir]				//恢复数据口为输出状态
.if LCD_Data_BUS_Byte==1 
//	r2 = r2|0xff00
	r1 = r1 lsr 4
	r1 = r1 lsr 4
.else
//	r2 = r2|0x00ff
	r1 = r1&0x00ff
.endif
	[LCD_Data_BUS_Dir] = r3
	retf

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -