欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于avr单片机的二极管参数测试仪制作本科学位论文.docx

    • 资源ID:17998266       资源大小:642.62KB        全文页数:24页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于avr单片机的二极管参数测试仪制作本科学位论文.docx

    1、基于avr单片机的二极管参数测试仪制作本科学位论文 实训(论文)说明书题 目:基于ATmega16单片机的 二极管参数测试仪的制作 系 别:机械电子工程系 专 业:机械电子工程 指导老师: 学生姓名: 学 号: 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2013年 5 月 27日摘 要 本次设计的二极管参数测试仪,采用ATmega16单片机作为二极管的检测和控制核心;采用串行口通信数模转换芯片TLC5615,达到用AD采集方式检测二极管的各项参数。该设计电路结构简单、可靠性高,各种信息一目了,搭建了有好的操作界面。关键词:单片机;正向压降;二极管Abstract The

    2、design of the diode parameter tester, using ATmega16 microcontroller as the diode detection and control of the core; using serial port communication digital-analog conversion chip TLC5615, reached with the AD acquisition mode detector diode parameters. The design is simple circuit structure, high re

    3、liability, a variety of information at a glance, to build a good user interface.Key words:MCU; forward voltage drop; diode目 录引言 - 1 -1.1 要求 - 1 -2 恒流源系统 - 1 -2.1 恒流源方案一 - 1 -2.2恒流源方案二 - 2 -3参数检测的具体设计与实现 - 3 -3.1 核心芯片 - 3 -3.1.1 ATmega16 - 3 -3.2 电压采集电路设计方案 - 4 -3.3 电源系统 - 5 -5 系统性能测试 - 6 -6 结论 - 6 -

    4、谢 辞 - 7 -参考文献 - 8 -附 录 - 9 -引言 随着电子技术的飞速发展,二极管成为目前使用最广泛的一种电子元器件,该装置具有体积小、功耗低、功能强、成本低等特点。在军事、民用及科学研究等领域得到了广泛的应用。单片机以其强大的控制能力为实现这一愿望提供了切实可行的手段。本设计二极管参数测试仪使用ATmega16单片机开发板和一些简单的外围电路作为主要驱动装置,用LCD5110显示二极管参数。1 设计任务设计一个二极管参数测试仪。1.1 要求1、可以测量二极管的正向压降。2、可以列表显示二极管的正向伏安特性。3、可以设置二极管两端电流,然后检测二极管导通特性。2 恒流源系统二极管参数

    5、测试需要有一个稳定的电流源给二极管输出电流,然后再通过检测电路采集二极管两端电压值。 2.1 恒流源方案一 利用单片机的PWM功能输出PWM波,然后经过二阶滤波转换成稳定的电压值,再经过一个V-I转换电路将电压转成电流供给二极管。这样通过软件改变PWM波的占空比就可调节输入电流。对应电路如图2.1图2.1 PWM方式恒流源电路图2.2恒流源方案二利用独立的DA芯片能更快速精确的改变输出电压,通过单片机传输设定电压数据给DA芯片,输出电压再经过V-I转换为电流给二极管。这样成本略高,但性能强劲。相应电路如图2.2。图2.3为V-I转换电路图。图2.2 DA转换电路图 图2.3 V-I转换电路图

    6、方案一成本低,电路简单。但是经过试验测试,电压变化不灵敏,失真度太大,不符合要求,而方案二虽然电路略复杂,但是反应快,调压精度高,故采用方案二。3参数检测的具体设计与实现3.1 核心芯片3.1.1 ATmega16为ATMEL所生产的一种低功耗、高性能RCIS 8 位微控制器,具有8K在系统可编程Flash存储器,引脚如图3.1.1。其主要功能列举如下:1、拥有灵巧的8位CPU和在系统可编程Flash2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)3、内部程序存储器(ROM)为16KB4、内部数据存储器(RAM)为1KB5、32个可编程I O6、内部10位精度AD转换器图3.1.1

    7、单片机引脚图3.1.2 TLC5615TLC5615 为美国德州仪器公司1999 年推出的产品,是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把 DAC 寄存器复位至全零。性能比早期电流型输出的 DAC 要好。只需要通过 3 根串行总线就可以完成 10 位数据的串行输入, 易于和工业标准的微处理器或微控制器(单片机) 接口, 适用于电池供电的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。如图3.1.2 图3.1.2 TLC5615功能图 TLC5615有两种工作方式: (A)16 位移位寄存器分为高 4 位虚拟位、低两位填充位

    8、以及 10位有效位。在单片 TLC5615 工作时,只需要向 16 位移位寄存器按先后输入 10位有效位和低 2 位填充位, 2 位填充位数据任意,这是第一种方式,即 12 位数据序列。 (B)第二种方式为级联方式, 即 16 位数据列,可以将本片的 DOU T 接到下一片的 DIN , 需要向 16 位移位寄存器按先后输入高 4 位虚拟位、10 位有效位和低 2 位填充位, 由于增加了高 4 位虚拟位, 所以需要 16 个时钟脉冲。3.2 电压采集电路设计方案电压采集我选择利用单片机内部的10位AD转换器。但是设计要求精度较高,实际使用时发现电压测得值浮动很大,故需要加入一定的去噪声电路和抗

    9、干扰电路。由此我设计了模拟输入电路如图3.2。 图3.2 模拟电压输入电路图电压采集点用一个电压跟随器可以很好的加大输入阻抗和减小输出阻抗,在单片机的AD检测输入IO还必须加入二阶滤波,保证电压的稳定。除了二极管两端电压还需要测量二极管的电流,在此我用了一个10欧姆的电阻作采样电阻与二极管串联,采样电阻两端电压,然后根据I=U/R就可以计算出流过二极管的电流,从而得出二极管的参数,其结构如图3.3图3.2 电压采集电路图3.3 电源系统利用单片机内部的AD转换器需要提供一个基准参考电压。我用的是单片机的内部基准电压。基准电压的稳定决定了AD转换的精准度,因此必须保证单片机电压的稳定。我原来是用

    10、220V市电转5V供给给单片机,但是市电波纹太大,导致单片机电压不稳,严重影响的AD数据的精度。我发现万用表都是用9V的干电池供给,应该比较稳定,于是我也利用9V干电池给系统的放大器供电(采用的是LM358,LM324非轨道型放大器,这类放大器的最大输出电压为VCC-1,所有在这里用9V电压给放大器供电)然后9V电压经过一个LM2576开关型稳压器电路给单片机供电。经测试电压相当稳定,用万用表已经检测不到电压的波动。故采用此方案,9V-5V电路如图3.3。图3.3稳压电路图4 显示和按键电路由于二极管参数测量仪需要显示和输入的内容比较少,要求功耗较低,所有采用LCD51101.5寸液晶屏作为显

    11、示,显示效果清晰且不需要背光灯。按键采用3个独立式的按键。5 系统性能测试为了保证电路万无一失, 在制作完成后,我用二极管1N4007作了测试实验,实验数据如表1表表1实验数据表经过多次实验,数据相差均不超过1%,故认为方案可行。6 结论采用单一单片机结构,用软件商的多任务结构是系统同时去执行多个操作,提高了CPU得利用率和系统的灵活性。该设计具有结构轻巧、操作简单、维护方便、成本低、可靠性高等优点,有一定得开发利用前景。谢 辞 在本次实训中感谢朱老师在制作过程中对我们的指导和帮助!参考文献1 朱清慧,张凤蕊,翟天蒿,王志奎.电子线路设计、制版与仿真M.北京:清华大学出版社,2008.9:15

    12、1177.2 龚淑秋,李忠波.电子技术(非电类专业)M.北京:机械工业出版社,2010.7:206259 附 录单片机程序#include #include #include lcd5110.h#define DAPORT PORTB#define DADDR DDRB#define CLK 6#define CS 5#define DIN 7volatile uint16_t V1,V2,V3,V4,V5,I1,I2,I3,I4,I5,pwm_v;volatile uint8_t Trg,Cont,pwm_ih,pwm_il,a=1,b=1;/=读键值函数y=void KeyRead( vo

    13、id ) unsigned char ReadData = PIND0xff; / 1 Trg = ReadData & (ReadData Cont); / 2 Cont = ReadData; / 3/=DA电?压1输?出?=void DA_Conver(uint16_t DAValue) uint8_t i; DAValue = 6; SETBIT(DADDR,CLK); SETBIT(DADDR,CS); SETBIT(DADDR,DIN); CLEARBIT(DAPORT,CS); / 片?选?DA芯?片? CLEARBIT(DAPORT,CLK); / 在以?下?12个?时钟周期内

    14、,每?当在上?升y沿?的? / 数y据Y被?锁?存?,形?成DA输?出?。在前10个?时钟 for(i = 0; i 12; i+) / 内输?入?的?是?10位?DA数y据Y,?后两?个?时钟周期 / 为a填?充?字?节。 if(DAValue & 0x8000) SETBIT(DAPORT,DIN); else CLEARBIT(DAPORT,DIN); SETBIT(DAPORT,CLK); / DAValue = 1; / CLEARBIT(DAPORT,CLK); SETBIT(DAPORT,CS); / CS的?上?升y沿?和下?降沿?只?有D在clk为a低的?时候 CLEARBI

    15、T(DAPORT,CLK); / 才?有D效/=单通道AD输?入?0 差?分?输?入?1,单位?mV=uint16_t adc_calc(uint8_t k,uint8_t a) uint16_t value=0; float vtemp; CLEARBIT(DDRA,7); CLEARBIT(PORTA,7); ADCSRA = 0x00; /禁?止1AD转a换? if(k) ADMUX = 0xd0; else ADMUX= 0xc0|a; SFIOR |= 0x00; ACSR = 0x80; /禁?止1模拟a比较?器 ADCSRA = 0xC7; while(!(ADCSRA & (1

    16、ADIF); value=ADCL; /首先读低位? value=(ADCH0x200) /负o数y要a变?换?,?正y数y不?用? value=value+1; /变?换?成16位?无T符?号?整?数y value&=0x03FF; if(value=0x200) value=512; vtemp=(float)(value*5); else vtemp=(float)(value*2.5); value=(uint16_t)vtemp; ADCSRA|=1ADIF; ADCSRA=0x00; return value;/=AD多次?测a量?求平?均值=uint16_t adc_diode(

    17、uint8_t k,uint8_t a) uint8_t i; uint16_t temp=0; adc_calc(k,a); for(i=0;i50;i+) temp=adc_calc(k,a)+temp; temp=temp/i; return temp;/=显?示?函数y=void display(uint16_t i,uint16_t j,uint8_t k) uint8_t a,b,c,d; j=adc_diode(0,0); /单位?是?0.1mA if(j11) j=j+(j-11)/11; a=j/100+0x30; b=j%100/10+0x30; c=j%10+0x30;

    18、LCD_set_XY(48,k); if(a!=0X30) LCD_write_char(a); else LCD_write_char( ); LCD_write_char(b); LCD_write_char(.); LCD_write_char(c); a=i/1000+0x30; b=i%1000/100+0x30; c=i%1000%100/10+0x30; d=i%10+0x30; LCD_set_XY(12,k); if(a!=0X30) LCD_write_char(a); else LCD_write_char( ); LCD_write_char(b); LCD_write

    19、_char(c); LCD_write_char(d); /=PWM=void StartPWM(uint16_t value) /单位?mA,?参?数y是?输?出?电?流 TCCR1B = 0x00;/停止1定时器 TIMSK |= 0x00;/中D断?允许 TCNT1 = 0x0000;/初?始?值 OCR1A = 0x1F3F;/匹配?A值 OCR1B = value*16;/匹配?B值 ICR1 = 0xffff;/输?入?捕?捉?匹配?值 TCCR1A = 0x2F; TCCR1B = 0x19;/启?动定时器void PWM_VI(uint16_t VI) /mV单位?设定值 ui

    20、nt16_t temp,pwm,i,temp1; DA_Conver(256); for(i=0;i5;i+) temp1=adc_diode(0,0); temp=adc_diode(0,0); if (VItemp1) pwm=1; while(temp!=VI) DA_Conver(pwm+); for(i=0;i5;i+) temp=adc_diode(0,0); if(pwm=512) return; else pwm=512; while(temp!=VI) DA_Conver(pwm-); for(i=0;i5;i+) temp=adc_diode(0,0); if(pwm=25

    21、6) return; void reset() asm( cli ); asm( clr r30 ); asm( clr r31 ); asm( jmp 0 ); /=主函数y=void main(void) uint8_t i; LCD_init();/初?始?化液o晶 CLEARBIT(DDRD,0); CLEARBIT(DDRD,1); CLEARBIT(DDRD,2); SETBIT(DDRD,4); SETBIT(PORTD,0); SETBIT(PORTD,1); SETBIT(PORTD,2); LCD_write_chinese_string(5,0,12,6,0,0,0);

    22、LCD_write_chinese_string(36,2,12,1,6,0,0); LCD_write_chinese_string(5,4,12,6,7,0,0); while(adc_diode(0,0)=1); DA_Conver(50); LCD_clear(); LCD_write_chinese_string(5,0,12,6,13,0,1); LCD_write_chinese_string(5,2,12,6,19,0,0); while(1) display(V1,I1,5); _delay_ms(50);KeyRead(); if (Trg&0x01) LCD_clear(

    23、); if(a=1) LCD_write_chinese_string(5,0,12,6,13,0,0); LCD_write_chinese_string(5,2,12,6,19,0,1); a=0; else LCD_write_chinese_string(5,0,12,6,13,0,1); LCD_write_chinese_string(5,2,12,6,19,0,0); a=1; if (Trg&0x02) if(a) LCD_clear(); LCD_write_english_string(12,0,U/mV I/mA); DA_Conver(100);_delay_ms(10

    24、0); for(i=0;i30;i+) display(V1,I1,1); DA_Conver(175);_delay_ms(100); for(i=0;i30;i+) display(V2,I2,2); DA_Conver(250);_delay_ms(100); for(i=0;i30;i+) display(V3,I3,3); DA_Conver(325);_delay_ms(100); for(i=0;i30;i+) display(V4,I4,4); DA_Conver(400);_delay_ms(100); for(i=0;i30;i+) display(V5,I5,5); b=

    25、0; KeyRead(); while(!(Trg&0x04) if(Trg&0x02) if (b) LCD_clear(); LCD_write_english_string(12,0,U/mV I/mA); DA_Conver(100);_delay_ms(100); for(i=0;i30;i+) display(V1,I1,1); DA_Conver(175);_delay_ms(100); for(i=0;i30;i+) display(V2,I2,2); DA_Conver(250);_delay_ms(100); for(i=0;i30;i+) display(V3,I3,3); DA_Conver(325);_delay_ms(100); for(i=0;i30;i+) display(V4,I4,4); DA_Conver(400);_delay_ms(100); for(i=0;i30;i+) display(V5,I5,5); b=0; else LCD_clear(); Paint_line(5,0,5,43,1


    注意事项

    本文(基于avr单片机的二极管参数测试仪制作本科学位论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开