您的位置:控制工程论坛网论坛 » 自动化软件 » 用单片机产生正弦波程序

xilinxue

xilinxue   |   当前状态:在线

总积分:16186  2024年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2020-03-22

空间 发短消息加为好友

用单片机产生正弦波程序

xilinxue  发表于 2009/6/12 12:31:48  置顶    5320 查看 4 回复  [上一主题]  [下一主题]

手机阅读

用单片机产生正弦波程序


要用到数模转换DAC0832

       MOV  DPTR,#SINTAB         ;正弦表写入内部RAM6DH-7FH
       MOV  R0,#6DH
LOOP:  CLR  A
       MOVC A,@A+DPTR
       MOV  @R0,A
       INC  DPTR
       INC  R0
       CJNE R0,#80H,LOOP
       MOV  DPTR,#7FFFH          ;设置D/A转换器的端口地址
       MOV  R0,#6DH               ;设置正弦表指针
LOOP1: MOV  A,@R0                ;查表
       MOVX @DPTR,A              ;D/A转换
       ACALL  DELAY              ;延时,等待转换结束
       DEC  R0                     ;正弦表位移量增量
       CJNE R0, #6DH,LOOP1          ;第一象限输出完?
LOOP2: MOV  A,@R0                ;查表
       MOVX @DPTR,A              ;D/A转换
       acall  DELAY             ;延时,等待转换结束
       DEC  R0                     ;正弦表位移量减量
       CJNE R0, #6DH,LOOP2          ;第二象限输出完?
LOOP3: MOV  A,@R0                ;查表
       CPL A                        ;表值取反
       MOVX @DPTR,A              ;D/A转换
       ACALL  DELAY             ;延时,等待转换结束
       INC  R0                     ;正弦表位移量增量
      CJNE R0,#7FH,LOOP3          ;第三象限输出完?
LOOP4:MOV  A,@R0                ;查表
      CPL  A                      ;表值取反
      MOVX @DPTR,A              ;D/A转换
      ACALL  DELAY             ;延时,等待转换结束
      DEC  R0                     ;正弦表位移量减量
      CJNE R0,#6DH,LOOP4          ;第四象限输出完?
      SJMP LOOP1
DELAY:MOV  R7,#200               ; 延时50ms
DEL1:MOV R6,#123
      NOP
DEL2:JNZ R6,DEL2
      DJNZ R7,DEL1
      RET
SINTAB:
DB 80H,83H,86H,89H,8DH,90H,93H,96H
DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H
DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H
DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H
DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH
DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH
DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H
DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH
DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH
DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H
DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H
DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H
DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H
DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H
DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H
DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH
DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H
DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H
DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH
DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H
DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H
DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H
DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H
DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H
DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H
DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H
DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH
DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H
DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H
END

1楼 0 0 回复
  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2008/11/6 18:46:50

      只是把正弦波产生的数据先存起来,再查表直接发送就可以了,也可以通过公式计算,不过由于 51的计算能力有限,希望大家采用查表的方法,要产生别的波形也是一样的,先准备表格,再通过DA就可以实现你要求的波形了
    2楼 回复本楼

    引用 xilinxue 2008/11/6 18:46:50 发表于2楼的内容

  • semiscone

    semiscone   |   当前状态:在线

    总积分:4800  2024年可用积分:0

    注册时间: 2008-04-29

    最后登录时间: 2013-07-11

    空间 发短消息加为好友

    semiscone   发表于 2008/11/13 20:19:24

    我最近在用C8051F***,感觉挺强大的,和当年的8051不是一个级别的啊。
    3楼 回复本楼

    引用 semiscone 2008/11/13 20:19:24 发表于3楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2008/11/17 18:26:14

    在考虑功能问题的时候还要考虑成本等等问题在里面,现在ARM也很便宜了,这个是一个基础的程序,希望得到高手的指点,谢谢
    4楼 回复本楼

    引用 xilinxue 2008/11/17 18:26:14 发表于4楼的内容

  • jiaobei2354717

    jiaobei2354717   |   当前状态:离线

    总积分:57  2024年可用积分:0

    注册时间: 2009-06-12

    最后登录时间: 2009-06-12

    空间 发短消息加为好友

    jiaobei2354717   发表于 2009/6/12 12:31:48

    你好,请问有没有关于C语言设计的 频率可调的正弦波编程啊

    5楼 回复本楼

    引用 jiaobei2354717 2009/6/12 12:31:48 发表于5楼的内容

总共 , 当前 /