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

📄 genert.txt

📁 一、实验任务 利用开发系统编制程序
💻 TXT
字号:
实验五 任意波形发生器

一、实验任务
利用开发系统编制程序,产生三角波、锯齿波、正弦波
二、程序编制要求
分别产生三种波形,并能通过按键调节输出频率
三、改变频率的方法
改变数据送入0832的延时,即通过延时子程序的参数改变实现。延时参数的改变即通过键功能选择,用查表法将表格中的延时参数送入延时子程序。
四、程序设计提示
  1、功能键应设四个:{
2、功能键的选择:
采用转换设计法时,应选用键值连续的按键
五、频率调节子程序
RUN:    MOV    DPTR,#DLTAB        ;DLTAB为延时参数表
         MOV	 A,30H
         CJNE	 A,#05,ADDF1          ;30H为查表偏移量起始值
         MOV 	 30H,#0
         LJMP 	 ADDF2
ADDF1:  INC 	 30H
ADDF2:  MOVC	 A,@A+DPTR           ;查段码表
         MOV 	 31H,A                 ;31H保存延时参数
         MOV 	 A,40H
         LJMP   KEY5
DLTAB:  DB 02H,10H,20H,40H,60H



实验五    信号发生器

ORG    0000H
        AJMP    MAIN
MAIN:  MOV     30H,#00H
        MOV     31H,#01H
KEY:   MOV     DPTR,#8001H     ;74245清0
        MOV     A,#00H
        MOV     DPTR,#8002H     ;74374清0
        MOV     A,#00H
        MOVX    @DPTR,A
        MOV     R3,#00H
        MOV     R4,#00H
KEY0:  ACALL   KEXAM
        JZ      KEY0
        ACALL   KEXAM
        JZ      KEY0
KEY1:  MOV     DPTR,#8002H     ;列地址
        MOV     A,R2
        MOVX    @DPTR,A
KEY10: MOV     DPTR, #8001H    ;行地址
        MOVX    A,@DPTR
        CPL     A
        ANL     A,#0FH
        JNZ     KEY2
KEY11:  MOV     A,R3
        ADD     A,#04H
        MOV     R3,A
        MOV     A,R2
        RR      A
        MOV     R2,A
        JB      ACC.1,KEY1
        AJMP    MAIN
KEY2:  CPL     A
KEY3:  INC     R4
        RRC     A
        JC      KEY3

KEY4:  ACALL   DL10mS
        ACALL   KEXAM
        JNZ     KEY4
        MOV     A,R4
        ADD     A,R3
        CJNE   A,#04H,NEXT      				;40H保存波形参数
        AJMP   KEY5
NEXT:  MOV    40H,A
KEY5:  CJNE A,#01H,KEY6
        AJMP  JUCBO
KEY6:  CJNE A,#02H,KEY7
        AJMP  SJBO
KEY7:  CJNE A,#03H,KEY8
        AJMP  ZXBO
KEY8:  CJNE A,#04H,KEY0
        AJMP  RUN

JUCBO: MOV  DPTR,#9000H                      ;指向0832
        MOV  R1,#00H                          ;产生正向锯齿波
LOOP:  MOV A,R1
        MOVX  @DPTR,A
        INC R1
        LCALL DELY
        CJNE R1,#0FFH,LOOP
        LCALL KEXAM
        JZ JUCBO
        JMP  KEY

SJBO:   MOV  DPTR,#9000H                       ;指向0832
DA1:    MOV  R0,#00H                           ;产生三角波
DA2:    MOV  A,R0
        MOVX   @DPTR,A
        INC  R0
        LCALL DELY
        CJNE  R0,#0FFH,DA2                     ;输出电压最大值
DA3:    DEC  R0
        MOV  A,R0
        MOVX  @DPTR,A
        LCALL DELY
        CJNE  R0,#00H,DA3                       ;输出电压最小值
        LCALL KEXAM
        JZ SJBO
        LJMP   KEY

ZXBO:   MOV  R6,#00H                             ;查表偏移量
SIN:    MOV  A,R6
        MOV  DPTR,#TAB                           ;送输出量表首址
        MOVC  A,@A+DPTR
        MOV  DPTR,#9000H                         ;指向0832
        MOVX  @DPTR,A                            ;输出数据
        INC  R6
        LCALL DELY
        CJNE R6,#00H,SIN
        LCALL KEXAM
        JZ    ZXBO
        LJMP   KEY
      
RUN:    MOV DPTR,#DLTAB
         MOV A,30H
         CJNE A,#05,ADDF1
         MOV 30H,#0
         LJMP ADDF2
ADDF1:  INC 30H
ADDF2:  MOVC A,@A+DPTR
         MOV 31H,A                      ;31H保存延时参数
         MOV A,40H
         LJMP KEY5

DLTAB:  DB 02H,10H,20H,40H,60H

DELY:   MOV R7,31H
DLY:    DJNZ R7,DLY
         RET



TAB:   DB  80H,83H,86H,89H,8DH,90H,93H,96H,99H,9CH,9FH,0A2H
        DB  0A5H,0A8H,0ABH,0AEH,0B1H,0B4H,0B7H,0BAH,0BCH,0BFH
        DB  0C2H,0C5H,0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
        DB  0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H,0EAH,0ECH
        DB  0EEH,0EFH,0F1H,0F2H,0F4H,0F5H,0F6H,0F7H,0F8H,0F9H
        DB  0FAH,0FBH,0FCH,0FDH,0FDH,0FEH,0FFH,0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
        DB  0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H,0F5H,0F4H
        DB  0F2H,0F1H,0EFH,0EEH,0ECH,0EAH,0E9H,0E7H,0E5H,0E3H
        DB  0E1H,0DEH,0DDH,0DAH,0D8H,0D6H,0D4H,0D1H,0CFH,0CCH
        DB  0CAH,0C7H,0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
        DB  0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H,96H,93H
        DB  90H,8DH,89H,86H,83H,80H,80H,7CH,79H,76H,72H,6FH
        DB  6CH,69H,66H,63H,60H,5DH,5AH,57H,55H,51H 4EH,4CH
        DB  48H,45H,43H,40H,3DH,3AH,38H,35H,33H,30H,2EH,2BH
        DB  29H,27H,25H,22H,20H,1EH,1CH,1AH,18H,16H,15H,13H
        DB  11H,10H,0EH,0DH,0BH,0AH,09H,08H,07H,06H,05H,04H
        DB  03H,02H,02H,01H,00H,00H,00H,00H,00H,00H,00H,00H
        DB  00H,00H,00H,00H,01H,02H,02H,03H,04H,05H,06H,07H
        DB  08H,09H,0AH,0BH,0DH,01H,10H,11H,13H,15H,16H,18H
        DB  1AH,1CH,1EH,20H,22H,25H,27H,29H,2BH,2EH,30H,33H
        DB  35H,38H,3AH,3DH,40H,43H,45H,48H,4CH,4EH,51H,55H
        DB  57H,5AH,5DH,60H,63H,66H,69H,6CH,6FH,72H,76H,79H
        DB  7CH,80H ,0C0H,0F9H,0A4H,0B0H,99H

KEXAM: MOV     DPTR,#8002H     ; 列地址
        MOV     A,#00H
        MOVX    @DPTR,A
        MOV     DPTR,#8001H     ; 列地址
        MOVX    A,@DPTR
        CPL     A
        ANL     A,#0FH
        RET
DL10mS: MOV     R5,#08H           ;按键延时子程序
DL:     MOV     R6,#0FFH
DL0:    DJNZ    R6,DL0
        DJNZ    R5,DL
        RET
        END

⌨️ 快捷键说明

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