数控直流电源设计.pdf

上传人:tbuqq 文档编号:5061371 上传时间:2020-01-31 格式:PDF 页数:4 大小:136.44KB
返回 下载 相关 举报
数控直流电源设计.pdf_第1页
第1页 / 共4页
数控直流电源设计.pdf_第2页
第2页 / 共4页
数控直流电源设计.pdf_第3页
第3页 / 共4页
数控直流电源设计.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数控直流电源设计.pdf》由会员分享,可在线阅读,更多相关《数控直流电源设计.pdf(4页珍藏版)》请在三一文库上搜索。

1、数控直流电源 功能说明: 本作品采用DAC0832作为电压信号输出。DAC0832是一款采用CMOS 工艺制成的单片电 流输出型8 位数 / 模转换器。 DAC0832有三种工作方式: 不带缓冲工作方式,单缓冲工作方式, 双缓冲工作方式。因为输出电压量程为10V,VREF基准电压范围为-10V-+10V ,基准电压可 以为 5.12V,这样在DAC0832的 8 脚输出电压的分辨率为:即D/A 输入数据端每增加1,电压 增加 0.02V 。D/A 的电压输出端接放大器OP27的输入端,放大器的放大倍数为5 ,才能得到 输出电压的电压分辨率:0.02V5=0.1V 这样当调节电压的时候,以每次0

2、.1V 的梯度增加或 者降低电压。 硬件电路图 : 1波形转换与放大部分 选用 51 系列的单片机产生和控制波形。数模转换器用的是DAC0832 , 本方案中DAC0832 采用单缓冲模式。 电路如图五所示,P0 口和 DAC0832的数据口直接相连,2WR和XFER 接地, DAC 数 据寄存器处于直通状态,ILE=1 ,和连接后接P2.0 。在选中该片的地址(=0)时,写入数字量, 该数字信号就立即传送到DAC 输入寄存器,并直通至DAC 数据寄存器,经过短暂的建立时 间,即可以获得相应的模拟电压。写入操作结束,和立即变为高电平,写入的数据被输入寄 存器锁存,直到再次写入刷新。 图一波形产

3、生与转换电路 图二电流 放大电路 2键盘与数码显示部分电路如图七 图三键盘与显示电路 3稳压电源部分 电源部分输出+5V ,+15V ,-15V电压供给系统,另外还制作+5.12V直流稳压电源做 DAC0832 的 VERF 的基准电压。 软件设计与流程图 1软件介绍 软件部分采用模块化程序设计的方法编写,系统软件由主控制程序、数码显示子程序、 键盘服务子程序组成。还添加了自动扫描键盘、显示器的自动刷新、过零保护的功能。编程 中 C 函数和汇编函数相互调用。 2程序流程图如图四所示 开始 系统初始化 显示0.0 扫描键盘 + 键按下? - 键按下? 方波键按下? 锯齿波键按下 执行电压增 加子

4、程序 执行电压减 小子程序 N N N N 执行产生方波 子程序 执行产生锯齿波 子程序 Y Y Y Y 图四软件流程图 程序附录: #include #define uchar unsigned char sbit dp=P14; sbit sh=P15; void delay(unsigned int t); uchar Getkey(void); void Disp(uchar n); uchar Disptab10=0x11,0x7d,0x23,0x29,0x4d,0x89,0x81,0x3d,0x1,0x9; main( ) uchar key; char Vol1=0x00,Vol

5、2=0x00; Disp(DisptabVol2); Disp(DisptabVol1-1); P0=0x00; while(1) key=Getkey(); switch(key) case 0x01:break; case 0x02:break; case 0x04:if(Vol1=0 Vol2-; if(Vol20) Vol2=9;Vol1-; Disp(DisptabVol2); Disp(DisptabVol1-1); P0=4.3*(Vol1*10+Vol2); break; case 0x08:if(Vol1=9 Vol2+; if(Vol2=10) Vol2=0x00;Vol1

6、+; Disp(DisptabVol2); Disp(DisptabVol1-1); P0=4.3*(Vol1*10+Vol2); break; default:break; uchar Getkey(void) uchar key; P1|=0x0f; if(!(P1|0xf0) return 0x00; delay(0x20); if(!(P1|0xf0) return 0x00; key=(P1|0xf0); while(P1|0xf0); return key; void delay(unsigned int t) while(-t); void Disp(uchar n) uchar i; for(i=0;i8;i+) sh=0; if(0x80 else dp=0; sh=1; n=(n1)+1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1