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

📄 dis_dir.asm

📁 基于SPMC75的NNAD_Flash K9F1208的驱动程式序,对一些需要存海量数据的单片机应用场合有用.
💻 ASM
字号:
//****************************************************************************************************
// 128X64I液晶底层驱动程序包
// 设计者: 牟联树
// 日  期: 2004.12.22
// 版本号: 1.0
//****************************************************************************************************
.INCLUDE  Spmc70_regs.inc
.DEFINE   LCD_E     0x0800            //LCD使能信号   (IOA11)
.DEFINE   LCD_R_W   0x0400            //读写信号      (IOA10)
.DEFINE   LCD_DI    0x0200            //数据指令选择  (IOA9)
.DEFINE   LCD_CS    0x0100            //LCD左半屏片选 (IOA8)
.DEFINE   LCD_Port  P_IOA_Data
.DEFINE   LCD_Port_B  P_IOA_Buffer
.DEFINE   LCD_Port_Dir P_IOA_Dir
.CODE
//****************************************************************************************************
// 128X64I液晶底层驱动画圆误差计算  W_Red_Err(int *a,int *b,int *r)
// 设计者: 牟联树
// 描  述: 系统初始化
// 日  期: 2004.12.22
// 版本号: 1.2
//****************************************************************************************************
.PUBLIC _W_Red_Err
_W_Red_Err: push bp,bp to [sp]
            bp = sp+1
            r3 = [bp+3]
            r3 = [r3]
            r3 = r3+1
            r4 = r3
            mr = r3*r4,us
            r1 = r3
            r3 = [bp+4]
            r3 = [r3]
            r4 = r3
            mr = r3*r4,us
            r1+= r3
            r3 = [bp+5]
            r3 = [r3]
            r4 = r3
            mr = r3*r4,us
            r1-=r3
            jl squ1
            r4 = [bp+4]
            r3 = [r4]
            r1-= r3
            jl squ1
            r3-=1
            [r4] = r3;
      squ1: r4 = [bp+3]
            r3 = [r4]
            r3+=1
            [r4] = r3
            pop bp,bp from [sp]
            retf               
//****************************************************************************************************
// 128X64I液晶底层驱动写数据子程序  Writ_Data(int a,int Data)
// 设计者: 牟联树
// 描  述: 数据写入子程序(供C语言调用)
// 日  期: 2004.12.22
// 版本号: 1.1
//****************************************************************************************************
.PUBLIC _Writ_Data       
_Writ_Data: push bp,bp to [sp]			//保存CPU环境
            bp = sp + 1
            r1 = [LCD_Port_Dir]
            r1 |= 0x00ff
            [LCD_Port_Dir] = r1     
            r1 = [LCD_Port_B]
            r1 &= (~(LCD_CS + LCD_E + LCD_R_W))&0xff00
            r1 |= LCD_DI + LCD_E             
            r1 |= [bp+3]                //装入要写的数据
            [LCD_Port_B] = r1
            r1 &=~LCD_E                 //产生E信号脉冲
            r1 |= LCD_CS
            [LCD_Port_B] = r1
            pop bp,bp from [sp]         //CPU环境恢复 
            retf  

//****************************************************************************************************
// 128X64I液晶底层驱动写指令子程序  Writ_ZL(int l_r,int Data)
// 设计者: 牟联树
// 描  述: 指令写入子程序(供C语言调用)
// 日  期: 2004.12.22
// 版本号: 1.1
//****************************************************************************************************
.PUBLIC  _Writ_ZL
  _Writ_ZL: push bp,bp to [sp]				//保存CPU环境
            bp = sp +1
            r1 = [LCD_Port_Dir]
            r1 |= 0x00ff
            [LCD_Port_Dir] = r1
            r1 = [LCD_Port_B]
            r1 &= (~(LCD_CS + LCD_E + LCD_DI + LCD_R_W))&0xff00              
            r1 |= [bp+3]					//装入要写的数据
            r1 |= LCD_E	
            [LCD_Port_B] = r1
            r1 &=~LCD_E                 	//产生E信号脉冲
            r1 |= LCD_CS
            [LCD_Port_B] = r1
            pop bp,bp from [sp]				//CPU环境恢复 
            retf
 
//****************************************************************************************************
// 128X64I液晶底层驱动读数据子程序 Read_Data()
// 设计者: 牟联树
// 描  述: 数据读取子程序(供C语言调用)
// 日  期: 2004.12.22
// 版本号: 1.1
//****************************************************************************************************
.PUBLIC  _Read_Data
_Read_Data: push bp,bp to [sp]			//保存CPU环境
            r1 = [LCD_Port_Dir]
            r1 &= 0xff00
            [LCD_Port_Dir] = r1
			r1 = [LCD_Port_B]
			r1 &= ~LCD_CS				//合成CS,DI和RW信号
			r1 |= (LCD_DI + LCD_R_W + LCD_E)
			[LCD_Port_B] = r1
            r2 = [LCD_Port]				//读数据
            r1 &=~LCD_E
			r1 |= LCD_CS
            [LCD_Port_B] = r1
            r1 = r2 & 0x00ff
            pop bp,bp from [sp]			//CPU环境恢复 
            retf
            
//****************************************************************************************************
// 128X64I液晶底层驱动读数据子程序 Read_State()
// 设计者: 牟联树
// 描  述: 数据读取子程序(供C语言调用)
// 日  期: 2004.12.22
// 版本号: 1.1
//****************************************************************************************************
.PUBLIC  _Read_State
_Read_State: push bp,bp to [sp]			//保存CPU环境
            r1 = [LCD_Port_Dir]
            r1 &= 0xff00
            [LCD_Port_Dir] = r1
			r1 = [LCD_Port_B]
			r1 &= ~(LCD_CS + LCD_DI) 	//合成CS,DI和RW信号
			r1 |= (LCD_R_W + LCD_E)
			[LCD_Port_B] = r1
            r2 = [LCD_Port]				//读数据
            r1 &=~LCD_E
			r1 |= LCD_CS
            [LCD_Port_B] = r1
            r1 = r2 & 0x00ff
            pop bp,bp from [sp]			//CPU环境恢复 
            retf

⌨️ 快捷键说明

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