8051和DAC0832同时输出两路正弦波,相位相差180度。用汇编语言编写
时间: 2024-02-01 18:17:03 浏览: 137
以下是8051和DAC0832输出两路正弦波,相位相差180度的汇编代码:
```
ORG 0H
MOV DPTR, #LUT1 ;地址指向正弦波LUT1
MOV R7, #0H ;初始化计数器
MOV R6, #0H ;初始化计数器
LOOP:
MOV A, R7 ;将计数器值存入累加器
ADD A, R6 ;加上偏移量
MOV R0, A ;将结果存入R0
MOV A, R0 ;将R0中的值存入累加器
MOV DPH, #0H ;高地址为0
MOV DPL, A ;低地址为累加器值
MOVX A, @DPTR ;取LUT1中的正弦值
MOV P2, A ;输出到DAC0832的DA口
MOV A, R0 ;将R0中的值存入累加器
ADD A, #128 ;加上偏移量
MOV R0, A ;将结果存入R0
MOV A, R0 ;将R0中的值存入累加器
MOV DPH, #0H ;高地址为0
MOV DPL, A ;低地址为累加器值
MOVX A, @DPTR ;取LUT1中的正弦值
MOV P2, A ;输出到DAC0832的DA口
INC R7 ;计数器加1
CJNE R7, #256, LOOP ;计数器为256时跳出
LUT1:
DB 128, 131, 134, 137, 140, 143, 146, 149 ;正弦波LUT1
DB 152, 155, 158, 161, 164, 167, 170, 173
DB 176, 179, 182, 185, 188, 191, 194, 197
DB 200, 203, 205, 208, 211, 214, 217, 219
DB 222, 225, 227, 230, 233, 235, 238, 240
DB 243, 245, 247, 250, 252, 254, 256, 258
DB 260, 262, 264, 266, 268, 270, 271, 273
DB 275, 276, 278, 279, 281, 282, 283, 285
DB 286, 287, 288, 289, 290, 291, 292, 293
DB 294, 295, 296, 296, 297, 298, 298, 299
DB 299, 299, 300, 300, 300, 300, 300, 300
DB 300, 300, 300, 300, 299, 299, 299, 298
DB 298, 297, 296, 296, 295, 294, 293, 292
DB 291, 290, 289, 288, 287, 286, 285, 283
DB 282, 281, 279, 278, 276, 275, 273, 271
DB 270, 268, 266, 264, 262, 260, 258, 256
DB 254, 252, 250, 247, 245, 243, 240, 238
DB 235, 233, 230, 227, 225, 222, 219, 217
DB 214, 211, 208, 205, 203, 200, 197, 194
DB 191, 188, 185, 182, 179, 176, 173, 170
DB 167, 164, 161, 158, 155, 152, 149, 146
DB 143, 140, 137, 134, 131, 128, 125, 122
DB 119, 116, 113, 110, 107, 104, 101, 98
DB 95, 92, 89, 86, 83, 80, 77, 74
DB 71, 68, 66, 63, 60, 57, 54, 52
DB 49, 46, 44, 41, 38, 36, 33, 31
DB 28, 26, 24, 21, 19, 17, 14, 12
DB 10, 8, 6, 4, 2, 0, 0, 0
DB 0, 0, 0, 0, 0, 0, 2, 4
DB 6, 8, 10, 12, 14, 17, 19, 21
DB 24, 26, 28, 31, 33, 36, 38, 41
DB 44, 46, 49, 52, 54, 57, 60, 63
DB 66, 68, 71, 74, 77, 80, 83, 86
DB 89, 92, 95, 98, 101, 104, 107, 110
DB 113, 116, 119, 122, 125
END
```
其中,LUT1是一个存储正弦波数据的表格,每个数据表示正弦波的一个采样值,通过循环计数并从表格中取出对应的数据,再输出到DAC0832的DA口,从而实现两路相位差为180度的正弦波输出。
阅读全文