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

📄 波形信号发生器程序.txt

📁 基于单片机的移相式函数发生器设计,用汇编语言编写!
💻 TXT
📖 第 1 页 / 共 4 页
字号:

          MOV   DPTR,#TAB5
          MOV   COMX,#0BCH      ;电
          MOV   COMY,#40H
          MOV   JCS1CS2,#00H
          LCALL DISP
          MOV   DPTR,#TAB6
          MOV   COMX,#0BCH      ;气
          MOV   COMY,#50H
          MOV   JCS1CS2,#00H
          LCALL DISP
          MOV   DPTR,#TAB7
          MOV   COMX,#0BCH
          MOV   COMY,#60H       ;与
          MOV   JCS1CS2,#00H
          LCALL DISP
          MOV   DPTR,#TAB8
          MOV   COMX,#0BCH
          MOV   COMY,#70H       ;信
          MOV   JCS1CS2,#00H
          LCALL DISP
          MOV   DPTR,#TAB9
          MOV   COMX,#0BCH
          MOV   COMY,#40H       ;息
          MOV   JCS1CS2,#01H
          LCALL DISP
          MOV   DPTR,#TAB10
          MOV   COMX,#0BCH
          MOV   COMY,#50H       ;工
          MOV   JCS1CS2,#01H
          LCALL DISP
          MOV   DPTR,#TAB11
          MOV   COMX,#0BCH
          MOV   COMY,#60H       ;程
          MOV   JCS1CS2,#01H
          LCALL DISP
          MOV   DPTR,#TAB12
          MOV   COMX,#0BCH
          MOV   COMY,#70H       ;系
          MOV   JCS1CS2,#01H
          LCALL DISP

 TSF0:    LCALL KEY
KEYGN:    MOV   DPTR,   #KEYTAB
          MOV   KEYZHI,    A
          CLR   C
          SUBB  A,#0BH
          JNC   CLR0
   KK:    MOV   A,KEYZHI
          MOV   B,      #03H
          MUL   AB
          JMP   @A+DPTR

CLR0:     MOV   COMX,#0B8H
          MOV   COMY,#40H
          LCALL CLEAR1
          LJMP  KK

;键功能转移指令表KEYTAB
 KEYTAB:  LJMP  TSF0
          LJMP  KEY00
          LJMP  KEY01
          LJMP  KEY02
          LJMP  KEY03
          LJMP  KEY04
          LJMP  KEY05
          LJMP  KEY06
          LJMP  KEY07
          LJMP  KEY08
          LJMP  KEY09
          LJMP  KEY0A
          LJMP  KEY0B
          LJMP  KEY0C
          LJMP  KEY0D
          LJMP  KEY0E
          LJMP  KEY0F

;键功能程序区

 KEY00:   LCALL FINDTAB
          MOV   COMX,#0B8H
          MOV   COMY,#40H
          MOV   JCS1CS2,#00H
          LCALL DISP
          LJMP  TSF0

 KEY01:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#50H
          MOV    JCS1CS2,#00H
          LCALL  DISP
          LJMP   TSF0

 KEY02:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#60H
          MOV    JCS1CS2,#00H
          LCALL  DISP
          LJMP   TSF0

 KEY03:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#70H
          MOV    JCS1CS2,#00H
          LCALL  DISP
          LJMP   TSF0

 KEY04:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#40H
          MOV    JCS1CS2,#01H
          LCALL  DISP
          LJMP   TSF0

 KEY05:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#50H
          MOV    JCS1CS2,#01H
          ACALL  DISP
          LJMP   TSF0

 KEY06:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#60H
          MOV    JCS1CS2,#01H
          ACALL  DISP
          LJMP   TSF0

 KEY07:   LCALL  FINDTAB
          MOV    COMX,#0B8H
          MOV    COMY,#70H
          MOV    JCS1CS2,#01H
          ACALL  DISP
          LJMP   TSF0

 KEY08:   LCALL  FINDTAB
          MOV    COMX,#0BAH
          MOV    COMY,#40H
          MOV    JCS1CS2,#00H
          ACALL  DISP
          LJMP   TSF0

 KEY09:   LCALL  FINDTAB
          MOV    COMX,#0BAH
          MOV    COMY,#50H
          MOV    JCS1CS2,#00H
          ACALL  DISP
          LJMP   TSF0

 KEY0A:   LCALL   FINDTAB	;置频率字
          LCALL   ZHISU
          ACALL   DISP
          LJMP    TSF0

 KEY0B:   SETB    P1.1		;写双口RAM
          SETB    P1.0
          LCALL   DELAY
          LCALL   DELAY
          LCALL   DELAY
          LCALL   DELAY
          CLR     P1.0
          LCALL   WRITERAM
          LJMP    TSF0

 KEY0C:   LCALL   CLEAR1	;读双口RAM
          LCALL   READRAM
          MOV     R1,#08H
          MOV     R0,#40H
          MOV     R2,#00H
          MOV     R5,#40H
          MOV     R6,#00H
  QQQ:    MOV     A,@R0
          INC     A
          MOV     KEYZHI,A
          LCALL   FINDTAB
          MOV     COMX,#0B8H
          MOV     COMY,R5
          MOV     JCS1CS2,R6
          LCALL   DISP
          MOV     A,R5
          ADD     A,#10H
          MOV     R5,A
          INC     R0
          INC     R2
          MOV     A,R2
          CJNE    A,#04H,UUU
          MOV     R6,#01H
          MOV     R5,#40H
   UUU:   DJNZ    R1,QQQ
          LJMP    TSF0

 KEY0D:   LCALL   FINDTAB	;置相位字
          LCALL   ZHISU1
          LCALL   DISP
          LJMP    TSF0

 KEY0E:
          LJMP    TSF0


 KEY0F:
          LJMP    TSF0

 DISP:     PUSH    PSW
           PUSH    DPH
           PUSH    DPL
           SETB    RS0
           CLR     RS1
           LCALL   OUTPUT
           NOP
           NOP
           NOP
           NOP
           MOV     A,           COMY
           LCALL   DELAY
           LCALL   DELAY
           LCALL   DELAY
           MOV     COMONOFF,    #3FH   ;开显示
           MOV     COMSAME,     COMONOFF
           LCALL   PRL00
           LCALL   DELAY
           POP     DPL
           POP     DPH
           POP     PSW
           RET

