找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2220|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主

利用proteus搭建电路


实现如下功能:
第一次按下K1键,输出三角波
第二次按下K1键,输出锯齿波
第三次按下K1键,输出方波
第四次按下K1键,输出正弦波

第五次按下K1键,输出-2.5V电平

源代码:
         ORG    0000H
                 LJMP   MAIN
                 ORG    0003H
                 LJMP   EX0P
                 ORG    0100H
MAIN:    MOV    SP,#60H
         MOV    R2,#0
                 SETB   IT0
                 SETB   EX0
                 SETB   EA
LP0:     CJNE   R2,#0,LP1
         ACALL  LINE
LP1:     CJNE   R2,#1,LP2
         ACALL  TRI
LP2:     CJNE   R2,#2,LP3
                 ACALL  SAWTOOTH
LP3:     CJNE   R2,#3,LP4
         ACALL  SQUARE
LP4:     CJNE   R2,#4,LP5
         ACALL  SINE
LP5:     JMP   LP0

EX0P:    INC    R2
         CJNE   R2,#5,RETU
                 MOV    R2,#0
RETU:    RETI

LINE:    MOV    A,#80H
         MOV    DPTR,#7F00H
                 MOVX   @DPTR,A
                 RET

TRI:     MOV    A,#00H
         MOV    DPTR,#7F00H
UP:      MOVX   @DPTR,A
         ACALL  DELAY
                 INC    A
                 JNZ    UP
                 MOV    A,#0FEH
DOWN:    MOVX   @DPTR,A
         ACALL  DELAY
                 DEC    A
                 JNZ    DOWN
                 RET

SAWTOOTH:CLR    A
         MOV    DPTR,#7F00H
NEXTS:   MOVX   @DPTR,A
         ACALL  DELAY
                 INC    A
                 JNZ    NEXTS
                 RET

SQUARE:  MOV    A,#0FFH
LPSQU:   MOV    DPTR,#7F00H
         MOVX   @DPTR,A
                 ACALL  DELAY
                 CPL    A
                 MOVX   @DPTR,A
                 ACALL  DELAY
                 RET

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

评分

参与人数 1黑币 +40 收起 理由
admin + 40 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表