久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7732|回復: 0
收起左側

單片機產生四種波形并可任意切換的正弦波發生器匯編程序

[復制鏈接]
ID:596951 發表于 2019-8-7 15:56 | 顯示全部樓層 |閱讀模式
  借助51單片機和DAC0832實現通過按鍵控制不同波形的波形發生器。下文為設計文章及proteus仿真電路圖和仿真效果圖;后面附有與電路圖對應的有效源程序。  工作原理:
產生指定的信號波形可以通過DAC來實現,對輸出的二進制數字量進行相應改變來實現不同波形的產生。正弦波是利用MATLAB將正弦曲線均勻取樣得到等間隔時刻的y方向上二進制數值,然后依次輸出后經D/A轉換得到;三角波信號是將輸出的二進制數字信號依次加1,達到0xff時再依次減1,并實時將數字信號經D/A轉換得到波形信號。
實現方法:
正弦波:先使用MATLAB在x方向進行等間隔取樣,將y軸上的讀數取整之后轉換成16進制數形成一個表格。在程序中采取不斷讀表輸出的方式經 D/A 轉換得到正弦波。
三角波:程序中設計三角波最高達到00FFH,先不斷加1,達到峰值之后不斷減1,將這些信號同步輸出,并利用D/A轉換得到三角波。可以在虛擬示波器上觀察到這兩種不同的波形。
仿真原理圖:

仿真原理圖

仿真原理圖

結果圖:

結果圖1

結果圖1

結果圖2

結果圖2