;写命令子程序
PRL00:     PUSH    A
           SETB    CSA               ;Write ins
           SETB    CSB                ;CLR CSB
           CLR     DI
PRL001:    NOP
           NOP
           NOP
           NOP
           MOV     P0,          COMSAME
           SETB    E
           CLR     E
           POP     A
           RET

;写数据子程序
PRL11:     PUSH    A
           MOV     A,           JCS1CS2
           CJNE    A,           #00H,       PRL1111
           SETB    CSA                     ;选择左片
           CLR     CSB
           LJMP    PRL111
PRL1111:   CLR     CSA                     ;选择右片
           SETB    CSB
PRL111:    NOP
           NOP
           NOP
           NOP
           MOV     P0,          COMDATA
           SETB    DI
           SETB    E
           CLR     E
           POP     A
           RET


 ;显示一个字的循环程序
OUTPUT:    MOV     R0,          #00H
PUT1:      MOV     A,           R0
           ORL     A,           COMX
           MOV     COMSAME,     A         ;Set PAGE
           LCALL   PRL00
           MOV     COMSAME,     COMY      ;Set LINE
           LCALL   PRL00
           MOV     R3,          #10H
PUT2:      LCALL   WORD
           LCALL   PRL11
           DJNZ    R3,          PUT2
           INC     R0
           CJNE    R0,          #02H,      PUT1
           MOV     A,           COMY
           ADD     A,           #0FH
           MOV     COMY,        A
           MOV     A,           COMY
           LCALL   DELAY
           INC     COMX
           INC     COMX
           RET



;查表程序
WORD:      MOV     A,          #00H
           MOVC    A,          @A+DPTR
           MOV     COMDATA,    A
           INC     DPTR
           RET




;延时程序
DELAY:     MOV      R4,         #5
D1:        MOV      R5,         #5
D2:        MOV      R6,         #100
           DJNZ     R6,         $
           DJNZ     R5,         D2
           DJNZ     R4,         D1
           RET



;液晶清屏子程序
;/*入口参数: COMX       7AH     ;液晶的x轴
;            COMY       7BH     ;液晶的y轴*/
CLEAR1:MOV    R0,#00H ;Clear screen
CLS11: MOV    A,R0
       ORL    A,COMX
       MOV    COMSAME,A
       CALL   PRL008
       MOV    COMSAME,COMY
       CALL   PRL008
       MOV    R3,#40H
CLS22: MOV    COMDATA,#00H
       CALL   PRLL18
       DJNZ   R3,CLS22
       INC    R0
       CJNE   R0,#08H,CLS11
       RET

PRL008: PUSH   A
        SETB    CSA ;Write ins
        SETB    CSB ;CLR CSB
        CLR     DI


PRL0018:  NOP
          NOP
          NOP
          NOP
          MOV   P0,COMSAME
          SETB  E
          CLR  E
          POP   A
          RET

PRLL18:   PUSH A
          SETB CSA ;Write data
          SETB CSB ;CLR CSB
          CLR  DI
PRL1118:  NOP
          NOP
          NOP
          NOP
          MOV  P0,COMDATA
          SETB DI
          SETB E
          CLR  E
          POP  A
          RET

TAB:
;--  文字:  0  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,00FH,010H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  1  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,010H,010H,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,020H,020H,03FH,020H,020H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  2  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,070H,008H,008H,008H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,030H,028H,024H,022H,021H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  3  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,030H,008H,088H,088H,048H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,018H,020H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  4  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,0C0H,020H,010H,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,007H,004H,024H,024H,03FH,024H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  5  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0F8H,008H,088H,088H,008H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,019H,021H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  6  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0E0H,010H,088H,088H,018H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,00FH,011H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  7  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,038H,008H,008H,0C8H,038H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,03FH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  8  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,070H,088H,008H,008H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,01CH,022H,021H,021H,022H,01CH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  9  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,031H,022H,022H,011H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  A  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,0C0H,038H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03CH,023H,002H,002H,027H,038H,020H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  B  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,088H,088H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  C  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  0C0H,030H,008H,008H,008H,008H,038H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  007H,018H,020H,020H,020H,010H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  D  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,008H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  E  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,088H,088H,0E8H,008H,010H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,020H,023H,020H,018H,000H,000H,000H,000H,000H,000H,000H,000H,000H

;--  文字:  F  --

⌨️ 快捷键说明

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