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

📄 exx.asm

📁 dsp实验测试程序,包括指令实验、存储器、串口、同步串口、步进电机、硬件中断、定时器、交通灯、直流电机、滤波器、正弦波发生器、语音录放、EXAM_C、显示屏
💻 ASM
字号:
************************************************
* FileName:		ex8.asm                        *
* Description:	液晶屏             *
* Copyright(C) SanZhi Electronic, Author Zpin  *
************************************************

		.title "exx"
		.global _c_int00
		.mmregs

LCDAWD	.set	7009h  ;液晶屏片选1写数据
LCDARO	.set	700Ah  ;液晶屏片选1读状态
LCDAWO	.set	7008h  ;液晶屏片选1写命令
LCDBWD	.set	6009h  ;液晶屏片选2写数据
LCDBRO	.set	600Ah  ;液晶屏片选2读状态
LCDBWO	.set	6008h  ;液晶屏片选2写命令
STATE   .set    60h    ;STATE 
CONTROL .set    61h    ;CONTROL
DAT     .set    62h    ;DATA 
XPOS    .set    66h    ;列指针
YPOS    .set    67h    ;行指针
VXPOS   .set    68h
VYPOS   .set    69h
        
		.data
		;.word 2100h,0900h,1100h,2400h,2200h,0100h,0900h,2000h,2400h
        ;.byte  000H,010H,008H,006H,001H,082H,008cH,040H,030H,00cH,003H,00cH,010H,060H,0c0H,040H,000H,004H,034H,0c4H,04H,0c4H,03cH,020H,010H,00fH,0e8H,008H,008H,028H,018H,000H     ;欢
        .byte  14h,24h,44h,84h,64h,1Ch,20h,18h,0Fh,0E8h,08h,08h,28h,18h,08h,00h,20h,10h,4Ch,43h,43h,2Ch,20h,10h,0Ch,03h,06h,18h,30h,60h,20h,00h
        .byte  40h,41h,0CEh,04h,00h,0FCh,04h,02h,02h,0FCh,04h,04h,04h,0FCh,00h,00h,40h,20h,1Fh,20h,40h,47h,42h,41h,40h,5Fh,40h,42h,44h,43h,40h,00h
        .byte  40h,20h,0F0h,1Ch,07h,0F2h,94h,94h,94h,0FFh,94h,94h,94h,0F4h,04h,00h,00h,00h,7Fh,00h,40h,41h,22h,14h,0Ch,13h,10h,30h,20h,61h,20h,00h
        .byte  00h,00h,00h,0FEh,22h,22h,22h,22h,0FEh,22h,22h,22h,22h,0FEh,00h,00h,80h,40h,30h,0Fh,02h,02h,02h,02h,0FFh,02h,02h,42h,82h,7Fh,00h,00h
        .byte  00h,04h,84h,84h,84h,84h,84h,84h,84h,84h,84h,84h,84h,04h,00h,00h,00h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,20h,00h
        .byte  40h,0A0h,98h,8Fh,88h,0F8h,88h,88h,00h,0F8h,08h,08h,08h,0F8h,00h,00h,80h,40h,20h,18h,07h,02h,04h,18h,00h,7Fh,10h,10h,10h,3Fh,00h,00h
        .byte  08h,0F8h,08h,08h,08h,10h,0E0h,00h,00h,00h,00h,00h,00h,00h,00h,00h,20h,3Fh,20h,20h,20h,10h,0Fh,00h,00h,00h,00h,00h,00h,00h,00h,00h
        .byte   00h,70h,88h,08h,08h,08h,38h,00h,00h,00h,00h,00h,00h,00h,00h,00h, 00h,38h,20h,21h,21h,22h,1Ch,00h,00h,00h,00h,00h,00h,00h,00h,00h
        .byte   08h,0F8h,08h,08h,08h,08h,0F0h,00h,00h,00h,00h,00h,00h,00h,00h,00h,20h,3Fh,21h,01h,01h,01h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
        .byte   00h,10h,0Ch,04h,4Ch,0B4h,94h,05h,0F6h,04h,04h,04h,14h,0Ch,04h,00h,00h,82h,82h,42h,42h,23h,12h,0Ah,07h,0Ah,12h,0E2h,42h,02h,02h,00h
        .byte   02h,0FAh,82h,82h,0FEh,80h,40h,60h,58h,46h,48h,50h,20h,20h,20h,00h,08h,08h,04h,24h,40h,3Fh,22h,2Ch,21h,2Eh,20h,30h,2Ch,23h,20h,00h
        .byte   40h,20h,0F0h,0Ch,03h,00h,38h,0C0h,01h,0Eh,04h,0E0h,1Ch,00h,00h,00h,00h,00h,0FFh,00h,40h,40h,20h,10h,0Bh,04h,0Bh,10h,20h,60h,20h,00h
        ;.byte  0H,40H,020H,01fH,020H,047H,042H,041H,00H,07fH,040H,042H,044H,023H,060H,010H,00H,042H,044H,088H,00H,0fcH,04H,02H,03H,0feH,02H,02H,02H,0feH,00H,00H                   ;迎
        ;.byte  00,00,00,0ffH,00,080H,043H,045H,029H,019H,017H,021H,021H,041H,0c3H,040H,00H,040H,020H,0f8H,07H,04H,0f4H,014H,014H,014H,0ffH,014H,014H,014H,0f6H,04H                 ;使
        ;.byte  00H,080H,060H,01fH,02H,02H,02H,02H,07fH,02H,02H,042H,082H,07fH,00H,00H,00H,00H,00H,0feH,022H,022H,022H,022H,0feH,022H,022H,022H,022H,0ffH,02,00                     ;用
        ;.byte  00h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,030h,020h,00h,00h,04h,084h,084h,084h,084h,084h,084h,084h,084h,084h,0c4h,086h,04h,00h           ;三
