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

📄 ad.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
		;.byte  018H,0cH,0feH,0ffH,0feH,0cH,018H,0h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,0h,0h,0h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,0h,0h,0h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,80h,80h,80h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,01h,01h,01h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,0h,0h,0h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,0h,0h,0h
        ;.byte  0h,0h,0ffh,0ffh,0ffh,0h,0h,0h;第1个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第2个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第3个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第4个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第5个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第6个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第7个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第8个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第9个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第10个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第11个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第12个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第13个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第14个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,80h,80h,80h,80h
        ;.byte  1h,1h,1h,1h,1h,1h,1h,1h ;第15个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;.byte  80h,80h,80h,80h,90h,0A0h,0C0h,80h
        ;.byte  1h,1h,1h,1h,9h,5h,3h,1h ;第16个8列
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h
        ;.byte  0h,0h,0h,0h,0h,0h,0h,0h        
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        .byte  18h;1列 2000 xpos=0,ypos=0
        .byte  0ch;2列 2001 xpos=1,ypos=0
        .byte  0feh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh  ;3列2002-2009xpos=2,ypos=0-7
        .byte  0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh  ;4列200a-2011xpos=3,ypos=0-7
        .byte  0feh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh  ;5列2012-2019xpos=4,ypos=0-7
        .byte  0ch;6列 201axpos=5,ypos=0
        .byte  18h;7列 201bxpos=6,ypos=0
        .byte  80h,01h,90h,0A0h,0C0h,80h,9h,5h,3h,1h;201c-2025
               ;xpos=7-123,ypos=4;xpos=7-123,ypos=5;xpos=124-127,ypos=4;xpos=124-127,ypos=5
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 #09007h,CLKMD
		RPT #0FFh
		NOP
		ST #0FFFFh,IFR              
		ORM #0001h,IMR
		RSBX INTM
		LD #0h,DP
        call LCDRESET;read state
        ST #0H,DAT
        CALL FILL
main    nop
        nop
        call XY
        ;DELAY #0FFFFH
        ST #0H,DAT
        CALL FILL
        ;DELAY  #0FFFFH
        B   main
        
;----------------------------------------->
XY       st   #0,XPOS
         ST  #0,YPOS  
         st #2000h,ar0
         MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD  ;1arrange

         st  #1,XPOS
         ST  #0,YPOS
         MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD  ;2arrange
         NOP        
         
         NOP
         ST #2,XPOS
         ST #0,YPOS
         CALL SHU    ;3arrange
         
         ST #3,XPOS
         ST #0,YPOS
         CALL SHU    ;4arrange
         
         ST #4,XPOS
         ST #0,YPOS
         CALL SHU    ;5arrange
         
          st  #5,XPOS
         ST  #0,YPOS
         MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD   ;6arrange
         
          st  #6,XPOS
         ST  #0,YPOS
         MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD    ;7arrange
         
         NOP
         ST #5,XPOS
         ST #3,YPOS
         CALL HEN
         
         NOP
         ST #5,XPOS
         ST #4,YPOS
         st #201dh,ar0
         CALL HEN
         
         ST #201EH,AR0
         ST #124,XPOS
         ST #3,YPOS
         ST #3,AR2
HEND     MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD
         ADDM #1,XPOS
         BANZ HEND,*AR2-
         
         ST #124,XPOS
         ST #4,YPOS
         ST #3,AR2
HEND1    MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD
         ADDM #1,XPOS
         BANZ HEND1,*AR2-
         ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;         
SHU      ST #07H,AR2
SHU1     MVDK *AR0+,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD          
         ADDM #01H,YPOS
         BANZ SHU1,*AR2-
         ST #07H,AR2
         RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HEN      ST #118,AR2
HEN1     MVDK *AR0,DAT
         ANDM #0FFH,DAT
         CALL LCDPOS
         CALL LCDWD          
         ADDM #01H,XPOS
         BANZ HEN1,*AR2-
         ST #118,AR2
         RET        
;----------------------------------填充
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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;每64个点一次
WRITE    MVDK XPOS,VXPOS
         ST #07H,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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LCDRESET         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
                 B LWDLAX
LWDLAY           CALL LCDWD2
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   
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                                            
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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DELAY	ST #0100h,AR7			;延时子程序
;		BANZ $,*AR7-
;		BANZ DELAY,*AR6-
;		RET

⌨️ 快捷键说明

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