?? lcd_driver_user_a.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 + -