单片机课程设计(论文)单片机电压采集装置.doc

上传人:土8路 文档编号:9965397 上传时间:2021-04-07 格式:DOC 页数:32 大小:1.83MB
返回 下载 相关 举报
单片机课程设计(论文)单片机电压采集装置.doc_第1页
第1页 / 共32页
单片机课程设计(论文)单片机电压采集装置.doc_第2页
第2页 / 共32页
单片机课程设计(论文)单片机电压采集装置.doc_第3页
第3页 / 共32页
单片机课程设计(论文)单片机电压采集装置.doc_第4页
第4页 / 共32页
单片机课程设计(论文)单片机电压采集装置.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《单片机课程设计(论文)单片机电压采集装置.doc》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)单片机电压采集装置.doc(32页珍藏版)》请在三一文库上搜索。

1、中国矿业大学徐海学院单片机课程设计姓 名: 学 号: 专 业: 题 目: 单片机电压采集装置 专 题: 单片机系统设计 指导教师: 设计地点: 时 间: 2011 年 4月单片机课程设计任务书专业年级 学号 学生姓名 任务下达日期: 年 月 日设计日期: 年月日 至 年 月日设计题目: 单片机电压采集装置设计专题题目:单片机系统设计设计主要内容: 制作单片机电压采集装置设计要求:1、基本要求制作单片机电压采集装置电压采集功能 在ADC0809的0通道输入05V电压,实时显示被测电压值(显示精度0.001V,即显示1位整数,3位小数)。2、扩展要求指定通道采集 默认采集通道为0,按2:通道1,按

2、3:通道1。、循环采集显示 ,默认每通道显示1秒钟。、报警设置 设置报警上限、下限。超过上线或者低于下线时LED会亮。指导教师签字:摘要本设计介绍了基于用89S52单片机和AD0809进行电压采集的基本电路。系统硬件电路是由主板电路和扩展板电路两部分组成。主板电路包括单片机的最小系统,键盘电路和8个LED数码显示电路,这部分电路已制成电路板。扩展电路中包含了A/D转换电路,单片机电压采集电路,通过调节电位器来改变输入的电压值,在主板电路的数码管中显示出所采集的电压值,该部分电路的布线部分是由工作自己手工完成的。通过程序调试各个部分的功能,运用C语言编程,完成各功能模块,通过下载软件下载到单片机

3、芯片中,最终实现电压采集功能和扩展功能。关 键 词:单片机 、 ADC0809芯片 、 C语言编程 、 模数转换目录1 绪论11.1 系统概述11.1.1 设计性质、目的、任务11.2 系统设计方案11.2.1 系统设计原理框图12 硬件电路设计22.1 直流稳压电源22.2 单片机电路22.2.1 单片机电路板22.2.2 单片机最小系统32.2.3 单片机的复位电路32.2.4 开关电路42.2.5 显示译码电路42.3 A/D转换62.3.1 ADC0809内部结构62.3.2 ADC0809转换原理72.3.3 AD转换电路 72.3.4 电路设计8 2.3.5采集数据和对应电压的转换

4、83 软件设计93.1 设计任务93.1.1 基本任务93.1.2 扩展任务93.2 按键定义及显示标志93.3 程序设计 93.3.1 主程序框图 93.3.2 正常采集 103.3.3 循环采集 113.3.4 指定采集 123.3.5 报警设置 124 系统调试 144.1 硬件部分 144.2 软件部分 145 总结 15参考文献: 15附录一 电源印刷电路板布线图16附录二 单片机板电路原理图17附录三 单片机印刷电路板布线图18 附录四 ADC0809与单片机连接图19附录五 元件清单20附录六 程序代码221 绪论1.1系统概述1.1.1设计性质、目的、任务单片机系统设计是在学习

5、模拟电子技术、数字电子技术、单片机原理及应用等相关理论课程之后,所设置的重要的综合性实践教学环节,课程的任务是通过选题的设计、安装和调试,巩固已学的理论知识,综合应用所学知识,进行电子系统的设计,从而培养工程实践能力、创新能力,培养严肃认真的工作作风和科学态度。通过查阅资料、选定方案、设计电路、安装调试、写报告等过程,得到一次科学研究工作的启蒙训练,也为以后利用单片机开发电子产品奠定坚实的基础。1.2系统设计方案本次实验要求设计电压采集装置,课程设计分设计、制作和调试三个部分。设计选题以单片机为核心,基本内容应包括单片机最小系统、键盘和LED显示电路,以及设计系统涉及的其他电路。系统硬件电路由

