欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機DAC0832波形發生器源程序及課程設計說明書下載(匯編語言) [打印本頁]

作者: 矯情什么    時間: 2018-7-4 16:24
標題: 單片機DAC0832波形發生器源程序及課程設計說明書下載(匯編語言)
1. DAC0832讀寫原理
D/A轉換是把數字量轉換成模擬量的變換,從D/A輸出的是模擬電壓信號。產生鋸齒波和三角波只需由A存放的數字量的增減來控制;要產生正弦波,較簡單的手段是造一張正弦數字量表。取值范圍為一個周期,采樣點越多,精度就越高。
在實驗板上,輸入寄存器占偶地址端口,DAC寄存器占較高的奇地址端口。兩個寄存器均對數據獨立進行鎖存。因而要把一個數據通過0832輸出,要經兩次鎖存。典型程序段如下:


主程序:
  1. NAME T92               ;0832數模轉換實驗
  2. PORT EQU 0CFA0H        ;片選地址送給字符名稱PORT
  3. ORG 00H
  4. START: MOV P1,#0FFH           ; P1口初地址賦值
  5.        MOV C,P1.0             ; Cy←P1.0
  6.        JNC JUCH1              ;若Cy=0,轉移到JUCH1,否則繼續執下一步
  7.        MOV C,P1.1             ; Cy←P1.1
  8.        JNC JUCH2              ;若Cy=0,轉移到JUCH1,否則繼續執下一步
  9. MOVC,P1.2              ;Cy←P1.2
  10.        JNC JUCH3              ;若Cy=0,轉移到JUCH1,否則繼續執下一步
  11. MOVC,P1.3              ;Cy←P1.3
  12.        JNC JUCH4              ;若Cy=0,轉移到JUCH1,否則繼續執下一步
  13.        SJMP START             ;轉移
  14.   子程序
  15. 三角波子程序:
  16. JUCH1:MOV DPTR,#PORT+1        ;DAC寄存器端口地址送DPTR
  17.       MOV A,#00H              ;初值送給累加器A
  18.       MOV R4,#2               ;設定波形的頻率
  19. UP0: MOV B,#0FFH             ;設定波形的周期
  20. UP1: MOV DPTR,#PORT          ;DAC輸入寄存器端口地址
  21.       MOVX @DPTR,A            ;送出數據
  22.       INC DPTR                ;加一,為DAC寄存器端口地址
  23.       MOVX @DPTR,A            ;啟動轉換
  24.       INC A                   ;數據加一
  25.       CJNE A,#0FFH,UP1        ;波行達到下限值時,波形上升   
  26.   MOV R2,#0FEH            ;R2←0FEH
  27. UP22:MOV DPTR,#PORT          ;DAC輸入寄存器端口地址
  28.       MOV A,R2                ;將波形上限值賦予A
  29.       MOVX @DPTR,A            ;送出數據
  30.       INC DPTR                ;加一,為DAC寄存器端口地址     
  31.   MOVX @DPTR              ;啟動轉換
  32.          DJNZ R2,UP22            ;波形一直達到上限
  33.          DJNZ B,UP1              ;達到波形周期值
  34.          DJNZ R4,UP0             ;達到波形頻值
  35.       SJMP START              ;轉移
  36. 方波子程序:
  37. JUCH2:MOV R4,#20              ;循環次數
  38. UP00:MOV B,#0FFH             ;下限值
  39. LOOP1:MOV A,#33H              ;值上限電平
  40.       MOV DPTR,#PORT          ;DAC輸入寄存器端口地址
  41.       MOVX @DPTR,A            ;送出數據
  42.       INC DPTR                ;加一,為DAC寄存器端口地址
  43.          MOVX @DPTR,A            ;啟動轉換
  44.          LCALL DELAY             ;形成方波頂寬
  45.          MOV A,#0FFH             ;置下限電平
  46.          MOV DPTR,#PORT          ;DAC輸入寄存器端口地址
  47.          MOVX @DPTR,A            ;送出數據
  48.          INC DPTR                ;加一,為DAC寄存器端口地址
  49.          MOVX @DPTR,A            ;啟動轉換
  50.          LCALL DELAY             ;形成方波底寬
  51.          DJNZ B,LOOP1            ;若未達到下限值,轉到LOOP1,;否則下移
  52.          DJNZ R4,UP00            ;若未達到循環次數,轉到UP00,否則下移
  53.          SJMP  START             ;轉移
  54. DELAY:MOV R0,#40H             ;延時程序
  55. D1:NOP
  56.          NOP
  57.          DJNZ R0,D1
  58. RET                          
  59. 鋸齒波子程序:
  60. JUCH3:MOV A,#00H              ;初值送給累加器A
  61. LOOP2:MOV B,#0FFH             ;下限值
  62. LOOP3:MOV DPTR,#PORT          ;DAC輸入寄存器端口地址
  63.          MOVX @DPTR,A            ;送出數據
  64.          INC DPTR                ;加一,為DAC寄存器端口地址
  65.          MOVX @DPTR,A            ;啟動轉換
  66.          INC A                   ;數據加一
  67.          CJNE A,#0FFH,LOOP3      ;使鋸齒波的下限達到下限值   
  68. DJNZ B,LOOP3            ;若A未達到下限值,轉到LOOP3,否則下移
  69.          LJMP START              ;轉移
  70.    正弦波子程序:
  71. JUCH4:MOV B,#00H              ;正弦波啟示
  72. LP1:MOV DPTR,#DATRO         ;DPTR←表起始地址
  73.          MOV R4,#00H             ;波形終值
  74. LP2:CLR A               ;累加器清零
  75.          MOVC A,@A+DPTR          ;查表
  76.          MOV R3,DPH              ;高8位送給R3
  77.          MOV R5,DPL              ;低8位送給R5
  78.          MOV DPTR,#PORT          ;DAC輸入寄存器端口地址
  79.          MOVX @DPTR,A            ;送出數據
  80.          INC DPTR                ;加一,為DAC寄存器端口地址
  81.          MOVX @DPTR,A            ;啟動轉換
  82.          MOV DPH,R3              ;R3送給數據指針高8位
  83.          MOV DPL,R5              ;R5送給數據指針低8位
  84.          INC DPTR                ;波形位移增量
  85.          DJNZ R4,LP2             ;達到波形設定周期
  86.          DJNZ B,LP1              ;達到波形設定頻率
  87.          LJMP START              ;轉移
  88. DATRO:DB 80H,83H,86H,89H,8DH,90H,93H,96H            ;正弦波數據
  89. DB 99H,9CH,9FH,0A2H,05AH,08AH,0ABH,0AEH
  90.       DB 0B1H,0B4H,0BFH,0BAH,0BCH,0BFH,0C2H,0C5H
  91.       DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
  92.       DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
  93.       DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
  94.       DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
  95.       DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
  96.       DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
  97.       DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
  98.       DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH
  99.       DB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH
  100.       DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
  101.       DB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
  102.       DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H
  103.       DB 96H,93H,90H,8DH,89H,86H,83H,80H
  104.       DB 80H,7CH,79H,76H,72H,6FH,6CH,69H
  105.       DB 66H,63H,60H,5DH,5AH,57H,55H,51H
  106.       DB 4EH,4CH,48H,45H,43H,40H,3DH,3AH
  107.       DB 38H,35H,33H,30H,2EH,2BH,29H,27H
  108.       DB 25H,22H,20H,1EH,1CH,1AH,18H,16H
  109.       DB 15H,13H,11H,10H,0EH,0DH,08H,0AH
  110.       DB 09H,8H,7H,6H,5H,4H,3H,2H
  111.       DB 02H,1H,0H,0H,0H,0H,0H,0H
  112.       DB 00H,0H,0H,0H,0H,0H,1H,2H
  113.       DB 02H,3H,4H,5H,6H,7H,8H,9H
  114.       DB 0AH,0BH,0DH,0EH,10H,11H,13H,15H
  115.       DB 16H,18H,1AH,1CH,1EH,20H,22H,25H
  116.       DB 27H,29H,2BH,2EH,30H,33H,35H,38H
  117.       DB 3AH,3DH,40H,43H,45H,47H,4CH,4EH
  118.       DB 51H,51H,55H,57H,5AH,5DH,60H,63H
  119.       DB 69H,6CH,6FH,72H,76H,79H,7CH,80H
  120.       END
復制代碼

完整的Word格式文檔51黑下載地址:
單片機原理發生器課程設計.doc (256 KB, 下載次數: 45)







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1