全部實驗程序見附件:
  1. ; Main.asm file generated by New Project wizard
  2. ; Created:   周五 5月 24 2019
  3. ; Processor: AT89C52
  4. ; Compiler:  ASEM-51 (Proteus)
  5. ;=====================================
  6. $NOMOD51
  7. $INCLUDE (80C52.MCU)
  8. ;======================================
  9. ; DEFINITIONS
  10. ; VARIABLES
  11. ; RESET and INTERRUPT VECTORS
  12. ;======================================
  13.       ; Reset Vector
  14.       org   0000h
  15.       jmp   Start
  16. ;=======================================
  17. ; CODE SEGMENT
  18. ;=======================================
  19.       org   0100h
  20. Start:        
  21. ;***R4=0鋸齒波R4=1三角波R4=2正弦波R4=3方波R4=梯形波***                                       
  22. ;***********************
  23. ;       鋸齒波
  24. ;***********************   
  25.        MOV        R4,#0      
  26. J0:    MOV        A,#0
  27. J0next:          CJNE                R4,#0,S1    ;判斷R4,不等0跳轉產生三角波
  28.                   MOV                P2,A                 ;P2賦值
  29.                   LCALL                delay                 ;延時
  30.                   INC                A                     ;增加A的值,產生鋸齒波上升沿
  31.                   JB                P1.0,J0p11         ;掃描檢測按鍵給R4賦值選擇輸出信號波形
  32.                   MOV                R4,#0                 ;產生鋸齒波信號
  33. J0p11:          JB                P1.1,J0p12                  
  34.                   MOV                R4,#1             ;產生三角波信號
  35. J0p12:    JB                P1.2,J0p13                  
  36.                   MOV                R4,#2                  ;產生正弦波信號
  37. J0p13:          JB                P1.3,J0p14                  
  38.                   MOV                  R4,#3                  ;產生方波信號
  39. J0p14:          JB                   P1.4,J0p15                  
  40.                   MOV                R4,#4                  ;產生梯形波信號
  41. J0p15:         SJMP            J0next
  42. ;***************************
  43. ;          三角波
  44. ;***************************
  45. S1:       MOV                A,#0
  46. S1n1:          CJNE                R4,#1,Z3                ;判斷R4,不等于1則跳轉正弦波發生
  47.                   MOV                P2,A                    ;產生三角波的上升沿
  48.                   LCALL                 delay                    ;調用延時
  49.                   INC                A                    ;增加A                        
  50.                   JB                P1.0,S11p11            ;掃描檢測按鍵確定輸出信號種類
  51.                   MOV            R4,#0                    ;產生鋸齒波信號
  52. S11p11:  JB            P1.1,S11p12                        
  53.                  MOV        R4,#1                        ;產生三角波信號
  54. S11p12:  JB            P1.2,S11p13                          
  55.                  MOV        R4,#2                         ;產生正弦波信號
  56. S11p13:  JB     P1.3,S11p14                        
  57.                  MOV    R4,#3                        ;產生方波信號
  58. S11p14:         JB     P1.4,S1p1                          
  59.                  MOV    R4,#4                        ;產生梯形波信號
  60. S1p1:    CJNE                  A,#255,S1n1
  61. S1n2:    CJNE                 R4,#1,Z3
  62.                 MOV                P2,A                        ;產生三角波的下降沿
  63.                 LCALL   delay                                   
  64.                 DEC                A                        ;減小A                           
  65.                 JB                P1.0,S12p11         ;掃描檢測按鍵狀態確定輸出信號波形
  66.                 MOV                R4,#0                        ;產生鋸齒波信號
  67. S12p11:  JB                P1.1,S12p12
  68.                  MOV        R4,#1                          ;產生三角波信號
  69. S12p12:  JB                P1.2,S12p13
  70.                  MOV        R4,#2                        ;產生正弦波信號  
  71. S12p13:         JB     P1.3,S12p14
  72.                   MOV             R4,#3                  ;產生方波信號
  73. S12p14:          JB              P1.4,S1p2
  74.                          MOV    R4,#4                  ;產生梯形波信號
  75. S1p2:       CJNE        A,#0,S1n2                        
  76.                     SJMP        S1n1
  77. ;**********************************
  78. ;                     正弦波
  79. ;**********************************
  80. Z3:          MOV                R0,#0
  81. Z3NEXT:         CJNE        R4,#2,F4    ;判斷R4,不等于2跳轉輸出方波
  82.                         MOV                A,R0                        
  83.                         MOV                DPTR,#TAB   ;將正弦波的表頭給DPTR,轉到表格去查表
  84.                         MOVC        A,@A+DPTR               
  85.                         MOV                P2,A                        
  86.                         LCALL          DELAY                        
  87.                         INC                R0                                
  88.                         JB                P1.0,Z3p11
  89.                         MOV                R4,#0
  90. Z3p11:  JB        P1.1,Z3p12        ;掃描檢測按鍵選擇輸出波形
  91.                 MOV                  R4,#1
  92. Z3p12:  JB              P1.2,Z3p13
  93.                 MOV                     R4,#2
  94. Z3p13:  JB        P1.3,Z3p14
  95.                 MOV       R4,#3
  96. Z3p14:  JB        P1.4,Z3next
  97.                     MOV     R4,#4                        
  98.                 SJMP     Z3NEXT
  99. ;*******************************
  100. ;             方波
  101. ;*******************************
  102. F4:    CJNE                 R4,#3,T5          ;判斷R4,不等于3則跳轉梯形波
  103.                    MOV                 A,#0
  104.                    MOV                 P2,A
  105.                    CALL         FBDELAY
  106.                    MOV                 A,#255
  107.                    MOV                 P2,A
  108.                    CALL         FBDELAY               
  109. F40:     JB           P1.0,F41       ;掃描檢測按鍵分別選擇輸出波形
  110.                  MOV          R4,#0
  111. F41:     JB            P1.1,F42
  112.                  MOV          R4,#1
  113. F42:     JB            P1.2,F43
  114.                  MOV           R4,#2
  115. F43:     JB          P1.3,F44
  116.                  MOV          R4,#3
  117. F44:     JB          P1.4,F4
  118.                  MOV          R4,#4
  119.              JMP          F4
  120. ;*******************************
  121. ;           梯形波
  122. ;*******************************
  123. T5:         MOV          A,#0
  124. T5b:    CJNE          R4,#4,T51b                   ;判斷R4,不等4則跳轉
  125.                 JMP          T51b1
  126. T51b:   JMP          J0                                    ;跳轉到鋸齒波那一步
  127. T51b1:  MOV     P2,a
  128.                   LCALL         delay
  129.                   INC            A                            ;產生梯形波的上升沿;
  130.               JB            P1.0,T5b0            ;掃描檢測按鍵選擇輸出波形
  131.                   MOV              R4,#0
  132. T5b0:     JB            P1.1,T5b1
  133.                   MOV           R4,#1
  134. T5b1:     JB            P1.2,T5b2
  135.                   MOV           R4,#2
  136. T5b2:     JB        P1.3,T5b3
  137.                   MOV       R4,#3
  138. T5b3:     JB            P1.4,T5b10
  139.                   MOV           R4,#4
  140. T5b10:   CJNE                    A,#255,T5b
  141.                  LCALL             fbdelay
  142. T5b11:   CJNE           R4,#4,T52b
  143.                  JMP               T52b2
  144. T52b:    JMP               J0
  145. T52b2:         MOV              P2,a
  146.                  LCALL          delay
  147.                  DEC            A                                           ;產生梯形波的下降沿
  148.           JB             P1.0,T5b12                               ;掃描檢測按鍵選擇輸出波形
  149.                   MOV           R4,#0
  150. T5b12:    JB             P1.1,T5b13
  151.                   MOV           R4,#1
  152. T5b13:    JB             P1.2,T5b14
  153.                   MOV       R4,#2
  154. T5b14:    JB             P1.3,T5b15
  155.                   MOV             R4,#3
  156. T5b15:    JB                 P1.4,T5b16
  157.                   MOV              R4,#4        
  158. T5b16:   CJNE                  A,#0,T5b11
  159.              JMP                 T5
  160. DELAY:           MOV          R6,#2                     ;延時函數
  161. D1:                MOV          R7,#20
  162.                     DJNZ  R7,$
  163.                     DJNZ  R6,D1
  164.                 RET        
  165. fbdelay:   MOV  R1,#40                      ;方波延時函數
  166. D2:        MOV  R2,#255
  167.                            DJNZ R2,$
  168.                        DJNZ R1,D2
  169.                       RET
  170. ;正弦波波形表
  171.         TAB:         
  172.                         DB 80H,83H,86H,89H,8DH,90H,93H,96H
  173.                         DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
  174.                         DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
  175.                         DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H
  176.                         DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H
  177.                         DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H
  178.                         DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH
  179.                         DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
  180.                         DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH
  181.                         DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H
  182.                         DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH
  183.                         DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH
  184.                         DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H
  185.                         DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H
  186.                         DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H
  187.                         DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H
  188.                         DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H
  189.                         DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H
  190.                         DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH
  191.                         DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H
  192.                         DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H
  193.                         DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH
  194.                         DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H
  195.                         DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H
  196.                         DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H
  197.                         DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H
  198.                         DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H
  199.                         DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H
  200.                         DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H
  201.                         DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH
  202.                         DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H
  203.                         DB 69H, 6CH, 6FH, 72H, 75H, 78H, 7bH, 7eH
  204. Loop:        
  205.       jmp Loop
  206. ;=============================================
  207.       END

