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

📄 mapdrawleftshift.a51

📁 用8052写的一个LED大屏幕显示程序
💻 A51
字号:
; MapDrawLeftShift.a51 generated from: Map.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.exe Map.c LARGE OPTIMIZE(9,SPEED) NOAREGS DEBUG OBJECTEXTEND NOPRINT


$NOMOD51

NAME	MAP

//#include	<reg52.h>
#include	"xsp.h"
sfr P0    = 0x80;
sfr P1    = 0x90;
sfr P2    = 0xA0;
sfr P3    = 0xB0;
sfr PSW   = 0xD0;
sfr ACC   = 0xE0;
sfr B     = 0xF0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
sfr PCON  = 0x87;
sfr TCON  = 0x88;
sfr TMOD  = 0x89;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr IE    = 0xA8;
sfr IP    = 0xB8;
sfr SCON  = 0x98;
sfr SBUF  = 0x99;

/*  8052 Extensions  */
sfr T2CON  = 0xC8;
sfr T2MOD  = 0xC9;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;


/*  BIT Registers  */
/*  PSW  */
sbit CY    = PSW^7;
sbit AC    = PSW^6;
sbit F0    = PSW^5;
sbit RS1   = PSW^4;
sbit RS0   = PSW^3;
sbit OV    = PSW^2;
sbit P     = PSW^0; //8052 only

/*  TCON  */
sbit TF1   = TCON^7;
sbit TR1   = TCON^6;
sbit TF0   = TCON^5;
sbit TR0   = TCON^4;
sbit IE1   = TCON^3;
sbit IT1   = TCON^2;
sbit IE0   = TCON^1;
sbit IT0   = TCON^0;

/*  IE  */
sbit EA    = IE^7;
sbit ET2   = IE^5; //8052 only
sbit ES    = IE^4;
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;

/*  IP  */
sbit PT2   = IP^5;
sbit PS    = IP^4;
sbit PT1   = IP^3;
sbit PX1   = IP^2;
sbit PT0   = IP^1;
sbit PX0   = IP^0;

/*  P3  */
sbit RD    = P3^7;
sbit WR    = P3^6;
sbit T1    = P3^5;
sbit T0    = P3^4;
sbit INT1  = P3^3;
sbit INT0  = P3^2;
sbit TXD   = P3^1;
sbit RXD   = P3^0;

/*  SCON  */
sbit SM0   = SCON^7;
sbit SM1   = SCON^6;
sbit SM2   = SCON^5;
sbit REN   = SCON^4;
sbit TB8   = SCON^3;
sbit RB8   = SCON^2;
sbit TI    = SCON^1;
sbit RI    = SCON^0;

/*  P1  */
sbit T2EX  = P1^1; // 8052 only
sbit T2    = P1^0; // 8052 only
             
/*  T2CON  */
sbit TF2    = T2CON^7;
sbit EXF2   = T2CON^6;
sbit RCLK   = T2CON^5;
sbit TCLK   = T2CON^4;
sbit EXEN2  = T2CON^3;
sbit TR2    = T2CON^2;
sbit C_T2   = T2CON^1;
sbit CP_RL2 = T2CON^0;


?PR?MapDrawLeftShift?MAP                 SEGMENT CODE 
?DT?MapDrawLeftShift?MAP                 SEGMENT DATA OVERLAYABLE 
;?PR?MAP              SEGMENT CODE 
	EXTRN	DATA (LeftShiftDelayCount)
	EXTRN	DATA (DisplayHangShu)
	EXTRN	XDATA (DispBuf)
	EXTRN	BIT (UartEnd)
	EXTRN	XDATA (DispYingXiangBuf)
	EXTRN	CODE (WDT_RESET)
	PUBLIC	MapDrawLeftShift

	RSEG  ?DT?MapDrawLeftShift?MAP
          i?040:   DS   1

	RSEG  ?DT?MapDrawLeftShift?MAP
          j?041:   DS   1

	RSEG  ?DT?MapDrawLeftShift?MAP
          k?042:   DS   1

	RSEG  ?DT?MapDrawLeftShift?MAP
          h?043:   DS   1

	RSEG  ?DT?MapDrawLeftShift?MAP
       temp?044:   DS   1

	RSEG  ?DT?MapDrawLeftShift?MAP
      temp1?045:   DS   1

	RSEG  ?DT?MapDrawLeftShift?MAP
DispBufAddrtemp?046:   DS   2

	RSEG  ?DT?MapDrawLeftShift?MAP
