基于51单片机+DAC0832的波形发生器汇编语言程序

[复制链接]
查看2 | 回复0 | 2021-6-19 18:49:49 | 显示全部楼层 |阅读模式
1.png
利用proteus搭建电路
实现如下功能:
第一次按下K1键,输出三角波
第二次按下K1键,输出锯齿波
第三次按下K1键,输出方波
第四次按下K1键,输出正弦波
第五次按下K1键,输出-2.5V电平

源代码:
  1.          ORG    0000H
  2.                  LJMP   MAIN
  3.                  ORG    0003H
  4.                  LJMP   EX0P
  5.                  ORG    0100H
  6. MAIN:    MOV    SP,#60H
  7.          MOV    R2,#0
  8.                  SETB   IT0
  9.                  SETB   EX0
  10.                  SETB   EA
  11. LP0:     CJNE   R2,#0,LP1
  12.          ACALL  LINE
  13. LP1:     CJNE   R2,#1,LP2
  14.          ACALL  TRI
  15. LP2:     CJNE   R2,#2,LP3
  16.                  ACALL  SAWTOOTH
  17. LP3:     CJNE   R2,#3,LP4
  18.          ACALL  SQUARE
  19. LP4:     CJNE   R2,#4,LP5
  20.          ACALL  SINE
  21. LP5:     JMP   LP0

  22. EX0P:    INC    R2
  23.          CJNE   R2,#5,RETU
  24.                  MOV    R2,#0
  25. RETU:    RETI

  26. LINE:    MOV    A,#80H
  27.          MOV    DPTR,#7F00H
  28.                  MOVX   @DPTR,A
  29.                  RET

  30. TRI:     MOV    A,#00H
  31.          MOV    DPTR,#7F00H
  32. UP:      MOVX   @DPTR,A
  33.          ACALL  DELAY
  34.                  INC    A
  35.                  JNZ    UP
  36.                  MOV    A,#0FEH
  37. DOWN:    MOVX   @DPTR,A
  38.          ACALL  DELAY
  39.                  DEC    A
  40.                  JNZ    DOWN
  41.                  RET

  42. SAWTOOTH:CLR    A
  43.          MOV    DPTR,#7F00H
  44. NEXTS:   MOVX   @DPTR,A
  45.          ACALL  DELAY
  46.                  INC    A
  47.                  JNZ    NEXTS
  48.                  RET

  49. SQUARE:  MOV    A,#0FFH
  50. LPSQU:   MOV    DPTR,#7F00H
  51.          MOVX   @DPTR,A
  52.                  ACALL  DELAY
  53.                  CPL    A
  54.                  MOVX   @DPTR,A
  55.                  ACALL  DELAY
  56.                  RET

  57. SINE:    MOV    R6,#255
  58.          MOV    DPTR,#7F00H
  59.                  CLR    A
  60.                  MOV    B,A
  61. NEXTSINE:
  62.          MOVC   A,@A+PC
  63.                  MOVX   @DPTR,A
  64.                  ACALL  DELAY
  65.                  INC    B
  66.                  MOV    A,B
  67.                  DJNZ   R6,NEXTSINE
  68.                  RET
  69.                  
  70. DELAY:   MOV    R7,#150
  71. DL:      DJNZ   R7,DL
  72.          RET
  73.                  
  74. SINEDAT: DB 80H,83H,86H,89H,8cH,8fH,92H,95H,98H,9cH,9fH,0a2H,0a5H,0a8H,0abH,0aeH
  75.          DB 0b0H,0b3H,0b6H,0b9H,0bcH,0bfH,0c1H,0c4H,0c7H,0c9H,0CCH,0ceH,0d1H,0d3H,0d5H,0d8H
  76.          DB 0daH,0dcH,0deH,0e0H,0e2H,0e4H,0e6H,0e8H,0eaH,0ecH,0edH,0efH,0f0H,0f2H,0f3H,0f4H
  77.          DB 0f6H,0f7H,0f8H,0f9H,0faH,0fbH,0fcH,0fcH,0fdH,0feH,0feH,0ffH,0ffH,0ffH,0ffH,0ffH
  78.                  
  79.          DB 0ffH,0ffH,0ffH,0feH,0feH,0fdH,0fcH,0fcH,0fbH,0faH,0f9H,0f7H,0f6H,0f5H,0f3H,0f2H
  80.                  DB 0f0H,0efH,0edH,0eBH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DCH,0DAH,0D8H,0D5H,0D3H,0D1H
  81.                  DB 0CEH,0CCH,0c9H,0c7H,0c4H,0c1H,0bfH,0bcH,0b9H,0b6H,0b3H,0b0H,0aeH,0abH,0a8H,0a5H
  82.                  DB 0a3H,0A1H,09EH,09cH,098H,095H,092H,08fH,08cH,089H,087H,085H,083H,081H,080H,080H
  83.                  
  84.                  DB 080H,080H,07FH,07EH,07BH,078H,075H,072H,06fH,06cH,069H,066H,063H,060H,05dH,05aH
  85.                  DB 057H,054H,051H,04EH,04bH,048H,046H,043H,040H,03dH,03bH,038H,035H,033H,030H,02eH
  86.                  DB 02cH,029H,027H,025H,023H,020H,01EH,01CH,01AH,018H,017H,015H,013H,012H,010H,00EH
  87.                  DB 00DH,00CH,00CH,0AH,009H,008H,007H,006H,005H,004H,003H,002H,001H,001H,000H,000H        
  88.                  
  89.                  DB 000H,000H,000H,000H,001H,001H,002H,003H,003H,004H,005H,006H,007H,008H,009H,00aH
  90.                  DB 00CH,00dH,00eH,010H,012H,013H,015H,017H,018H,01aH,01CH,01eH,020H,023H,025H,027H
  91.                  DB 029H,02cH,02eH,030H,033H,035H,038H,03bH,03dH,040H,043H,046H,048H,04bH,04eH,051H
  92.                  DB 054H,057H,05aH,05dH,060H,063H,066H,069H,06cH,06fH,072H,075H,078H,07BH,07EH,080H
  93.                  END
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则