找回密码
 立即注册

QQ登录

只需一步,快速开始

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

有没有哪位大佬能帮我把汇编语言帮我转为c或者c++的 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:792246 发表于 2020-6-28 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORG 0000H
LJMP MAIN ;主程序
ORG 0003H
LJMP INT01
ORG 0030H
MAIN: MOV P0,#0FFH ;给P0口高电平
MOV SP,#60H ;设置堆栈指针
ZC : MOV R6,#01H
MOV R7,#0FH
CLR IT0 ;外部中断设置为低电平触发
SETB EX0 ;开启外部中断0
SETB EA ;开启总中断

START: ;确保每个波形能够循环输出
CJNE R7,#00H,LLL0
SJMP ZX
SJMP START
LLL0: CJNE R7,#01H,LLL1
SJMP FB
SJMP START
LLL1: CJNE R7,#02H,LLL2
SJMP SJ
SJMP START
LLL2: CJNE R7,#03H,LLL3
LJMP JUC
LLL3: SJMP START

INT01: ;产生外部中断0,检测对应的按钮输出对应的波形
JB P2.1,LL0
MOV R7,#00H
SJMP LL3
LL0: JB P2.2,LL1
MOV R7,#01H
SJMP LL3
LL1: JB P2.3,LL2
MOV R7,#02H
第 25 页 共 30 页

25/30页


SJMP LL3
LL2: JB P2.4,LL3
MOV R7,#03H
SJMP LL3
LL3: RETI

ZX: MOV R3,#00H ;产生正弦波
LOOP0: MOV A,R3
MOV DPTR,#TABLE ;查表
MOVC A,@A+DPTR
MOV DPTR,#0FEFFH ;定义DAC0832地址
MOVX @DPTR,A ;读数据
INC R3
JB P2.5,LOOP1 ;正弦波调频
LCALL D50US
LOOP1: CJNE R3,#255,LOOP0
MOV R3,#00H
CJNE R7,#00H,START ;检测键是否按下
AJMP ZX


FB: MOV DPTR,#0FEFFH;产生方波
JB P2.6,LOOP2 ;检测调幅按钮调幅
MOV A,#0CCH ;方波高电平幅值1
SJMP LOOP3
LOOP2: MOV A,#055H ;方波高电平幅值2 LOOP3: MOVX @DPTR,A
LCALL D200US ;延时
JB P2.5,LOOP4 ;方波前半周期调频
LCALL D200US
LOOP4: MOV A,#5 ;方波低电平幅值
MOVX @DPTR,A
LCALL D200US ;延时
JB P2.5,LOOP5 ;方波后半周期调频
LCALL D200US
LOOP5: CJNE R7,#01H,START ;检测键是否按下
AJMP FB

第 26 页 共 30 页

26/30页


SJ: MOV R3,#00H;产生三角波
LOOP6: MOV A,R3
MOV DPTR,#0FEFFH
MOVX @DPTR,A
INC R3 ;波形上升
MOV A,R3
JB P2.5,LOOP7 ;三角波前半周期调频
LCALL D50US
LOOP7: JB P2.6,LOOP8 ;三角波调幅
CJNE A,#0FFH,LOOP6 ;幅值1
SJMP LOOP9
LOOP8: CJNE A,#055H,LOOP6 ;幅值2 LOOP9: DEC R3 ;波形下降
JB P2.5,LOOP10 ;三角波后半周期调频
LCALL D50US
LOOP10: MOV A,R3
MOV DPTR,#0FEFFH
MOVX @DPTR,A
CJNE R3,#00H,LOOP9
CJNE R7,#02H,SJOUT ;检测键是否按下
AJMP SJ
SJOUT: LJMP START


JUC: MOV R3,#00H;产生锯齿波
LOOP11: MOV A,R3
MOV DPTR,#0FEFFH
MOVX @DPTR,A
INC R3 ;波形上升
MOV A,R3
JB P2.5,LOOP12 ;锯齿波调频
LCALL D50US
LOOP12: JB P2.6,LOOP13 ;锯齿波调幅
CJNE A,#0FFH,LOOP11 ;幅值1
SJMP LOOP14
LOOP13: CJNE A,#055H,LOOP11 ;幅值2 LOOP14: CJNE R7,#03H,JUCOUT ;检测键是否按下
AJMP JUC
第 27 页 共 30 页

27/30页


JUCOUT: LJMP START

D200US: MOV R1,#2 ;200μs延时
MOV R2,#50
L5: DJNZ R2,$
DJNZ R1,L5
RET
D50US: MOV R1,#1 ;50μs延时
MOV R2,#23
L6: DJNZ R2,$
DJNZ R1,L6
RET


TABLE:DB
080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aeh ;产生正弦波代码
DB
0b1h,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,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4h
DB
0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffh
DB
0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6h
DB
0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0deh,0dch
DB
0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6h,0b3h
DB
0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083h
第 28 页 共 30 页

28/30页


DB
080h,07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,055h,052h
DB
04fh,04dh,04ah,047h,044h,041h,03fh,03ch,039h,037h,034h,032h,02fh,02dh,02bh,028h
DB
026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00dh,00ch
DB
00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h,002h,001h,001h,000h
DB
000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,008h,00ah
DB
00bh,00ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022h,024h
DB
026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dh
DB
04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07ah,07dh

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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