<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機控制DAC0832輸出正弦波三角波匯編程序

          單片機控制DAC0832輸出正弦波三角波匯編程序

          作者: 時間:2012-08-13 來源:網絡 收藏
          org 0000h
          LJMP MAIN
          ORG 0003H
          LJMP L0
          MAIN:MOV R2,#0aH ;調幅倍數
          MOV R4,#01H ;增減選擇
          MOV R5,#01H
          pp: SETB EA
          SETB EX0 ;延時計數個數
          MOV A,#0FFH ;讀取波形狀態(tài)
          MOV P1,A
          MOV A,P1
          JNB ACC.0,ZXB ;P1.0=0 則選擇
          JNB ACC.1,SJB ;P1.1=0 則選擇
          JNB ACC.2,FB ;P1.2=0 則選擇方 波
          AJMP PP
          ZXB:MOV R1,#00H
          LOOP1:MOV A,R1
          MOV DPTR,#TABLE1 ;讀取數據首地址
          MOVC A,@A+DPTR ;去表格數據
          MOV B,R2
          MUL AB ;幅度大小
          INC R1
          XCH A,R1
          CLR C
          SUBB A,#0AH ;是否已采樣半個周期
          JNC LK1 ;C=0跳轉,即R1大于0A,以采樣半個周期以上
          ADD A,#0AH
          XCH A,R1 ;還原R1
          ADD A,#80H ;8OH為零點,取得正的幅度值
          AJMP LK0
          LK1:ADD A,#0AH
          XCH A,R1
          MOV R3,A
          MOV A,#80H
          CLR C
          SUBB A,R3 ;80H為零點,取得負的幅度值
          LK0:MOV DPTR,#8000H ;送DA轉換入口地址
          MOVX @DPTR,A
          MOV A,R5
          KD:DEC R5 ;調用延時
          CALL DELAY
          CJNE R5,#00H,KD
          MOV R5,A
          CJNE R1,#12H,LOOP1
          LJMP PP
          FB:MOV R1,#00H
          LOOP2:MOV A,R1
          MOV DPTR,#TABLE2 ;讀取方波數據首地址
          MOVC A,@A+DPTR ;去表格數據
          MOV B,R2
          MUL AB ;幅度大小
          INC R1
          XCH A,R1
          CLR C
          SUBB A,#0AH ;是否已采樣半個周期
          JNC LK3 ;C=0跳轉,即R1大于0A,以采樣半個周期以上
          ADD A,#0AH
          XCH A,R1 ;還原R1
          ADD A,#80H ;8OH為零點,取得正的幅度值
          AJMP LK2
          LK3:ADD A,#0AH
          XCH A,R1
          MOV R3,A
          MOV A,#80H
          CLR C
          SUBB A,R3 ;80H為零點,取得負的幅度值
          LK2:MOV DPTR,#8000H ;送DA轉換入口地址
          MOVX @DPTR,A
          MOV A,R5
          KD0:DEC R5 ;調用延時
          CALL DELAY
          CJNE R5,#00H,KD0
          MOV R5,A
          CJNE R1,#12H,LOOP2
          LJMP PP
          SJB:MOV R1,#00H
          LOOP3:MOV A,R1
          MOV DPTR,#TABLE3 ;讀取波數據首地址
          MOVC A,@A+DPTR ;去表格數據
          MOV B,R2
          MUL AB ;幅度大小
          INC R1
          XCH A,R1
          CLR C
          SUBB A,#0DH ;是否已采樣半個周期
          JNC LK5 ;C=0跳轉,即R1大于D,以采樣半個周期以上
          ADD A,#0DH
          XCH A,R1 ;還原R1
          ADD A,#80H ;8OH為零點,取得正的幅度值
          AJMP LK4
          LK5:ADD A,#0DH
          XCH A,R1
          MOV R3,A
          MOV A,#80H
          CLR C
          SUBB A,R3 ;80H為零點,取得負的幅度值
          LK4:MOV DPTR,#8000H ;送DA轉換入口地址
          MOVX @DPTR,A
          KD1:MOV A,R5
          DEC R5 ;調用延時
          CALL DELAY
          CJNE R5,#00H,KD1
          MOV R5,A
          CJNE R1,#18H,LOOP3
          LJMP PP
          DELAY:NOP
          RET
          L0:CLR EA
          PUSH A
          PUSH PSW
          JB P1.3,L1 ;中斷子程序
          CJNE R4,#00H,KL0
          INC R4
          SJMP LD0
          KL0:MOV R4,#00H
          LD0:JNB P1.3,LD0 ;判斷鍵是否松開
          LJMP LEND
          L1:JB P1.4,L2
          MOV A,R4
          JNZ KL1 ;判斷幅度是增還是減
          CJNE R2,#0AH,KK0 ;判斷幅度是否達到最大
          SJMP LD1
          KK0:INC R2 ;幅度增加0.5V
          SJMP LD1
          KL1:CJNE R2,#00H,KK1
          SJMP LD1
          KK1:DEC R2 ;幅度減小0.5V
          LD1:JNB P1.4,LD1
          LJMP LEND
          L2:JB P1.5 ,LEND
          MOV A,R4
          JNZ KL2 ;判斷頻率的增減
          MOV A,#05H ;每次周期變化20微秒
          CLR C
          ADD A,R5
          JC LD2
          MOV R5,A
          LJMP LD2
          KL2:MOV A,R5
          CLR C
          SUBB A,#05H
          JC LD2
          MOV R5,A
          LD2:JNB P1.5,LD2
          LEND:POP PSW
          POP A
          SETB EA
          RETI
          TABLE1:DB 00H,04H,08H,0bH,0cH,0cH,0bH,08H,04H,00H,04H,08H,0bH,0cH,0cH,0bH,08H ,04H
          TABLE2:DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,0CH,0CH,0CH,0CH,0CH,0CH,0CH,0CH ,0CH
          TABLE3:DB 00H,02H,04H,06H,08H,0AH,0CH,0AH,08H,06H,04H,02H,00H,02H,04H,06H,08H,0AH,0CH,0AH


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();