DispYingXiangAddrtemp?047:   DS   2
; #pragma src(MapDrawLeftShift.a51) large //LARGE 
; #include	<reg52.h>
; //#include	<string.h>
; //#include	<intrins.h>
; 
; /***************************************************************************/
; /***************************************************************************/
; 
; #define	ChangJia_ShangHaiKaiLun     "上海凯伦"
; //#define	ChangJia_HangZhouJianFeng   "杭州尖峰"
; 
;#ifdef ChangJia_ShangHaiKaiLun
;     #define	LIEBYTE		18
;     #define	HANGSHU		16
; #endif
; 
; #ifdef ChangJia_HangZhouJianFeng
;     #define	LIEBYTE		10
;     #define	HANGSHU		16
; #endif
; 
; #define	TRUE			1
; #define	FALSE			0
; 
; #define	DUBEG			0
; 
; #define	SUCCESS			TRUE
; #define	ERROR			(!SUCCESS)
; 
; extern xdata unsigned char	DispBuf[HANGSHU][LIEBYTE]; //_at_ 0x00;	//16*80点阵显示屏 显示缓冲区
; extern xdata unsigned char	DispYingXiangBuf[HANGSHU][LIEBYTE]; 	//_at_ 1000;	//16*80点阵显示屏 映像显示缓冲区
; extern data  unsigned char	LeftShiftDelayCount;
; 
; //data  unsigned char 	UartEnd=0;
; extern bit 	UartEnd;
; extern void	WDT_RESET();
; sbit	p5045CS=P1^0;		
; void 	MapDrawLeftShift();
; 
; 
;  /***************************************************************************/
; 
; //#pragma asm


; void 	MapDrawLeftShift(){

	RSEG  ?PR?MapDrawLeftShift?MAP
MapDrawLeftShift:
	USING	0
			; SOURCE LINE # 44
; 	  data unsigned char		i;
; 	  data unsigned char		j;
; 	  data signed char		k;
; 	  data signed char		h;
; 	  data unsigned char		temp;
; 	  data unsigned char		temp1;
; 	  data unsigned int		DispBufAddrtemp=&DispBuf;
			; SOURCE LINE # 51

       ZUOYI:	MOV	R3,#8
	ZUO1:	MOV	R5,#2
		MOV	DispYingXiangAddrtemp?047+01H,#LOW (DispYingXiangBuf)
		MOV	R7,DispYingXiangAddrtemp?047+01H
      ZUOYI10:	MOV	R2,#LIEBYTE*8/2
     ZUOYI4:	MOV	R4,#HANGSHU
		MOV	DispYingXiangAddrtemp?047,#HIGH (DispYingXiangBuf)

;		MOV	DispBufAddrtemp?046,#H1MG
;		MOV	DispYingXiangAddrtemp?047+01H,#H1MD

		MOV	DispBufAddrtemp?046,#HIGH (DispBuf+LIEBYTE-1)
		MOV	DispBufAddrtemp?046+01H,#LOW (DispBuf+LIEBYTE-1)
		
		LCALL	ZUOYI6
		DJNZ	R3,ZUOYI7
		INC	R7
		MOV	R3,#8
     ZUOYI7:	MOV	DispYingXiangAddrtemp?047+01H,R7
;                CLR    pOE 
                
        	MOV  	LeftShiftDelayCount,#ZuoYiSuDu
?C0015:
;		while(LeftShiftDelayCount);	
		; SOURCE LINE # 72
		MOV  	A,LeftShiftDelayCount
		JNZ  	?C0015
;                SETB    pOE 
?C0111:
	        MOV     A,DisplayHangShu      	
	        JNZ    ?C0111
	        
        	LCALL	WDT_RESET
        	JB   	UartEnd,?C0014

		DJNZ	R2,ZUOYI4
		DJNZ	R5,ZUOYI10
		RET
;       ZUOYI1:	MOV	R1,#1
	ZUOYI6:	MOV	DPH,DispYingXiangAddrtemp?047
		MOV	DPL,DispYingXiangAddrtemp?047+01H
		MOVX	A,@DPTR
		RLC	A
		MOVX 	@DPTR,A
                MOV	DPL,DispBufAddrtemp?046+01H
		MOV	DPH,DispBufAddrtemp?046
	    	MOV	R6,#LIEBYTE
   LLL1:	MOVX	A,@DPTR
		RLC	A
		MOVX	@DPTR,A
		DEC	DPL
		MOV	A,DPL
		XRL	A,#0FFH
		JNZ	LLL
		DEC	DPH
	LLL: 	DJNZ	R6,LLL1
;		DJNZ	R1,ZUOYI6
		MOV	A,#LIEBYTE
		ADD	A,DispYingXiangAddrtemp?047+01H
		MOV	DispYingXiangAddrtemp?047+01H,A
		JNC	ZUOYI2
		INC	DispYingXiangAddrtemp?047
    ZUOYI2:	MOV	A,#LIEBYTE
		ADD	A,DispBufAddrtemp?046+01H
		MOV	DispBufAddrtemp?046+01H,A
		JNC	ZUOYI3
		INC	DispBufAddrtemp?046
     ZUOYI3:	DJNZ	R4,ZUOYI6
?C0014:
        	RET  	
; END OF MapDrawLeftShift

	END

⌨️ 快捷键说明

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