




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数控直流电流源,成员:,一、任务,设计并制作数控直流电流源。输入交流200240v,50hz;输出直流电压10v。其原理示意图如下图所示。,二、要求,1 基本要求 (1)输出电流范围:200ma2000ma; (2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值给定值的1+10 ma; (3)具有“+”、“-”步进调整功能,步进10ma; (4)改变负载电阻,输出电压在10v以内变化时,要求输出电流变化的绝对值输出电流值的1+10 ma; (5)纹波电流2ma; (6)自制电源。,2 发挥部分 (1)输出电流范围为20ma2000ma,步进1ma; (2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值测量值的0.1+3个字; (3)改变负载电阻,输出电压在10v以内变化时,要求输出电流变化的绝对值输出电流值的0.1+1 ma; (4)纹波电流0.2ma; (5)其他。,系统方案框图,单元电路设计,1 压控电流源单元电路设计 2 s类功率放大器电路设计 3 adc dac电路,1.压控电流源单元电路设计,压控电流源的负反馈放大以一个精密运放op07构成一个同相放大器,引入深度的电流负反馈,从而稳定输出到负载的电流。运放正常工作于同相放大状态时,由运放虚短的原理可知: 取样电阻上的电压: u13 = uin 所以: i13=u13/r13=u13/r13(1) 又因op07运放的输入电阻较高,运放的反相端输入电流可认为零。所以有 il=uin / r20(2) 只要取样电阻r13使用高精度,低温漂电阻。则负载电阻上的电流il正比于uin,可以用uin精确的控制输出电流了。 因此,只要选用的扩流电路性能比较好,输出电流的精度完全取决于取样电阻的精度。,2 s类功率放大器电路设计,s类功放电路原理图,工作原理:,s类功放电路的核心是一片带负载能力非常高的电流驱动放大器,它与负载rl之间通过电桥耦合。 假设放大器a2的开环增益(open loop gain)接近无穷大,那么a、b点之间的电位将会相同(极度接近),用公式表示为: i2*r1=i3*r3(4) i0*r2=i4*r4(5) 若a2的输入性能近似于理想运放的性能,即虚断(输入阻抗无穷大),则 i3=i4 (6) 可得: i2=(r2*r3)*i0/(r1*r4) (7),又因为电桥平衡时有: r2*r3 =r1*r4 (8) 所以 i2=i0 故此: i1=0 根据以上推导,说明当s类功放电路正常工作以后,前级电路工作在空载状态,负载所需电流完全由后级的电流驱动放大器提供。这样,电路对前级压控电流源的负载要求就不至于很高,大大简化了设计的难度,这也是本电路的特色之所在。,s类功率放大器电路图:,3 adc dac电路设计,d/a电路以采用max531,使用其内部自带的2.048v基准源。其电路原图如图7所示。d/a转换的分辨率为: vdvref / (212) = 2048 / 40960.5mv 加在1欧的取样电阻上是,就可以输出分辨率为0.5ma的电流。 a/d电路采用max1241,与max531使用同一个基准源。因此,a/d的分辨率为0.5mv,当取样电阻为1欧时,测量电流的分辨率为0.5ma。因为max1241的转换精度很高(达到1lsb),因此,该a/d电路完全可以满足题目的扩展要求2。,adc、dac模块原理图:,系统主程序思路,矩阵键盘硬件连接,扫描原理,将行线所接的i/o口作为输出端,列线所接的i/o口作为输入端。 1)、判断键盘中是否有按键按下。将全部行线置低电平输出,然后读四根输入列线的状态。只要有低电平出现,则说明有键按下(实际编程时,考虑按键的消抖)。如读到的都是高电平,则表示无键按下。 2)、判断闭合键所在位置。在确认有键按下后,即可进入确定具体哪个键按下的过程。其思路是:依次将4根行线分别置为低电平,即在某根行线置为低电平时,其余行线为高电平,在确定某根行线置为低电平后,再逐列检查各列线的电平状态,若某列为低电平,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 3)、键盘的编码,即对各个按键进行编号。,矩阵键盘程序,#include #include #include #include #define uchar unsigned char #define uint unsigned int typedef unsigned char int8u; void delay(uchar dly_t) for(;dly_t0;dly_t-) _asm(nop); void delay_ms(uchar ms) int dly_i,dly_j; if (ms1) ms=1; for(dly_i=0;dly_ims;dly_i+) for(dly_j=0;dly_j=2770;dly_j+); ,uchar keyscanf(void) uchar value; int8u keyport; keyport=0xf0; if(keyport!=0xf0) delay_ms(10); if(keyport!=0xf0) keyport=0xfe; if(keyport!=0xfe) value=keyport ,keyport=0xfb; if(keyport!=0xfb) value=keyport ,lcd1602程序,#include /#include /#include /#include #include “keyscan.h“ #define rs porte_pe4 #define rw porte_pe3 #define en porte_pe2 #define rs_clr rs=0 #define rs_set rs=1 #define rw_clr rw=0 #define rw_set rw=1 #define en_clr en=0 #define en_set en=1 #define uchar unsigned char #define uint unsigned int,void lcd_check_busy(void) uchar temp=1; delay(255); rs_clr; delay(255); rw_set; delay(255); while(temp) en_set; delay(255); ddra=0x00; delay(255); temp=porta ,void lcd_write_com(uchar com) lcd_check_busy(); porta=com; delay(255); rs_set; delay(255); rw_set; delay(255); en_set; delay(255); delay(255); en_set; delay(255); /* void lcd_write_data(uchar data) lcd_check_busy(); delay_ms(1); porta=data; rs_set; delay_ms(1); rw_clr; delay_ms(1); en_set; delay_ms(1); en_clr; delay_ms(1); */,void lcd_init(void) ddra = 0xff; porta = 0x00; ddre=0xff; porte = 0xff; delay_ms(12); lcd_write_com(0x38); delay_ms(4); lcd_write_com(0x38); delay_ms(4); lcd_write_com(0x38); delay_ms(4); lcd_write_com(0x38); lcd_write_com(0x08); / delay(255); lcd_write_com(0x01); / delay(10); lcd_write_com(0x06); / delay(255); lcd_write_com(0x0c); / delay(50); ,void lcd_write_char(uchar row,uchar line,uint num,uchar *s) uchar lcd_i,lcd_t; if (row=1) row=0x80+line; else row=0xc0+line; lcd_write_com(row); rs_set; delay(255); rw_clr; delay(255); for(lcd_i=0;lcd_inum;lcd_i+) lcd_t=*s; delay(255); porta=lcd_t; delay(255); en_set; delay(255); en_clr; delay(255); s+; ,adc-max1240,#define ad_cs porta_pa5 #define ad_dout porta_pa6 unsigned char data_out12; unsigned char adc(void) /max1240 ad_cs=1; ad_dout=0; ad_sclk=0; _asm(nop); _asm(nop); _asm(nop); ad_cs=0;,check:if(ad_dout=1) int ad_i; for(ad_i=11;ad_i=0;ad_i-) ad_sclk=1; _asm(nop); _asm(nop); _asm(nop); ad_sclk=0; data_outad_i=ad_dout; _asm(nop); _asm(nop); _asm(nop); else ; goto check; return data_out11; ,dac-max531,#include #include #include #include #define da_din porta_pa0 #define da_clr porta_pa1 #defi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五年级英语下册 Module 1 Unit 2 She didn't have a television教学设计设计(pdf) 外研版(三起)
- 人教部编版五年级上册16 太阳教案及反思
- 会议签到表(模版)
- 初中语文口语交际 讨论教学设计
- 人教部编版七年级下册写作 文从字顺教学设计及反思
- 五年级信息技术下册 第三课 节约用电1教学设计 龙教版
- 人教版地理七上第五章《发展与合作》同步教学设计
- 2024吉林水投集团公司年轻干部竞聘上岗35个岗位笔试参考题库附带答案详解
- 2024华润集团|总部办公室/人力资源部/财务部岗位公开招聘若干人笔试参考题库附带答案详解
- 初中语文人教部编版九年级上册周总理你在哪里教学设计
- 预应力混凝土结构设计原理.pptx
- 钻井防卡手册
- 来料检验指导书铝型材
- 《中国当代文学专题》期末复习题及答案
- MDK5软件入门
- GB∕T 9441-2021 球墨铸铁金相检验
- 工程项目监理常用台账记录表格(最新整理)
- 质量保证体系调查表
- 双胎妊娠指南ppt课件
- Unit 4 Globalization(课堂PPT)
- SMC压力开关-ISE30中文说明书
评论
0/150
提交评论