
你直接用个sin 函数写啊 设定一个幅值 然后使用一个延时 幅值的大小决定振幅 延时的大小决定频率 我随手写写:
{ int i,temp,A(幅值)
while(1)
{ for(i=0;i<=A;i++)
{ temp=(int(sin(i90/A))常数 这里好好理解下
延时(自定时间)(正半周)
AD芯片驱动函数(temp)
}
for(i=0;i<=A;i++)
{ temp=—(int(sin(i90/A))常数 (负半周)
延时(自定时间)
AD芯片驱动函数(temp)
}
}
延时函数(int :时间值)带参
{
}
AD芯片驱动程序(带参(参数为AD输出模拟量大小所代表的数值 注意 这里这个参数应该体现temp的正负值引起AD输出模拟信号方向的改变))
{
}
纯手打 求采纳
不是转换……
不论十进制还是十六进制都是看你怎么解释,或者说怎么定义,但是不论怎么定义数据,存储的都是十六进制形式,你发送的数据是存储的形式,所以上位机vb读取的数据也是十六进制的,你如果想要十进制,需要自己在上位机接收后解析数据,解析的时候注意大小端等问题……
程序在下面:
ORG 0000H
START: LJMP MAIN
ORG 0003H
LJMP INSER
ORG 0030H
MAIN: MOV DPTR,#7FFFH
SETB EX0
SETB IT0
SETB EA
HEHE: JB 20H0,ST
JB 20H1,TRI
JB 20H2,SQ
JB 20H3,SIN
SJMP HEHE
INSER: JNB P10,LL1
SJMP L1
LL1: MOV 20H,#00H
SETB 20H0
RETI
L1: JNB P12,LL2
SJMP L2
LL2: MOV 20H,#00H
SETB 20H1
RETI
L2: JNB P14,LL3
SJMP L3
LL3: MOV 20H,#00H
SETB 20H2
RETI
L3: JNB P16,LL4
RETI
LL4: MOV 20H,#00H
SETB 20H3
RETI
ST: MOV A,#00H
LOOP: MOVX @DPTR,A
INC A
AJMP LOOP
TRI: MOV A,#00H
UP: MOVX @DPTR,A
INC A
CJNE A,#0FFH,UP
DOWN: MOVX @DPTR,A
DEC A
CJNE A,#00H,DOWN
AJMP UP
SQ: MOV A,#0FFH
MOVX @DPTR,A
ACALL DELAY1
MOV A,#7FH
MOVX @DPTR,A
ACALL DELAY2
AJMP SQ
DELAY1: MOV R4,#0FFH
LOOP7: MOV R5,#10H
LOOP8: NOP
DJNZ R5,LOOP2
DJNZ R4,LOOP1
RET
DELAY2: MOV R4,#0FFH
LOOP5: MOV R5,#10H
LOOP6: NOP
DJNZ R5,LOOP6
DJNZ R4,LOOP5
RET
SIN: MOV DPTR,#SINTAB
MOV R0,#6DH
LOOP0: CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC DPTR
INC R0
CJNE R0,#80H,LOOP0
MOV DPTR,#7FFFH
MOV R0,6DH
LOOP1: MOV A,@R0
MOVX @DPTR,A
INC R0
CJNE R0,#7FH,LOOP1
LOOP2: MOV A,@R0
MOVX @DPTR,A
DEC R0
CJNE R0,#6DH,LOOP2
LOOP3: MOV A,@R0
CPL A
MOVX @DPTR,A
INC R0
CJNE R0,#7FH,LOOP3
LOOP4: MOV A,@R0
CPL A
MOVX @DPTR,A
DEC R0
CJNE R0,#6DH,LOOP4
SJMP LOOP1
SINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9H
DB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFH
END
第一步,查看芯片手册配置SPI工作方式,控制芯片的SPI工作方式必须和AD9833的一样。
第二步,使用厂商做好的函数进行AD9833的设置。(我没有用过AD9833)但是带串行接口的芯片一般都需要设置一下,怎么设置需要看AD手册了。
第三步,向AD发送你想要输出的数字量吧。
以上就是关于求51单片机控制AD9833输出正弦波的程序啊,最好有仿真图,谢谢全部的内容,包括:求51单片机控制AD9833输出正弦波的程序啊,最好有仿真图,谢谢、怎么将单片机接收到的十六进制数转为十进制,、求AD9833与51单片机的整体电路连接图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)