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

📄 lcd.asm

📁 采用两片凌阳61实现的建简易智能车程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
//入口参数:起始显示的页号
//返回参数:无
//****************************************************************************************
.public  _Dingwei_Display1
_Dingwei_Display1: .proc
          push bp to [sp]
          bp=sp+1
          push r1,r2 to  [sp]
          r3=0   
		  r4=lie                        //设列地址
		  call Ctrl1
		  r4=0xc000                 //设起始点阵行
		  call Ctrl1
		  r1=[bp+3]                      //取第一个参数,即从第几页开始显示 
		  [_page1]=r1
          r2=[bp+4]                      //所选择的字模数组的起始值		  
		  r5=r2                  //第一片显示的内容
   newloop1:
          r1=[_page1]
          r1=r1 lsl 4
          r1=r1 lsl 4
          r4=r1+0xb800             //设置页面地址
          call  Ctrl1
          r2=0
          r4=lie                    //设置列地址
          call  Ctrl1
     newloop11:   
          r4=[r5]                //正显示,取首地址
          r4=r4 lsl 4
          r4=r4 lsl 4
          call  data1
          r5+=1
          r2+=1               //显示完64列?
          cmp  r2,63
          jna   newloop11
          r1=[_page1]
          r1+=1
          r3+=1
          [_page1]=r1
          cmp r3,1            //显示一个汉字行,即两个小页
          jna   newloop1
		  call Delay
		  pop r1,r2 from [sp]
		  pop bp from [sp]
		  retf
		  .endp
//************************************定位显示程序__正常显示2*****************************
//函数名称: _Dingwei_Display2
//函数功能: 在右半屏正常显示一行汉字,四个
//入口参数:起始显示的页号
//返回参数:无
//****************************************************************************************         
.public  _Dingwei_Display2
_Dingwei_Display2: .proc
          push bp to [sp]
          bp=sp+1
          push r1,r2 to  [sp]
          r3=0   
		  r4=lie                        //设列地址
		  call Ctrl2
		  r4=0xc000                 //设起始点阵行
		  call Ctrl2
		  r1=[bp+3]                      //取第一个参数,即从第几页开始显示 
		  [_page2]=r1
          r2=[bp+4]                      //所选择的字模数组的起始值		  
		  r5=r2                  //第一片显示的内容
   newloop2:
          r1=[_page2]
          r1=r1 lsl 4
          r1=r1 lsl 4
          r4=r1+0xb800             //设置页面地址
          call  Ctrl2
          r2=0
          r4=lie                    //设置列地址
          call  Ctrl2
     newloop12:         
          r4=[r5]                //正显示,取首地址
          r4=r4 lsl 4
          r4=r4 lsl 4
          call  data2
          r5+=1
          r2+=1               //显示完64列?
          cmp  r2,63
          jna   newloop12
          r1=[_page2]
          r1+=1
          r3+=1
          [_page2]=r1
          cmp r3,1            //显示一个汉字行,即两个小页
          jna   newloop2
		  call Delay
		  pop r1,r2 from [sp]
		  pop bp from [sp]
		  retf
		  .endp

//*****************************************************************************************//
//函数名:_Display_hanzi1
//功能:在任意的地方显示一个汉字
//入口参数:第一个,页号0~7;第二个,起始列值,取0~48;第三个,数组首地址.
//返回参数:无
//******************************************************************************************//
.public  _Display_hanzi1
_Display_hanzi1: .proc
     push bp to [sp]
          bp=sp+1
          push r1,r5 to  [sp]
          r1=0x0000
          [_temp2]=r1
          r1=[bp+3]               //取页号
          [_page1]=r1
          r2=[bp+4]                //取起始列数值
          [_col1]=r2
          r5=[bp+5]                      //取第三个参数,所选择的字模数组的起始地址		  
		  r4=lie
		  call Ctrl1
		  r4=0xc000                 //设起始点阵行
		  call Ctrl1               
 Looping1:
          r1=[_page1]         
          r1=r1 lsl 4
          r1=r1 lsl 4
          r4=r1+0xb800             //设置页面地址 
          call Ctrl1
          r2=[_col1]
          r2=r2 lsl 4
          r2=r2 lsl 4
		  r4=r2+lie                        //设列地址
		  call Ctrl1
		  r2=0 		  
   looping1:         
          r4=[r5]                //正显示,取首地址
          r4=r4 lsl 4
          r4=r4 lsl 4
          call  data1
          r5+=1
          r2+=1               //显示完8列?
          cmp  r2,15
          jna   looping1
          r1=[_page1]
          r1+=1
          [_page1]=r1
          r1=[_temp2]
          r1+=1
          [_temp2]=r1
          r3=[_temp2]
          cmp r3,1            //显示一个汉字行,即两个小页
          jna   Looping1
		  pop r1,r5 from [sp]
		  pop bp from [sp]
		  retf
		  .endp		  		  		  		  		  		  	  		  
//*****************************************************************************************//
//函数名:_Display_hanzi2
//功能:在任意的地方显示一个汉字
//入口参数:第一个,页号0~7;第二个,起始列值,取0~48;第三个,数组首地址.
//返回参数:无
//******************************************************************************************//
.public  _Display_hanzi2
_Display_hanzi2: .proc
     push bp to [sp]
          bp=sp+1
          push r1,r5 to  [sp]
          r1=0x0000
          [_temp2]=r1
          r1=[bp+3]               //取页号
          [_page1]=r1
          r2=[bp+4]                //取起始列数值
          [_col1]=r2
          r5=[bp+5]                      //取第三个参数,所选择的字模数组的起始地址		  
		  r4=lie
		  call Ctrl2
		  r4=0xc000                 //设起始点阵行
		  call Ctrl2                 
 Looping2:
          r1=[_page1]         
          r1=r1 lsl 4
          r1=r1 lsl 4
          r4=r1+0xb800             //设置页面地址 
          call Ctrl2
          r2=[_col1]
          r2=r2 lsl 4
          r2=r2 lsl 4
		  r4=r2+lie                        //设列地址
		  call Ctrl2
		  r2=0 		  
   looping2:         
          r4=[r5]                //正显示,取首地址
          r4=r4 lsl 4
          r4=r4 lsl 4
          call  data2
          r5+=1
          r2+=1               //显示完8列?
          cmp  r2,15
          jna   looping2
          r1=[_page1]
          r1+=1
          [_page1]=r1
          r1=[_temp2]
          r1+=1
          [_temp2]=r1
          r3=[_temp2]
          cmp r3,1            //显示一个汉字行,即两个小页
          jna   Looping2
		  pop r1,r5 from [sp]
		  pop bp from [sp]
		  retf
		  .endp
//*****************************************************************************************//
//函数名:_Display_num1
//功能:在任意的地方显示一个数字字
//入口参数:第一个,页号0~7;第二个,起始列值,取0~48;第三个,数组首地址.
//返回参数:无
//******************************************************************************************//
.public  _Display_num1
_Display_num1: .proc
     push bp to [sp]
          bp=sp+1
          push r1,r5 to  [sp]
          r1=0x0000
          [_temp2]=r1
          r1=[bp+3]               //取页号,第一个参数
          [_page1]=r1
          r2=[bp+4]                //取起始列数值,第二个参数
          [_col1]=r2
          r5=[bp+5]                      //取第三个参数,所选择的字模数组的起始地址		  
		  r4=lie
		  call Ctrl1
		  r4=0xc000                 //设起始点阵行
		  call Ctrl1               
 Loop_num1:
          r1=[_page1]         
          r1=r1 lsl 4
          r1=r1 lsl 4
          r4=r1+0xb800             //设置页面地址 
          call Ctrl1
          r2=[_col1]
          r2=r2 lsl 4
          r2=r2 lsl 4
		  r4=r2+lie                        //设列地址
		  call Ctrl1
		  r2=0 		  
   loop_num1:         
          r4=[r5]                //正显示,取首地址
          r4=r4 lsl 4
          r4=r4 lsl 4
          call  data1
          r5+=1
          r2+=1               //显示完16列?
          cmp  r2,7
          jna   loop_num1
          r1=[_page1]
          r1+=1
          [_page1]=r1
          r1=[_temp2]
          r1+=1
          [_temp2]=r1
          r3=[_temp2]
          cmp r3,1            //显示一个汉字,即两个小页
          jna   Loop_num1
		  pop r1,r5 from [sp]
		  pop bp from [sp]
		  retf
		  .endp		  		  		  		  		  		  
//*****************************************************************************************//
//函数名:_Display_num2
//功能:在任意的地方显示一个汉字
//入口参数:第一个,页号0~7;第二个,起始列值,取0~48;第三个,数组首地址.
//返回参数:无
//******************************************************************************************//
.public  _Display_num2
_Display_num2: .proc
     push bp to [sp]
          bp=sp+1
          push r1,r5 to  [sp]
          r1=0x0000
          [_temp2]=r1
          r1=[bp+3]               //取页号
          [_page1]=r1
          r2=[bp+4]                //取起始列数值
          [_col1]=r2
          r5=[bp+5]                      //取第三个参数,所选择的字模数组的起始地址		  
		  r4=lie
		  call Ctrl2
		  r4=0xc000                 //设起始点阵行
		  call Ctrl2                 
 Loop_num2:
          r1=[_page1]         
          r1=r1 lsl 4
          r1=r1 lsl 4
          r4=r1+0xb800             //设置页面地址 
          call Ctrl2
          r2=[_col1]
          r2=r2 lsl 4
          r2=r2 lsl 4
		  r4=r2+lie                        //设列地址
		  call Ctrl2
		  r2=0 		  
   loop_num2:         
          r4=[r5]                //正显示,取首地址
          r4=r4 lsl 4
          r4=r4 lsl 4
          call  data2
          r5+=1
          r2+=1               //显示完8列?
          cmp  r2,7
          jna   loop_num2
          r1=[_page1]
          r1+=1
          [_page1]=r1
          r1=[_temp2]
          r1+=1
          [_temp2]=r1
          r3=[_temp2]
          cmp r3,1            //显示一个汉字行,即两个小页
          jna   Loop_num2
		  pop r1,r5 from [sp]
		  pop bp from [sp]
		  retf
		  .endp			  		  		  		  		  		  

⌨️ 快捷键说明

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