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

📄 firsts.asm

📁 详细介绍了C语言开发DSP嵌入式系统
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;OCM12864模块测试程序**************************
;完成时间2008.11.28
;制作人:hdzhangx
;**********************************************
D_I	EQU	P2.0				;Data or Instrument Select,H:写数据,L:写指令
R_W	EQU	P2.1				;Write or Read,H:read,L:write
E	EQU	P2.7				;读写使能
CS1	EQU	P2.2				;CS1=H,选择左半屏
CS2	EQU	P2.3
				                ;CS2=H,选择右半屏
RESET	EQU	P2.4				;Lcm reset,低有效

DISP_X	EQU	30H
DISP_Y	EQU	31H
DISP_Z	EQU	32H
LONG	EQU	33H
WIDE	EQU	34H
DATA1_WR	EQU	35H
DATA2_WR	EQU	36H
COUNTER1	EQU	37H
COUNTER2	EQU	38H
COUNTER3	EQU	39H
;**********************************************
		ORG	0000H
		AJMP	MAIN
		ORG	0100H
MAIN:		MOV	SP,#70H
		CLR	RESET
		NOP
		NOP
		NOP
		SETB	RESET
                MOV	DISP_Z,#0C0H
;*************参数名称*************************
                SETB	CS1
		clr	CS2

		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#30H
		MOV	WIDE,#02H
		MOV	DPTR,#para11
		LCALL	para_DISP

		MOV	DISP_X,#0BaH
		MOV	DPTR,#para21
		LCALL	para_DISP

		MOV	DISP_X,#0BcH
		MOV	DPTR,#para31
		LCALL	para_DISP

		MOV	DISP_X,#0BeH
		MOV	DPTR,#para41
		LCALL	para_DISP

;***********************参数值************
                SETB	CS2
		clr	CS1

		MOV	DISP_X,#0B8H
		MOV	DISP_Y,#40H
		MOV	LONG,#08H
		MOV	WIDE,#02H
		lcall   paraf

		MOV	DISP_X,#0BaH
		MOV	DISP_Y,#40H
		lcall   paras

		MOV	DISP_X,#0BcH
		MOV	DISP_Y,#40H
		lcall   parat

		MOV	DISP_X,#0BeH
		MOV	DISP_Y,#40H
		lcall   parafr

                ljmp    main

;*********************12-3********************
;***************第一行参数显示*****************
paraf:		mov     r7,#06h
                mov     r0,#50h
loopf:          mov     a,@r0


numf0:          cjne    a,#0,numf1
                mov     dptr,#numtab0
                lcall   para_disp
;*************************

		lcall	parazbf

;***********************
                inc     r0
                djnz    r7,loopf
                ret

numf1:         cjne    a,#1,numf2
                mov     dptr,#numtab1
                lcall   para_disp
;*********************

		lcall	parazbf

;*********************
                inc     r0
                djnz    r7,loopf
                ret

numf2:          cjne    a,#2,numf3
                mov     dptr,#numtab2
                lcall   para_disp
;*******************

		lcall	parazbf

;********************
                inc     r0
                djnz    r7,loopf
                ret

numf3:         cjne    a,#3,numf4
                mov     dptr,#numtab3
                lcall   para_disp
;********************

		lcall	parazbf

;********************
                inc     r0
                djnz    r7,loopf
                ret

numf4:         cjne    a,#4,numf5
                mov     dptr,#numtab4
                lcall   para_disp
;********************

		lcall	parazbf

;********************
                inc     r0
                djnz    r7,loopf1
                ret
loopf1:        ljmp    loopf

numf5:         cjne    a,#5,numf6
                mov     dptr,#numtab5
                lcall   para_disp
;**********************

		lcall	parazbf

;******************
                inc     r0
                djnz    r7,loopf2
               ret
loopf2:        ljmp    loopf

numf6:         cjne    a,#6,numf7
                mov     dptr,#numtab6
                lcall   para_disp
;*******************

		lcall	parazbf

;*****************
                inc     r0
                djnz    r7,loopf3
                ret
loopf3:        ljmp    loopf

numf7:         cjne    a,#7,numf8
                mov     dptr,#numtab7
                lcall   para_disp
;**********************

		lcall	parazbf

;************************
                inc     r0
                djnz    r7,loopf4
                ret
loopf4:         ljmp    loopf

numf8:          cjne    a,#8,numf9
                mov     dptr,#numtab8
                lcall   para_disp
;***********************

		lcall	parazbf

;**********************
                inc     r0
                djnz    r7,loopf5
                ret
loopf5:         ljmp    loopf

numf9:          cjne    a,#9,loopf1
                mov     dptr,#numtab9
                lcall   para_disp