DELAY	.macro sec_tenth		;延时 sec_tenth/10 秒
		STM sec_tenth-1,AR5
loop1?	STM #09h,AR6
loop0?	STM #49999,AR7
		BANZ $,*AR7-
		BANZ loop0?,*AR6-
		BANZ loop1?,*AR5-
		.endm

		.sect ".vectors"
rst:	B _c_int00
		NOP
		NOP
		.space 15*4*16

			.text
_c_int00

		LD #0h,DP
		STM #3000h,SP
		SSBX INTM
		STM #07FFFh,SWWSR		;IO总线外部等待时间14个周期
		STM #01h,2Bh

		STM #0h,CLKMD			;20MHz工作
tst		BITF CLKMD,#1h
		BC tst,TC
		STM #01007h,CLKMD
		RPT #0FFh
		NOP
		
		ST #0FFFFh,IFR
		ORM #0001h,IMR
		RSBX INTM
		
		LD #0h,DP
        call LCDRESET;read state
        st #4h,ar1
        ST #0H,DAT
        CALL FILL
bb      st #2000h,AR0 ;欢
        st #1fh,XPOS
        st #02H,YPOS
        CALL WRITE
        ST #1fH,XPOS
        ST #03H,YPOS
        CALL WRITE
         
        st #2fh,XPOS  ;迎
        st #02H,YPOS
        CALL WRITE
        ST #2fH,XPOS
        ST #03H,YPOS
        CALL WRITE 
                       ;使
        st #3fh,XPOS
        st #02H,YPOS
        CALL WRITE
        ST #3fH,XPOS
        ST #03H,YPOS
        CALL WRITE
        
        
        st #4fh,XPOS
        st #02H,YPOS
        CALL WRITE
        ST #4fH,XPOS
        ST #03h,YPOS
        CALL WRITE               ;用
        
        st #0bh,XPOS         ;三
        st #04H,YPOS
        CALL WRITE
        ST #0bH,XPOS
        ST #05h,YPOS
        CALL WRITE 

        st #1ah,XPOS         ;知
        st #04H,YPOS
        CALL WRITE
        ST #1aH,XPOS
        ST #05h,YPOS
        CALL WRITE 

        st #29h,XPOS         ;D
        st #04H,YPOS
        CALL WRITE
        ST #29H,XPOS
        ST #05h,YPOS
        CALL WRITE 
        
        st #31h,XPOS         ;S
        st #04H,YPOS
        CALL WRITE
        ST #31H,XPOS
        ST #05h,YPOS
        CALL WRITE 

        
        st #39h,XPOS         ;P
        st #04H,YPOS
        CALL WRITE
        ST #39H,XPOS
        ST #05h,YPOS
        CALL WRITE 

        st #041h,XPOS         ;实
        st #04H,YPOS
        CALL WRITE
        ST #041H,XPOS
        ST #05h,YPOS
        CALL WRITE 

        st #50h,XPOS         ;验
        st #04H,YPOS
        CALL WRITE
        ST #50H,XPOS
        ST #05h,YPOS
        CALL WRITE 

        st #5fh,XPOS         ;仪
        st #04H,YPOS
        CALL WRITE
        ST #5fH,XPOS
        ST #05h,YPOS
        CALL WRITE 
        NOP
        NOP
        CALL DELAY
        call DELAY
        CALL DELAY
        ST #00H,DAT
        CALL FILL
        CALL DELAY
        banz bb,*ar1-
        nop
        nop
        nop
        b bb