6、标准电路和自制电路两部分组成。标准电路包括单片机最小系统、6个LED数码管电路和键盘电路,这部分电路已制成电路板,可根据设计需要进行配置选用。自制电路需自行设计焊接,包含标准电路不具备的其他电路。设计中采用了模数转换器,利用AD0809型8位MOS型A/D转换器。可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,实现模拟信号到数字信号的转换。控制部分采用单片机89C52来完成。显示部分利用LED数码管显示模块,来显示采集到的电压分量。1.2.1系统设计原理框图2 硬件电路设计系统硬件电路由标准电路和自制电路两部分组成。标准电路包括单片机最小系统、6个LED

7、数码管电路和键盘电路,这部分电路已制成电路板,可根据设计需要进行配置选用。自制电路需自行设计焊接,包含标准电路不具备的其他电路。2.1 直流稳压电源为使单片机工作需要提供5V和12V的直流稳压电源,电源电路图如(图1):电源印刷电路板图鉴附录1电源电路原理图工作原理:利用二极管对交流电进行整流,然后再经过稳压滤波,将直流电压稳定在相应的幅值上,经过半波整流得到5V的电压,经过全波整流得到+12V.-12V的电压。2.2单片机电路2.2.1单片机电路板CPU电路复位电路晶振电路数码管显示电路按键电路LED显示电路 电路框图单片机电路板电路框图如图2;PROTEL绘制的原理图见附录2;PROTEL

8、绘制的电路排版图见附录3。2.2.2单片机最小系统 CPU原理图该原理图包含单片机以及外部连接译码,锁存电路端口,其中的ALE,REST为高电平时用来启动ADC0809.P0、P2口控制数码输出显示,P3口的P3.3、P3.4、P3.5控制按键,P1.1P1.3控制通道选择。晶振采用12MHZ,该频率有利于提高串口的通信可靠性,同时又保证单片机有较高的运行速度。2.2.3单片机的复位电路 复位电路当开关断开的时候,VCC对电容充电,RESET端为低电平;在开关闭合时电容放电,RESET端为高电平。2.2.4 开关电路 开关电路1、8位拨码开关。闭合:输入高电平 断开:输入低电平2、4位脉冲按键

9、,共用端口。 按下:输入高电平3、可选择P1口或P3口输入。2.2.5 显示译码电路LED显示电路可提供8位LED显示;可显示P1(P3)口状态;也可显示输入按键状态LED显示电路显示电路采用6位共阴极LED动态扫描显示,CD4511输出所需字形,74LS138选择字位。在动态方式中,逐个地循环地点亮各位显示器。小数点 P2.7, bcd 码输出P2.3P2.0,字位选择 cba=P2.6P2.4。如图7所示: 数码管显示电路显示译码电路部分由P0口或P2口输出显示、控制信号,信号包含: 4位BCD码 (DCBA) 1位小数点控制信号(DOT) 3位位选控制信号(SEL0、SEL1、SEL2)

10、图8:显示译码电路 显示译码电路显示译码器采用CD4511芯片:输入:BCD 输出:七段码 74LS138芯片是用来控制显示时候的字位的,由于单片机的管脚是有限的通过使用138芯片可以避免少使用些单片机的管脚,当输入001时,译码可得10111111:输入:07 输出:低电平 74LS1382.2 A/D转换2.2.1 ADC0809内部结构ADC0809由8路模拟开关、地址锁存与译码器、比较器、256电阻阶梯、树状开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成。startclock输出允许(1,输入信号)转换结束(1,输出)地址锁存,输入信号500KHz1MHz启动(高电平脉冲

11、,输入) ADC0809结构图2.3.2 ADC0809转换原理 ADC0809转换工作时序工作原理: 当单片机端的P3.3接低电平时,可以使两个非门打开(1)当模拟量送至某一输入通道后,CPU将标识该通道编码的三位地址信号经数据线或地址线输入到ADDC、ADDB、ADDA引脚上。 (2)地址锁存允许ALE锁存地址信号,启动命令START启动A/D转换。(3)转换开始,EOC变低电平,转换结束,EOC变为高电平。EOC可作为中断请求信号。 (4)转换结束后,可通过执行IN指令,设法在输出允许OE脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到DB,一次A/D转换便完成。2.3.3 AD转换