;*******************

		lcall	parazbf

;*********************
                inc     r0
                djnz    r7,loopf6
                ret
loopf6:         ljmp    loopf


;****************第一行参数显示坐标计算***********
parazbf:	mov disp_x,#0b8h
		mov r2,a
		mov a,disp_y
		add a,#08h
		mov disp_y,a
		mov a,r2
		ret


;***************第二行参数显示*****************
paras:		mov     r7,#06h
                mov     r0,#56h
loops:          mov     a,@r0


nums0:          cjne    a,#0,nums1
                mov     dptr,#numtab0
                lcall   para_disp
;*************************

		lcall	parazbs

;***********************
                inc     r0
                djnz    r7,loops
                ret

nums1:          cjne    a,#1,nums2
                mov     dptr,#numtab1
                lcall   para_disp
;*********************

		lcall	parazbs

;*********************
                inc     r0
                djnz    r7,loops
                ret

nums2:         cjne    a,#2,nums3
                mov     dptr,#numtab2
                lcall   para_disp
;*******************

		lcall	parazbs

;********************
                inc     r0
                djnz    r7,loops
                ret

nums3:         cjne    a,#3,nums4
                mov     dptr,#numtab3
                lcall   para_disp
;********************

		lcall	parazbs

;********************
                inc     r0
                djnz    r7,loops
                ret

nums4:         cjne    a,#4,nums5
                mov     dptr,#numtab4
                lcall   para_disp
;********************

		lcall	parazbs

;********************
                inc     r0
                djnz    r7,loops1
               ret
loops1:        ljmp    loops

nums5:         cjne    a,#5,nums6
                mov     dptr,#numtab5
                lcall   para_disp
;**********************

		lcall	parazbs

;******************
                inc     r0
                djnz    r7,loops2
               ret
loops2:        ljmp    loops

nums6:         cjne    a,#6,nums7
                mov     dptr,#numtab6
                lcall   para_disp
;*******************

		lcall	parazbs

;*****************
                inc     r0
                djnz    r7,loops3
                ret
loops3:        ljmp    loops

nums7:         cjne    a,#7,nums8
                mov     dptr,#numtab7
                lcall   para_disp
;**********************

		lcall	parazbs

;************************
                inc     r0
                djnz    r7,loops4
                ret
loops4:        ljmp    loops

nums8:         cjne    a,#8,nums9
                mov     dptr,#numtab8
                lcall   para_disp
;***********************

		lcall	parazbs

;**********************
                inc     r0
                djnz    r7,loops5
               ret
loops5:        ljmp    loops

nums9:         cjne    a,#9,loops1
                mov     dptr,#numtab9
                lcall   para_disp
;*******************

		lcall	parazbs

;*********************
                inc     r0
                djnz    r7,loops6
                ret
loops6:         ljmp    loops


;****************第二行参数显示坐标计算***********
parazbs:	mov disp_x,#0BAh
		mov r2,a
		mov a,disp_y
		add a,#08h
		mov disp_y,a
		mov a,r2
		ret

;***************第三行参数显示*****************
parat:		mov     r7,#06h
                mov     r0,#5ch
loopt:          mov     a,@r0


numt0:          cjne    a,#0,numt1
                mov     dptr,#numtab0
                lcall   para_disp
;*************************

		lcall	parazbt

;***********************
                inc     r0
                djnz    r7,loopt
                ret

numt1:          cjne    a,#1,numt2
                mov     dptr,#numtab1
                lcall   para_disp
;*********************

		lcall	parazbt

;*********************
                inc     r0
                djnz    r7,loopt
                ret

numt2:         cjne    a,#2,numt3
                mov     dptr,#numtab2
                lcall   para_disp
;*******************

		lcall	parazbt

;********************
                inc     r0
                djnz    r7,loopt
               ret

numt3:         cjne    a,#3,numt4
                mov     dptr,#numtab3
                lcall   para_disp
;********************

		lcall	parazbt

;********************
                inc     r0
                djnz    r7,loopt
                ret

numt4:         cjne    a,#4,numt5
                mov     dptr,#numtab4
                lcall   para_disp
;********************

		lcall	parazbt

;********************
                inc     r0
                djnz    r7,loopt1
               ret

loopt1:        ljmp    loopt

numt5:         cjne    a,#5,numt6
                mov     dptr,#numtab5
                lcall   para_disp
;**********************

		lcall	parazbt

;******************
                inc     r0
                djnz    r7,loopt2
                ret
loopt2:        ljmp    loopt

numt6:         cjne    a,#6,numt7
                mov     dptr,#numtab6

⌨️ 快捷键说明

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