FILL    ST  #00H,YPOS
LFLPB   ST  #00H,XPOS
LFLPA   CALL LCDPOS
        nop
        nop
        nop
        rpt #10
        CALL LCDWD
        ADDM #01H,XPOS
        BITF XPOS,#80H
        BC  LFLPA,NTC
        ADDM #01H,YPOS
        BITF YPOS,#08H
        BC LFLPB,NTC
        RET

WRITE    MVDK XPOS,VXPOS
         ST #0FH,AR2
WRITE1   MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD          
         ADDM #01H,XPOS
         BANZ WRITE1,*AR2-
         MVDK VXPOS,XPOS
         ST #0FH,AR2
         RET

WAITIDLE1		PORTR  LCDARO,STATE ;READ CS1 STATE
                nop
        		nop
        		BITF STATE,#80H    ;为0表示准备好
        		BC WAITIDLE1,tc
       		    ret
WAITIDLE2		PORTR  LCDBRO,STATE  ;READ CS2 STATE
        		nop
        		nop
        		BITF STATE,#080H
        		BC WAITIDLE2,tc
        		ret
LCDWC1		     CALL WAITIDLE1            ;WRITE CS1 CONTROL
        		 PORTW  CONTROL,LCDAWO
        		 RET
LCDWC2		     CALL WAITIDLE2            ;WRITE CS2 CONTROL
         		 PORTW  CONTROL,LCDBWO  
                 RET
LCDWD1           CALL WAITIDLE1            ;WRITE CS1 DATA
                 PORTW DAT,LCDAWD
                 RET 
LCDWD2           CALL WAITIDLE2             ;WRITE CS2 DATA
                 PORTW DAT,LCDBWD
                 RET                           
LCDRESET         ;ST #003EH,CONTROL        ;复位LCD
                 ;CALL LCDWC1 
                 ;CALL LCDWC2 
		         ST #003FH,CONTROL        ;复位LCD
                 CALL LCDWC1
                 CALL LCDWC2
                 ST #00C0H,CONTROL
                 CALL LCDWC1
                 CALL LCDWC2
                 RET
LCDWD            BITF XPOS,#0040H
                 BC LWDLAY,tc
                 CALL LCDWD1
                ;RPT #1AH
                 B LWDLAX
LWDLAY           CALL LCDWD2
                ;RPT #1AH
LWDLAX           RET

LCDPOS      BITF XPOS,#0040H    ;XPOS列方向小于64则对CS1操作
            BC LPSLAY,tc
            MVDK YPOS,VYPOS
		    ANDM #0007H,VYPOS
		    ADDM #0B8H,VYPOS
		    MVDK VYPOS,CONTROL
		    CALL LCDWC1            ;设页码
		    MVDK XPOS,VXPOS
		    ANDM #03FH,VXPOS
		    ORM  #40H,VXPOS
		    MVDK VXPOS,CONTROL       ;设列码
		    CALL LCDWC1
		    B LCDLAX
LPSLAY	    MVDK YPOS,VYPOS
            ANDM #0007H,VYPOS    ;XPOS列方向大于等于64则对CS1操作
		    ADDM #0B8H,VYPOS
		    MVDK VYPOS,CONTROL
		    CALL LCDWC2            ;设页码
		    MVDK XPOS,VXPOS
		    ANDM #03FH,VXPOS
		    ORM  #40H,VXPOS
		    MVDK VXPOS,CONTROL
		    CALL LCDWC2             ;设列码
LCDLAX      RET   


DELAY	ST #0100h,AR7			;延时子程序
		BANZ $,*AR7-
		BANZ DELAY,*AR6-
		RET

		
;testxf	stm #ST1,AR0
;		bitf *AR0,#2000h
;		bc clrxf,TC
;		ssbx xf
;		ret
;clrxf	rsbx xf
;		ret

;testxf	ssbx xf
;		DELAY #1
;		rsbx xf
;		DELAY #1
;		b testxf

⌨️ 快捷键说明

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