赞
踩
采用51单片机作为控制器,最小系统由晶振和复位电路组成,设计语言采用汇编
具有2个功能按键,分别是加减输出电压,支持点按和长按控制
采用DAC芯片DAC0832,单片机驱动该芯片输出电压值经过运放之后接入LM317的ADJ管脚从而达到输出电压的控制
由于电源芯片的限制,电压输出范围为1.5到12V
DAC0832特点:
分辨率:DAC0832具有8位的分辨率,即可以将数字输入转换为256个不同的模拟输出级别。它能够提供精确的模拟输出信号。
双通道输出:DAC0832具有两个独立的模拟输出通道,可以同时产生两个不同的模拟输出信号。这使得它适用于需要多个模拟输出的应用。
串行接口:DAC0832通过串行接口进行通信和控制。它使用少数几个引脚(数据引脚、时钟引脚和片选引脚),可以与主控器件进行数据交换和时钟同步。
低功耗设计:DAC0832采用低功耗设计,在工作时功耗较低。它还具有自动功耗优化功能,可以在闲置状态下自动进入低功耗模式。
内部参考电压:DAC0832内部集成了参考电压,可以为模拟输出提供稳定的参考值。它还支持外部参考电压输入,以满足不同的应用需求。
输出保持功能:DAC0832具有输出保持功能,在电源投入或重启后,可以保持上一次的模拟输出值,避免输出的不确定性。
单电源供电:DAC0832可以使用单一电源(5V)进行供电,简化了电路设计和连接。
LM317芯片的特点如下:
DAC EQU 8000H ;DAC0832的地址 VOL EQU 30H ;存储输出电压值 MAX EQU 229 ;输出电压最大值 MIN EQU 5 ;输出电压最小值 CHANGE EQU 1 ;输出电压增量 ORG 0H LJMP START ORG 3H LJMP DOWN ORG 13H LJMP UP ;=============================================================== ;主程序 ;=============================================================== ORG 30H START: MOV SP,#60H SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB EA MOV VOL,#MIN ;输出电压最小值 MOV DPTR,#DAC MOV A,VOL MOVX @DPTR,A ;输出最低电压 SJMP $ ;================================================================ ;外部中断1中断服务程序 ;实现每次按键输出电压增加19.6*2.4=47.04mV ;按住键不松手则输出电压快速增加,每次循环(约514ms)增加19.6*5*2.4=235.2mV ;================================================================ UP: PUSH PSW PUSH ACC MOV A,VOL ADD A,#CHANGE ;输出增加1个字 UP4: MOV VOL,A CJNE A,#MAX,UP1 SJMP UP2 UP1: JC UP2 MOV VOL,#MAX ;输出最大电压值 UP2: MOV A,VOL MOVX @DPTR,A ;改变D/A输出电压 LCALL DELAY SETB P3.3 JB P3.3,UP3 ;按键松开则退出;否则快加。 MOV A,VOL ADD A,#5 ;输出每次增加5个字 SJMP UP4 UP3: POP ACC POP PSW RETI ;================================================================ ;外部中断0中断服务程序 ;实现每次按键输出电压减少19.6*2.4=47.04mV ;按住键不松手则输出电压快速减少,每次循环(约514ms)减少19.6*5*2.4=235.2mV ;================================================================ DOWN: PUSH PSW PUSH ACC SETB RS0 MOV A,VOL CLR C SUBB A,#CHANGE ;输出减小1个字 DOWN4: MOV VOL,A CJNE A,#MIN,DOWN1 SJMP DOWN2 DOWN1: JNC DOWN2 MOV VOL,#MIN ;输出最小电压值 DOWN2: MOV A,VOL MOVX @DPTR,A ;改变D/A输出电压 LCALL DELAY SETB P3.2 JB P3.2,DOWN3 ;按键松开则退出;否则快减。 CLR C MOV A,VOL SUBB A,#5 ;输出每次减少5个字 SJMP DOWN4 DOWN3: POP ACC POP PSW RETI ;============================================================ ;延时子程序 ;对于12MHz晶振,延时时间大约514ms ;============================================================ DELAY: MOV R5,#2 D2: MOV R6,#0 D1: MOV R7,#0 DJNZ R7,$ DJNZ R6,D1 RET END
设计文件:
链接:https://pan.baidu.com/s/1IS_aHJk1KiBo4aqLpCqqpg?pwd=s4yo
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。