12、电路转换结束:EOC1IN0,通道0参考电压:5V转换时钟:接单片机ALE输出经分频后得到启动和地址锁存信号输出使能信号通道地址信号输出数据/WR/RD片选信号:P3.3=0/INT0CC4060_7AD_CS 2.3.4电路设计硬件资源分配数码管显示电路:用 P2 口:bcd 码输出P2.3P2.0;字位选择 cba=P2.6P2.4 ;小数点 P2.7键盘电路:3个键P3(3-5)ADC0809电压转换电路控制信号:/wr=p3.6 /rd=p3.7 eoc= p3.2 Cs= p3.3 (可以不要,使0809常选通)数据输出:=P0 转换通道选择地址线:CBA =P1(3-1)2.3.5

13、采集数据和对应电压的转换一个8位二进制的AD采集数据转换为5位10进制显示数据。对应关系:00HFFH 0.000V5.000V;AD分辨率为:5/25519.6mV;算法: Y=X19.6=X196/10具体步骤:1、求 YX 196 ,结果为双字节二进制数 2、将 Y转换为十进制数, 最大是一个5位的十进制数 3、去掉十进制数的最低位,相当于除10 3 软件设计3.1 设计任务3.1.1 基本任务 1、进行电压采集并显示 3.1.2 扩展任务 1、指定通道采集 2、循环采集显示 ,默认每通道显示1秒钟。3、报警设置 报警上限报警下限 3.2 按键定义及显示标志按1数码管最右端显示1,此时为

14、循环采集 单片机自动在0-7八个通道循环采集再按 1数码管最右端显示2,此时为指定通道,默认采集0通道按2:通道1, 按3:通道1 。再按 1数码管最右端显示3,此时可以设置上下限进行报警按2:电压1, 按3:电压1 。 再按1又进入循环采集,依次循环3.3 程序设计3.3.1 主程序框图 主程序框图3.3.2 正常采集 把采集的电压值转化为十进制,显示在数码管的后四位。显示三位小数。正常采集程序框图正常采集程序#includeUnsignedcharcode dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7

15、c,0x39,0x5e,0x79,0x71;unsigned char xdata zixin _at_ 0xefff;unsigned char xdata ziwei _at_ 0xdfff;unsigned char xdata ad _at_ 0x7fff;unsigned char channel1=0x0f1;unsigned char getdata;unsigned char dw;unsigned char gw,a,b,c,d,e,f,g,gt;unsigned int get;void delay(unsigned int cnt)cnt-;void int0(void)

16、 interrupt 0 getdata=ad;get=getdata*196;a=get/10000;b=get%10000/1000;c=get%10000%1000/100;d=get%10000%1000%100/10; zixin=dispcodea; ziwei=16; delay(100); ziwei=0; zixin=dispcodeb; ziwei=32; delay(100); ziwei=0; zixin=dispcodec; ziwei=64; delay(100); ziwei=0; zixin=dispcoded; ziwei=128; delay(100); z

17、iwei=0;ad=0;void main(void) IT0=0; EX0=1;EA=1; /打开总中断 P1=channel1;ad=0;while(1) 3.3.3 循环采集循环采集按 1数码管最右端显示1,此时为循环采集单片机自动在0-7八个通道循环采集,通道号显示在左边第二位。 循环采集程序框图3.3.4 指定采集指定采集 再按1数码管最右端显示2,此时为指定通道按2:通道1, 按3:通道1。 指定采集程序框图3.3.5 报警设置再按1数码管最右端显示3,此时为报警设置。电压上下线显示在右边第三四位。按2:电压1, 按3:通道电压1 。再按1又进入正常采集,依次循环 报警设置程序框图

18、4 系统调试系统调试包括硬件调试和软件调试两部分,介绍一下我在这两方面遇到一些问题,以及如何解决的。4.1 硬件部分硬件焊接分为单片机板和扩展版两部分。单片机版已经焊接好,只需焊接扩展版。在焊接扩展版时,我事先没有布局,任意焊接芯片,导致需要很长的导线,布线不规整。我把芯片拆下,通过看其他同学的焊接,查看元件管脚图,自己在草稿纸上画出各个芯片的位置。然后焊接。结果布线比较整齐。4.2 软件部分开始对单片机C语言很陌生,看程序很困难,自己编写不出程序。通过老师的讲解,和以前学过的C语言的知识,与单片机C语言基本相同,有些区别,把其中的区别搞懂了,能够编写简单的程序了。前几个程序通过问同学,反复调

