这是51单片机中基于DAC0832的三角波实验,做的有些粗糙别介意
1、掌握D/A转换与单片机的接口方法。 2、了解芯片DAC 0832转换性能及编程方法。
二、实验内容 1、 编写程序,使用DAC0832进行数模转换,产生三角波。并回答思考题。 
图5-1 D/A转换原理图  图5-2 输出为锯齿波
思考题: 1、读出此时三角波的周期,并说明(计算)此周期的由来。 (或者, 输出周期为1.25ms的锯齿波 )

单片机汇编语言源程序:
ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#7FFFH TRI: MOV A,#00H UP: MOVX @DPTR,A INC A ; CJNE A,#0FFH,UP DOWN: MOVX @DPTR,A DEC A CJNE A,#00H,DOWN AJMP UP END 
2、修改程序,使输出的三角波幅值保持不变,频率变小、变大。 频率变小: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#0BFFFH ;向DAC0832输出的地址 TRI: MOV A,#00H ;初始值入A UP: MOVX @DPTR,A ;正向增长,DA转换输出 INC A ;+1 NOP ;空指令延长周期 NOP NOP CJNE A,#0FFH,UP ;输出未到#FFH的值,继续增长 DOWN: MOVX @DPTR,A DEC A ;-1 NOP ;空指令延长周期 NOP NOP CJNE A,#00H,DOWN AJMP UP END 
频率变大: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#0BFFFH ;向DAC0832输出的地址 TRI: MOV A,#00H ;初始值入A UP: MOVX @DPTR,A ;正向增长,DA转换输出 ADD A,#3 ;步长为3 CJNE A,#0FFH,UP ;输出未到#FFH的值,继续增长 DOWN: MOVX @DPTR,A SUBB A,#3 ;步长为3 CJNE A,#00H,DOWN AJMP UP END 
3、修改程序,使输出的三角波幅值和频率同时改变。 (注意步长与终值的) 周期变大且幅值变小: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#0BFFFH ;向DAC0832输出的地址 TRI: MOV A,#00H ;初始值入A UP: MOVX @DPTR,A ;正向增长,DA转换输出 INC A ;+1 NOP ;空指令延长周期 NOP NOP CJNE A,#0A0H,UP ;输出未到#FFH的值,继续增长 DOWN: MOVX @DPTR,A DEC A ;-1 NOP ;空指令延长周期 NOP NOP CJNE A,#00H,DOWN AJMP UP END 
以上的Word格式文档51黑下载地址:
单片机基于三角波的实验.docx
(1.46 MB, 下载次数: 52)
|