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

📄 main.asm

📁 donghua zhizuo de chengxu
💻 ASM
📖 第 1 页 / 共 4 页
字号:

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 + -