📄 main.asm
字号:
proteus 7 破解版下载
http://www.mcufz.com/bbs/thread-1238-1-1.html
Keil uVision 3 破解版
http://www.mcufz.com/bbs/thread-1252-1-1.html
Protel 99 SE破解版
http://www.mcufz.com/bbs/thread-1253-1-1.html
PADS 2005 SP2破解版
http://www.mcufz.com/bbs/thread-1254-1-1.html
电路设计与制版:Protel 99高级应用(PDF)
http://www.mcufz.com/bbs/thread-1255-1-1.html
单片机高级语言C51 Windows环境编程与应用PDF电子书
http://www.mcufz.com/bbs/thread-1256-1-1.html
吉林大学单片机视频,赵宏伟主讲,32讲
http://www.mcufz.com/bbs/thread-1268-1-1.html
protel dxp 2004视频教程
http://www.mcufz.com/bbs/thread-953-1-1.html
十天征服单片机视频教程
http://www.mcufz.com/bbs/thread-952-1-1.html
单片机实验及proteus仿真_C语言篇
http://www.mcufz.com/bbs/thread-899-1-1.html
《Proteus的8051单片机实例教程》源程序
http://www.mcufz.com/bbs/thread-983-1-1.html
《PROTEUS 在 MCS-51&ARM7系统中的应用百例》电子书
http://www.mcufz.com/bbs/thread-976-1-1.html
proteus仿真MCS-51的一百个例子
http://www.mcufz.com/bbs/thread-957-1-1.html
/***************************************************************
*内存使用记录*
*局部变量*
*全局变量*
****************************************************************/
ORG 0000H
MOV SP, #50H
LJMP MAIN
MAIN:
LCALL Lcd12864Init
Mloop:
MOV DPTR, #bird1
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird2
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird3
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird4
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird5
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird6
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird7
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
LCALL DELAY_50MS
MOV DPTR, #bird8
LCALL Lcd12864DrawImage ;Lcd12864DrawImage(&image);
; sjmp $
LCALL DELAY_50MS
SJMP Mloop
DELAY_50MS: ;延时50ms
DL2: MOV R5, #0FFH
DL1: NOP ;内循环
NOP
DJNZ R5, DL1
DJNZ R4, DL2
RET
;--------------------------------------------------------------------------
;-----------------------------LCD12864-ASM---------------------------------
;--------------------------------------------------------------------------
/*
----------------------------LCD12964函数一览表-----------------------------
Lcd12864Init: 显示初始化,无参数
Lcd12864DrawImage: 送一幅128x64点阵图到lcd显示(CODE,dptr传入首地址)
*/
;------------------------lcd12864相关定义-----------------------------------
E BIT P2.0
RW BIT P2.1
RS BIT P2.2
CS1 BIT P2.3
CS2 BIT P2.4
DBPort EQU P0
;-----------------------------------------------;命令
DISP_OFF EQU 3eH ;关显示
DISP_ON EQU 3FH ;开显示
DISP_X EQU 40H ;起始行
DISP_PAGE EQU 0B8H ;起始页
DISP_Y EQU 0C0H ;起始列
;-----------------------------------------------;内存使用
;********************************************************送一幅128x64点阵图到lcd显示(CODE)
Lcd12864DrawImage:
MOV R5, #0 ;循环计数清零for(j=0;;)
IMGL1:
;--------------------------------------------------------------------------
SETB CS1
CLR CS2
;--------------------------------------------------------------------------
CLR C
MOV A, R5
ADD A, #DISP_PAGE
MOV R7, A
LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_PAGE+j(R5));
;--------------------------------------------------------------------------
MOV R7, #DISP_X
LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_X);
;--------------------------------------------------------------------------
MOV R4, #0 ;循环计数清零for(i=0;;)
;--------------------------------------------------------------------------
IMGL21: CLR A
MOVC A, @A+DPTR
MOV R7, A
LCALL Lcd12864WriteData ;Lcd12864WriteData(*DPTR);
INC DPTR ;DPTR++
;--------------------------------------------------------------------------
INC R4
MOV A, R4 ;
CJNE A, #64, IMGL21 ;if(++R4 != 64) goto IMGL21;
;--------------------------------------------------------------------------
CLR CS1
SETB CS2
;--------------------------------------------------------------------------
CLR C
MOV A, R5
ADD A, #DISP_PAGE
MOV R7, A
LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_PAGE+j(R5));
;--------------------------------------------------------------------------
MOV R7, #DISP_X
LCALL Lcd12864WriteCmd ;Lcd12864WriteCmd(DISP_X);
;--------------------------------------------------------------------------
MOV R4, #64 ;循环计数清零for(i=64;;)
;--------------------------------------------------------------------------
IMGL22: CLR A
MOVC A, @A+DPTR
MOV R7, A
LCALL Lcd12864WriteData ;Lcd12864WriteData(*DPTR);
INC DPTR ;DPTR++
;--------------------------------------------------------------------------
INC R4
MOV A, R4 ;
CJNE A, #128, IMGL22 ;if(++R4 != 128) goto IMGL22;
;--------------------------------------------------------------------------
INC R5
MOV A, R5
CJNE A, #8, IMGL1 ;if(++R5 != 8) goto IMGL1;
;--------------------------------------------------------------------------
RET
/*--------------------------------------C程序对照
void Lcd12864DrawImage(uchar code *image)
{
uchar i,j;
cs1=0;
cs2=1;
for(j=0;j<8;j++)
{
cs1=0;
cs2=1;
w_cmd(DISP_PAGE+j);
w_cmd(DISP_X);
for(i=0;i<64;i++)
w_data(image[j*128+i]);
cs1=1;
cs2=0;
w_cmd(DISP_PAGE+j);
w_cmd(DISP_X);
for(i=64;i<128;i++)
w_data(image[j*128+i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -