单片机电压采集装置课程设计_第1页
单片机电压采集装置课程设计_第2页
单片机电压采集装置课程设计_第3页
单片机电压采集装置课程设计_第4页
单片机电压采集装置课程设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计姓名:学号:专 业: 电子科学与技术 题 目: 单片机电压采集装置 专 题: AD转换及编程实现 指导教师: 设计地点:实验楼时间:201212202012年12月

单片机课程设计任务书专业年级电科学号学生姓名任务下达日期:2012年12月20日设计日期:2012年12月1日至2012年12月20日设计题目:单片机电压采集装置设计专题题目:AD转换及编程实现设计主要内容和要求:制作单片机电压采集装置基本要求1、 模拟通道0电压采集功能在ADC0809的输入0〜5V电压,数码管实时显示被测电压值(显示精度0.001V,即显示1位整数,3位小数)。2、 指定通道电压采集功能通过模式选择按键切换到“指定通道电压采集功能”,利用+/-按键改变通道值,显示同上。3、 8通道自动循环电压采集功能制作单片机电压采集装置通过模式选择按键切换到“8通道自动循环电压采集功能”,默认通道切换时间为2秒。扩展要求1、 超限报警功能当Vi超出程序预设报警限值时,报警灯以1Hz速度闪烁显示,并显示提示符以区别上限或下限报警。2、 可修改上限和下限报警值的超限报警拨弄能可随意设置上、下限报警值(步长0.1V,默认下限为0V,上限为5V)。设置时,当下限N上限(或上限W下限)时予以提示,并拒绝接受数据。指导教师签字:摘要:此单片机电压采集装置使用AT89S52芯片和ADC0809芯片进行电压采集,实现AD转换的基本功能。,键盘电路和8个LED数码显示电路。扩展电路中包含了A/D转换电路,AD转换五种工作模式下对应要实现的功能:即模式0下完成通道0的模拟信号采集;模式1时完成指定模拟通道电压采集,按加、减(K2,K3)按键手动实现模拟通道的切换,此外,通过内部定时器T1实现报警功能,即超过上限电压4.999V时报警,同时点亮P1.1即L2发光LED小灯,低于下限电压0.000V时也实现报警功能,只是报警的频率改变,同时点亮P1.0即L1发光LED小灯;而模式2完成8通道模拟信号自动循环采集功能,通过加入内部定时器T0中断,从而实现每隔1秒通道值自动加1的功能;进入模式3的时候,需要人为设置报警上限,此程序设定报警上限为4V,而报警上限默认值为3.999V,通过按加、减(K2/K3)按键实现上限加减0.1V;模式4的时候设置报警下限电压,默认报警下限电压为1.999V,本程序中设置的报警下限电压为2V,通过加减(K2/K3)按键实现电压加减0.1V的功能,最终实现电压采集和扩展功能。关键词:AT89S52芯片、ADC0809芯片目录TOC\o"1-5"\h\z\o"CurrentDocument"1绪论 1\o"CurrentDocument"1.1系统设计方案 11.1.1系统设计原理框图 1\o"CurrentDocument"2硬件电路设计 ・3\o"CurrentDocument"2.1单片机电路 ・2\o"CurrentDocument"2.1.1单片机最小系统 ・2\o"CurrentDocument"2.1.2显示译码电路 ・2\o"CurrentDocument"A/D转换 -5\o"CurrentDocument"ADC0809转换原理 -5\o"CurrentDocument"AD转换电路 6\o"CurrentDocument"2.2.3电路设计 7\o"CurrentDocument"3软件设计 €\o"CurrentDocument"3.1设计任务 -83.1.1基本任务 -8\o"CurrentDocument"3.2程序设计 -83.3.1主程序框图 8AD信号采集 9\o"CurrentDocument"4系统调试 175总结 18参考文献: 19附录一电源印刷电路板布线图 -20\o"CurrentDocument"附录二单片机板电路原理图 -21\o"CurrentDocument"附录三单片机印刷电路板布线图 -22\o"CurrentDocument"附录四元件清单 -241绪论1.1系统设计方案本次实验要求设计电压采集装置,课程设计分设计、制作和调试三个部分。设计选题以单片机为核心,基本内容应包括单片机最小系统、键盘和LED显示电路,以及设计系统涉及的其他电路。系统硬件电路由标准电路和自制电路两部分组成。标准电路包括单片机最小系统、8个LED数码管电路和键盘电路,可根据设计需要进行配置选用。自制电路需自行设计焊接,包含标准电路不具备的其他电路。设计中采用了模数转换器,利用ADC0809型8位MOS型A/D转换器。可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,实现模拟信号到数字信号的转换。控制部分采用单片机89C52来完成。显示部分利用LED数码管显示模块,来显示采集到的电压分量。1.2.1系统设计原理框图电源2硬件电路设计系统硬件电路由标准电路和自制电路两部分组成。标准电路包括单片机最小系统、6个LED数码管电路和键盘电路,可根据设计需要进行配置选用。自制电路需自行设计焊接,包含标准电路不具备的其他电路。2.1单片机电路2.1.1单片机最小系统U.fJUiALEij.i/r^jj1j/TST'QU.fJUiALEij.i/r^jj1j/TST'Q13.jiXsFi3J.心由aj-j.fri1'ji,E-Z中奇EZV-vlfvccmiw」■皿33:1二■p.w.p:"■unAprINS.7C\J:i7■■mm?pa.i/rm『一■『INK."rFI'FFI1CPU原理图该原理图包含单片机以及外部连接译码,锁存电路端口 ,其中的ALE,REST为高电平时用来启动ADC0809.P0、P2口控制数码输出显示,P3口的P3.3、P3.4、P3.5控制按键,P1.1~P1.3控制通道选择。晶振采用12MHZ,该频率有利于提高串口的通信可靠性,同时又保证单片机有较高的运行速度。2.1.2显示译码电路LED显示电路可提供8位LED显示;可显示P1(P3)口状态;也可显示输入按键状态LED显示电路显示电路采用6位共阳极LED动态扫描显示,CD4511输出所需字形,74LS138选择字位。在动态方式中,逐个地循环地点亮各位显示器。