復制代碼




回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产激情在线观看 | 日韩免费av一区二区 | 亚洲国产成人精品女人久久久 | 日韩精品极品视频在线观看免费 | 婷婷五月色综合香五月 | 羞羞网站免费 | 亚洲欧美成人 | 精品在线观看入口 | 午夜视频一区二区三区 | 成人免费视频一区二区 | 成人深夜福利在线观看 | 欧美精品一区二区三区在线 | jav成人av免费播放 | 一区二区三区网站 | 91一区二区| 91精品国产综合久久久久久 | 色www精品视频在线观看 | 成人在线免费 | 国产精品久久精品 | 国产一级一级毛片 | 国产免费又色又爽又黄在线观看 | 中文字幕三区 | 国产激情网站 | 91麻豆精品国产91久久久久久 | 国产98色在线 | 日韩 | 日韩精品一区二区三区在线观看 | 亚洲一二三区在线观看 | 日韩在线精品视频 | 99精品欧美一区二区三区 | 无吗视频 | 欧美二区三区 | 久久久精品国产 | 色视频网站在线观看 | 中文字幕一区二区三区四区五区 | 欧美成人精品一区二区三区 | 日韩在线免费看 | 精品国产乱码久久久久久丨区2区 | 俺去俺来也www色官网cms | 中文字幕在线观看第一页 | 国产一级一级 | 99九色|