19、试编写了出来,设定电压上下线的程序没有编写出来,通过看同学编写的程序,明白了如何编写。通过程序调试各个部分的功能,完成各功能模块,把程序下载到单片机中,最终实现电压采集功能和扩展功能。5 总结这次课程设计,我学到了许多,无论是硬件焊接还是软件编程,都有了进一步的提高。初步掌握了单片机C语言的编程。对数据采集、A/D转换、单片机控制显示等有了更深入的了解。这些离不开老师的指导和同学的互相帮助。我还有许多不足,这些还远远不够,在今后我还要不断的练习。参考文献:1、胡汉才,单片机原理及其接口技术(2版),清华大学出版社 2、张迎新,单片机中级教程,北京航空航天大学出版社3、丁元杰,单片机原理与应用,

20、机械工业出版社4、孙育才,MCS-51系列单片微型计算机及其应用,东南大学出版社5、曹巧媛,单片机原理及应用教学、实践、设计指导,电子工业出版社6、谢自美,电子线路设计实验测试(2版),华中科技大学出版社7、单片机实验指导书附录一 电源印刷电路板布线图附录二 单片机板电路原理图附录三 单片机印刷电路板布线图附录四 ADC0809与单片机连接图附录五 元件清单电源板符号名称型号 参数数量备注C156电解电容2200uF/25V3C3910100uF/25V3C2478111213独石电容1047LED123发光二极管53红R1电阻470欧1R2/31K欧2D1_1/1/2/3/4/5二极管IN4

21、0076散热片3变压器220V50V1MC1芯片78051MC278121MC379121POWERIN/OUT5电源接口2电路板1插头1扩展板符号名称型号 参数数量备注滑动变阻器1芯片ADC0809174HC0214046174HC041双排针若干短路帽若干单片机主板符号名称型号 参数数量备注KP1/2/3/4/SWRST1微动开关6*6*65SWPIP1拨码开关1芯片座14P416P428P140P11U1芯片AT89S521U245111U374HC1381U5/674HC042L18发光二极管8红SEG16LED数码管共阴极6SR18电阻200欧8R11K1R210K1CRY1晶振12

22、M1C2/3瓷片电容20P2C5独石电容1041C1电解电容22uF/25V1RKP1排阻3.3K1RKP21K1RL110K1RLED4701电路板1双排针若干短路帽若干POW1电源接口1附录六 程序代码#includeunsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char code dispcodeb=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;unsigned char code channel=0xf1,

23、0xf3,0xf5,0xf7,0xf9,0xfb,0xfd,0xff;unsigned char xdata zixin _at_ 0xefff;unsigned char xdata ziwei _at_ 0xdfff;unsigned char xdata ad _at_ 0x7fff;unsigned int getdata,get,a,b,c,d,m=20,p,q,n,x,y;signed char i,j=0;sbit k1=P35;sbit k2=P34;sbit k3=P33; void delay(unsigned int cnt)cnt-;void int0(void) in

24、terrupt 0 getdata=ad;get=getdata*196;a=get/10000;b=get%10000/1000;c=get%10000%1000/100;d=get%10000%1000%100/10;zixin=dispcodeba; ziwei=16; delay(100); ziwei=0; delay(100); zixin=dispcodeb; ziwei=32; delay(100); ziwei=0; delay(100);zixin=dispcodec; ziwei=64; delay(100); ziwei=0; delay(100); zixin=dis

25、pcoded; ziwei=128; delay(100); ziwei=0; delay(100); zixin=dispcodei; ziwei=1; delay(100); ziwei=0; delay(100); zixin=dispcodej; ziwei=2; delay(100); ziwei=0; delay(100);x=a*10+b;y=p*10+q;if(a3&b=n) P1=0x00; delay(100); zixin=dispcodeb4; ziwei=4; delay(100); ziwei=0; delay(100); zixin=dispcoden; ziwe

26、i=8; delay(100); ziwei=0; delay(100);/*else if(a=p&bq) */else if(x7)i=0;P1=channeli;ad=0; else TH0 = 0x03C; TL0 = 0x0B0; TR0 = 1;void main(void) IT0=0; EX0=1;ET0=1;EX1=0;ET1=0;EA=1; TR0=0; /打开总中断 TMOD= 0x01; TH0 = 0x03C; TL0 = 0x0B0; P1=channel0; ad=0;while(1)if(!k1) j+; if(j3) j=1; while(!k1); delay(2000); if(j=1) TR0=1; if(j=2) TR0=0; if(j=3)TR0=0; if(j=2) TR0=0; if(!k2) i+;if(i7)i=7;P1=channeli;ad=0;while(!k2) ;delay(2000); if(!k3) i-; if(i9)n=0;while(!k2) ;delay(2000); if(!k3) q+; if(q9)q=0;p+;if(p1)p=0; if(p=1&q5)p=0;q=0; while(!k3); delay(2000);

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

当前位置:首页 > 社会民生


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