巳日.日日.日曰日.日■■'1 11'1 1111[/OI2J数码管显示电路显示译码电路部分由P0口或P2口输出显示。显示译码器采用CD4511芯片:输入:BCD输出:七段码74LS138芯片是用来控制显示时候的字位的,由于单片机的管脚是有限的通过使用138芯片可以避免少使用些单片机的管脚,当输入001时,译码可得10111111:输入:0〜7输出:低电平2.2A/D转换2.2.1ADC0809转换原理当单片机端的P3.3接低电平时,可以使两个非门打开(1) 当模拟量送至某一输入通道后,CPU将标识该通道编码的三位地址信号经数据线或地址线输入到ADDC、ADDB、ADDA引脚上。(2) 地址锁存允许ALE锁存地址信号,启动命令START启动A/D转换。(3) 转换开始,EOC变低电平,转换结束,EOC变为高电平。EOC可作为中断请求信号。(4) 转换结束后,可通过执行IN指令,设法在输出允许OE脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到DB一次A/D转换便完成2.2.2AD转换电路vcc1WR™5.1KCADP0.1UIN0,通道0ADCH0—1-'^6|27J11234567—8CH21 1CH3CH42CH5CH63CH72.2.2AD转换电路vcc1WR™5.1KCADP0.1UIN0,通道0ADCH0—1-'^6|27J11234567—8CH21 1CH3CH42CH5CH63CH7GND4CH15"^8CON8IC12IN-0msb2-12-2IN-12-32-4IN-22-52-6IN-32-7lsb2-8IN-4EOCIN-5ADD-AIN-6ADD-BADD-CIN-7ALEref(-)ENABLESTART,Uef+ CLOCK1621D020D119D218~D3~8~D4~15~D5~14~D6~17D7725~A0~〜24~A1~23A2k9■6p10ADCCLK转换时钟:—接单片机ALE输出经分频J言得到启动和地址锁存信号参考电压:5V-7VCCADC08092.2.3电路设计硬件资源分配T转换结束:EOC=1137404OT2F通道地址信号74L74LS02B-/INT0输出使能信号片选信号:P3.3=0ADCSDCCS—/PD7/WR输出数据数码管显示电路:用P2口:bcd码输出 P2.3〜P2.0;字位选择 cba=P2.6〜P2.4;小数点一一P2.7键盘电路:P3口低四位1号按键P3.0---模式切换2号按键P3.1---通道、报警限加3号按键P3.2--通道、报警限减4号按键P3.3--查询法,接收ad转换状态(不作为按键使用) 中断法,收ad结束中断信号ADC0809电压转换电路控制信号:/wr==p3.6 /rd==p3.7eoc==p3.3 Cs==p3.5转换通道选择地址线:CBA==P1(6-4)

3软件设计3.1设计任务3.1.1基本任务1、进行电压采集并显示3.1.2扩展任务1、指定通道采集2、 循环采集显示,默认每通道显示1秒钟。3、报警设置报警上限为4V报警下限为2V3.2程序设计3.2.1主程序框图主程序框图主程序框图〃字型码地址,通过〃字型码地址,通过P0口送字型码//字位码地址,通过P2口送字位码〃下限报警LED〃上限报警LED//ad0809地址端A,低位//ad0809地址端B,中位//ad0809地址端C,高位//按键1//按键2//按键33.3.2AD信号采集程序#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#definezxmaP0#definezwmaP2sbitlowflag=P1A0;sbithighflag=P1A1;sbitad_adda=P1A4;sbitad_addb=P1A5;sbitad_addc=P1A6;sbitkey1=P3A0;sbitkey2=P3A1;sbitkey3=P3A2;第6页sbitad_eos=P3A3;sbitspeeker=P3A4;sbitad_cs=P3A5;sbitad_wr=P3A6;sbitad_rd=P3A7;ucharad_data;ucharpdataad_start,ad_over;ucharad_td;ucharad_mode;ucharkey;uintad_high=4000;uint ad_low=2000;uchartt0=100;sbit ad_clk=P1A7;//ad0809转换结束标志,1转换完,0正在转换//蜂鸣器报警//ad0809片选,低电平有效//ad0809写入信号,锁存地址和启动ad//ad0809读出信号,通过P0口读回ad转换结果//ad采集数据〃两个片外地址,用于产生读写信号//ad采集通道//ad采集模式//ad报警上限,设置为4V//ad报警下限,设置为2V〃定时1s(10ms,需要100次)//本程序利用P1.7产生方波来给ad0808提供脉冲,/*共阴极数码管字形码,共阳极数码管取反即可*/ucharcodezixing[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};/*共阳极数码管字位码,共阴极数码管取反即可*/ucharcodeziwei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};voidtimer2int();voiddelay(uinti);voiddisp(void);voidad_change(void);voidkeyscan(void);voidkeyanswer(void);voidalarm();voidtimer0int(void);voidtimer0chengxu(void);voidtimer1int(void);voidtimer1chengxu(void);voidmain(void){timer0int();timer1int();while(1){keyscan();keyanswer();ad_change();alarm();disp();}}voidkeyscan(void){if(!key1){while(!key1)disp();key=1;F0=1;}if(!key2){while(!key2)disp();key=2;F0=1;}if(!key3){while(!key3)disp();key=3;F0=1;}}voidkeyanswer(void){if(key==1&F0==1){ad_mode++;if(ad_mode==5)ad_mode=0;}if(ad_mode==0){ad_td=0;}if(ad_mode==1){if(key==2&F0==1){ad_td++;if(ad_td==8)ad_td=0;}if(key==3&F0==1)ad_td--;if(ad_td==255)ad_td=7;}}if(ad_mode==2)TR0=1;elseTR0=0;if(ad_mode==3){if(key==2&F0==1){ad_high=ad_high+100;}if(key==3&F0==1){ad_high=ad_high-100;}}if(ad_mode==4){if(key==2&F0==1){ad_low=ad_low+100;}if(key==3&F0==1){ad_low=ad_low-100;}}F0=0;}voidtimer0int(void){TMOD=0x11;TH0=(65536-10000/1)/256;TL0=(65536-10000/1)%256;ET0=1;EA=1;TR0=0;}voidtimer0chengxu(void)interrupt1{TH0=(65536-10000/1)/256;TL0=(65536-10000/1)%256;tt0--;if(tt0==0){tt0=100;ad_td++;if(ad_td==8)ad_td=0;}}voidtimer1int(){TMOD=0x11;TH1=(65536-500/1)/256;TL1=(65536-500/1)%256;ET1=1;EA=1;TR1=0;}voidtimer1chengxu()interrupt3{uintad_dianya;if(ad_dianya<ad_low){lowflag=0;TH1=(65536-100/1)/256;TL1=(65536-100/1)%256;speeker=~speeker;}else{lowflag=~lowflag;highflag=0;TH1=(65536-5000/1)/256;TL1=(65536-5000/1)%256;speeker=~speeker;}lowflag=1;highflag=1;}voidalarm(){uintad_dianya;//uintspeaker;if(ad_dianya>ad_high|ad_dianya<ad_low){TR1=1;〃开放T1中断}elseTR1=0;〃关闭T1中断}voidad_change(void){ad_adda=0;ad_addb=0;ad_addc=0;P1=P1|(ad_td<<4);ad_cs=0;

ad_start=0x00;while(ad_eos==1)disp();ad_data=ad_over;}voiddisp(void)(uintad_dianya;ucharj,k,l,m;if(ad_mode==0lad_mode==1lad_mode==2){ad_dianya=ad_data*19.60784;}if(ad_mode==3){ad_dianya=ad_high;}if(ad_mode==4){ad_dianya=ad_low;}j=ad_dianya/1000;k=ad_dianya%1000/100;l=ad_dianya%100/10;m=ad_dianya%10;delay(1);zxma=0xFF;delay(1);zxma=0xFF;delay(1);zxma=0xFF;delay(1);zxma=0xFF;zwma=~ziwei[2];zxma=~zixing[ad_td];zwma=~ziwei[4];zwma=〜zwma=~ziwei[4];zwma=〜ziwei[5];zwma=~ziwei[6];zwma=〜ziwei[7];}voiddelay(uinti){unsignedintj,k;for(j=0;j<i;j++)for(k=0;k<121;k++);zxma=~zixing[j]&0x7f;zxma=〜zixing[k];zxma=〜zixing[l];zxma=〜zixing[m];delay(1);zxma=0xFF;delay(1);zxma=0xFF;delay(1);zxma=0xFF;delay(1);zxma=0xFF;voidtimer2int(){C_T2=0;RCAP2H=(65536-100)/256;RCAP2L=(65536-100)%256;EA=1;ET2=1;TR2=1;}voidtimer2pro(void)interrupt5using0 {TF2=0;ad_clk=~ad_clk;}4系统调试硬件焊接分为单片机板和扩展版两部分。在焊接单片机板的时候出现过虚焊和漏焊的现象,再其次就是在焊接扩展板的时候,自己将排阵竟然全部焊接反了,由于自己的疏忽,导致杜邦线无法连接。然后自己又逐一将排阵全部焊接了一遍,再者就是电路板的布局问题,由于自己是第一次走线,导致板子背面的走线很不光滑而且混乱,没有秩序,但最终在自己的努力下实现了功能。由于自己曾经掌握一些简单的汇编语言,例如VB,C,C++等汇编语言,所以开始的时候总想将汇编语言写成C语言的格式,导致程序频频出现问题。而且由于自己起初对KEILC软件不是非常了解,所以很多时候出现问题自己不会改写。但最终在老师和同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论