下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、引言近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅 速的发展,它可以广泛的应用于各种领域。单片机作为微型计算机的一个重要分支,应 用广泛,对人类社会产生了巨大的影响。In tel公司生产的51系列单片机,由于具有集 成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点。在我国 已经得到了广泛的应用。特别是在智能仪器仪表、工业检测控制等一些领域取得了令人 瞩目的成就。基于单片机的数据采集系统完全能够满足各种测控系统需要,实时性好, 应用前景广阔。对于本设计而言,其主要任务就是将05V的直流电压进行测量并送到数码管去显示。 基于功能与价格的考虑,在这里选用
2、了比较常见的逼近型ADC0809芯片,其在精度、速度和价格上都适中,可以满足我们在这个设计的要求。考虑到本系统是由单片机供电, 选用了低功耗的数码管,以满足显示结果的要求。软件设计方面,采用了功能模块化的 设计思想;键盘模数转换控制采用了单片机外部中断 0与外部中断1结合的方式来实现, 大大提高了单片机的效率,实时处理能力。由于对汇编语言较为了解,所以采用汇编语 言来编程。151设计任务及总体设计方案在本次课程设计中,要求设计一个基于单片机的的多路数据采集系统,这个课题和我们所学的课程联系紧密、息息相关,涉及到很多的知识,是对我们所学知识的一次考察, 利于我们对学过的知识复习一遍,加深理解。1
3、.1设计任务与要求在本次设计中要求我们达到以下三点要求:(1)单片机控制A/D转换器检测多路电压(2)检测的结果送单片机处理并显示(3)数码管轮流显示各路电压或显示指定的通道电压1.2总体设计方案(1)选择89S52作为主芯片,ISP下载线编程、方便灵活、功能强大,完全可以满足 本设计的性能要求,而且89S52是51系列中比较常用的芯片,好用(2)选择ADC0809乍为模数转换器,就本设计的要求而言,ADC08094价比相当的高, 而且在很多的课程都学习过,比如:智能仪器、单片机等课程,对它的性能、结构都比较了解。(3)选择74LS74作为分频器,从单片机的 ALE输出2MHZ勺频率,经过74
4、LS74的4 分频作用,最终产生一个 500KHZ勺时钟频率给ADC0809使ADC0809E常工作。(4)还有一些外围电路,比如:ISP下载电路、单片机复位电路、数码管显示电路等,这样才能组成一个完整的多路数据采集系统。其系统框图如图1-2-1所示图1-2-1系统框图2硬件设计数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部 的一个接口。数据采集技术广泛引用在各个领域。在该系统中需要将模拟量转换为数据 量,而A/D是将模拟量转换为数字量的器件,需要考虑的指标有:分辨率、转换时间、 转换误差等等。而单片机是该系统的基本的微处理系统,它完成数据读取、处理及逻辑 控制,数
5、据传输等一系列的任务。数据采集系统一般由信号调理电路,多路切换电路,采样保持电路,A/D,单片机等组成。但是在本设计中直接就对输入电压进行 A/D转换,着重在模数转换器的选择和使用 上。2.1单片机的选择单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。此 系统是由CPU随即存取数据存储器、只读程序存储器、输入输出电路(I/O 口),还有 可能包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、脉宽调制 电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但 完善的计算机任务。单片机要使用特定的组译和编译软件编译程序,在用keilu
6、vision4 把程序下载到单片机内。而本设计选用的是AT89S52AT89S52是种低功耗、高性能CMOS位微控制器,具有8K在系统可编程Flash存 储器,使用Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引 脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片 上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应 用系统提供高灵活、超有效的解决方案。其结构图如下图2-1-1所示(TJ:. P1.0 C vcc14D(T-Ex匚230JPCC (ADO)P1.2 匚3豹 PC t (AD-IP13匚43
7、7El FD.a尸1冲匸廿 ITO.2 (AD3bIFT5 匚a35 FC-.-* (AtM.i(MIGO 戸1启匚734 pc.e(SCK : P1.7 匸833n pc.eOSTEg32 PC7 RX3-.P3.or1D31H E'VFF1TXD )尸耳卡匚1133 ALEEg(INTOj F35 E22BJ PS EMflRFIP3L3 匚-32白 P2.7 (A1E.TC-P3.4C27 P2.e(A1+iH . P3.5匚152flF2.5(A1?:(WRJP3LBC25J F2.4 (Ali:<«D-> F3.T C34 F2 3 (A11XTAU 匚
8、n二1 尸2 話(A1CKTAL1匚_i -p F= 1 (A.D)匚卜"匚2D21二I 至匚(AB':图 2-1-189S52结构2.2模数转换器的选择A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。位数越高其分辨率就越高,价格也就越贵。A/D转换器型号很多,而其转换时间和转换误差也各不相同。(1) 逐渐逼近式A/D转换器:它是一种速度快、精度较高、成本较低的直接式转换器, 其转换时间在几微秒到几百微秒之间。(2) 双积分A/D转换器:它是一种间接式的A/D转换器,优点是抗干扰能力强,精度 比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。
9、(3) 并行式A/D转换器:它又被称为flash (快速)型,它的转换数度很高,但她采 用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格 也很贵,只适用于视频A/D转换器等数度特别高的领域。鉴于上面三种方案,在价格、转换速度等多种标准考量下,在本设计选用的是逐渐 逼近式A/D转换器ADC0809.2.3显示部分LED数码显示管是一种由LED发光二极管组合显示字符的显示器件。它使用了8个LED显示管,其中7个用于显示字符,1个用来显示小数点,故通常称之为八段发光二 极管数码显示器。对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力 的位选和段选信号。LE
10、D数码显示有动态扫描显示法和静态显示。在单片机中,为了节 省硬件资源,多采用动态扫描显示法。为了布线和做板的简单,采用一个4位的共阴数码管。2.4按键部分为实现显示指定的通道电压,需要用到单片机的外部中断 0和外部中断1来实现跳 转,其原理图如下图2-4-1所示,Q11接到外部中断0(P3.2),Q12接到外部中断1(P3.3)。 当按下按键S3时,给P3.2低电平,启动外部中断0;当按下按键S3时,给P3.3低电 平,启动外部中断1,编写相应的中断服务程序就可以实现功能。4_矶c5W-PBrS?申图2-4-1按键原理图3软件设计3.1主程序设计主程序的设计的思路是:当没有中断的时候,就按顺序
11、从1通道轮流显示到8通道。在外部中断O(INTERO)的中断服务程序中对寄存器 R2加1,即进入外部中断0时,R2 就加1;在外部中断1(INTER1)的中断服务程序中对寄存器 R0加 1,即进入外部中断0 时,R0就加1。在主程序中对R2进行比较,当R2=1时就停止轮流显示,即当外部中断 0第一次响应后,停止轮流显示;当 R2=2是将R0的值赋给R3,( R3是通道轮流显示的 条件寄存器)然后调用显示子程序。其程序流程图如下图3-1-1所示开中断调用通道选择子程序LPINC R3图3-1-1程序流程图3.2子程序设计子程序有4个,分别是通道选择子程序 LP,显示子程序DISPLA丫延迟子程序
12、DIOms, 数据处理子程序CAI。(1) 通道选择子程序LP:LP: CJNE R3,#01H,LP1 ; 根据R3来选择通道CLR P2.7;开通道CLR P2.6CLR P2.5AJMP QIDLP1: .;有8个通道,格式一样的,LP7: SETB P2.7;8 通道SETB P2.6SETB P2.5QID:CLR P2.0 ; 启动ADC0809给P2.0输入一个正脉冲NOPNOPNOPSETB P2.0NOPNOPNOPCLR P2.0判断是否开始转换判断转换是否结束;将P0 口的给44H;调用数据处理子程序JB P2.1,$JNB P2.1,$ACALL D10ms1MOV 4
13、4H,P0ACALL CAIYAN1:ACALL DISPLAY1 ;显示通道数ACALL DISPLAY ;显示转换结果DJNZ R4,YAN1 ;延迟RET这个子程序的作用是根据R3的值来选择通道,实现8路数据顺序采集、轮流显示, 当这个子程序调用结束后,就会返回主程序,实行INC R3操作,并将R3与#09H比较(2) 显示子程序DISPLAYDISPLAY:;数码显示子程序MOV DPTR,#TABMOV A,40HMOVC A,A+DPTRCLR P2.2SETB P2.3CLR P2.4ADD A,#80HMOV P1,AACALL D10ms1MOV DPTR,#TABMOV A
14、,41HMOVC A,A+DPTRCLR P2.2CLR P2.3SETB P2.4MOV P1,AACALL D10ms1RETDISPLAY1: MOV DPTR,#TABMOV A,R3MOVC A,A+DPTRSETB P2.2CLR P2.4CLR P2.3MOV P1,AACALL D10ms1RET这个子程序的作用是:根据 P2.2、P2.3、P2.4的不同赋值来选择数码管显示,显示 的段码分别存储在40H, 41H,而通道数段码存储在R3(3) 延迟子程序DIOmsDIOms: MOV R5,#14HDL: MOV R6,#0FFHDLO: DJNZ R6,DL0DJNZ R5
15、,DLRET这个子程序起到延迟的作用,因为在显示的时候可能要用到延迟才能够让数码管上 的值显示的清晰明了,这个是必不可少的。(4) 数据处理子程序CAI:CAI:MOV A,44H;数据处理子程序MOV B,#51DIV AB ;B为余数MOV 40H,A ;整数存入40HMOV A,B ;余数大于19H(25)时F0为1CLR F0SUBB A,#1AH ;判断余数是否大于19( 25)?MOV F0,C ;判断溢出MOV A,#10MUL AB;余数扩大10倍MOV B,#51DIV ABJB F0,LOOP7ADD A,#5; 余数大于19H(25)时,结果加5LOOP7:MOV 41H
16、,AMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LOOP8ADD A,#5L00P8:MOV 42H,ARET因为A/D转换输出为2位16进制数,电压显示方式为十进制数,所以应进行数据转 换,所以需要调用这个数据处理子程序 CAI,其转换公式为:VCCA/D转换输出(十六进制)= FF (十六进制)X (转换后显示为十进制值)5V(最大电压值)4硬件制作与调试当硬件制作完成后,在检测没有发生短路和断路的情况下, 就可以编写程序进行调试 可分成一下几个步骤:(1) 编写一个小程序,然后烧写到芯片里,有可能
17、烧不进去,这可能是ISP下载口 接反了或者是芯片的冋题,一步一步的检查。(2) 当小程序能够烧写进去并且能够实现程序的功能以后,说明硬件应该没什么问 题,接着再编写能够实现更多功能的程序,并且能过实现为止,这样循序渐进,由小到 大,这样编写出来的程序就可以实现(3) 可能存在这样的问题:每个模块的程序都能实现,但是当把它们集合在一起的 时候就不行了,这就要检查每个模块之间的调用有没有问题了,下面是具体的流程: 4.1硬件制作硬件制作的流程如下:(1) 画出电路草稿图,经过修改选择,确定好方案。(2) 根据电路图,利用DXP2004画出原理图。(3) 编译原理图,确定无误后导入 PCB图。(4)
18、 排版PCB图,考虑好用单面还是双面板来制板,然后连线。(5) 据原理图生成元件清单,买好所用器件及铜板。(6) 打印PCB进行印板腐蚀,打孔、焊接。(7) 完成焊接之后,检查电路,最后上电观察电路是否正常。4.2调试在电脑上装好keil编程软件及下载器软件progisp1.66,将编好的程序生成可执行 文件,文件名以.HEX为后缀。通过下载器,将仿真好的程序烧入单片机芯片。给电路上 电,看硬件是否正常工作。以下是我调试的遇到的问题:(1) 板子制作出来,发现下载器画错了,管脚接得不对。所以要烧入程序必须借助 单片机最小系统版。(2) 电路板上电,烧入程序,发现数码管不亮。按下任何键都没有反应
19、,能确定的是板子复位电路不起作用。(3)上电检查单片机每个管脚的电压,没有发现异常。再检查各块芯片,也能显示 正常。说明硬件部分没有问题,只需考虑软件部分了。(4)仔细的研究程序,觉得可能按键去抖没有做好。在程序中添加了延时去抖,再 次烧入单片机,电路能正常工作了,调试成功。调试仪器:数字万用表(1个),电源(1个),下载器(1个)测量结果及误差表如下:通道数Int1Int2Int3Int4Int5Int6Int7Int8万用表 测量电 压值2.8v0.0v5.0v3.9v3.0v2.0v1.0v0.0v数码显示值2.8v0.0v5.0v4.0v3.0v1.9v1.0v0.0v误差0.0v0.
20、0v0.0v0.1v0.0v0.1v0.0v0.0v从上表来对比看,采集到的电压值很接近实际电压。证明电路是对的,软件程序处 理没有错误,硬件做得比较成功。5分析设计方案优缺点5.1优点本次课程设计,设计方案优点有以下几个:(1)硬件简单,器件少,制作容易。(2)所用器件都是常用的,易买,而且价格便宜。(3)采集各个通道的电压因为电阻值不一致,在调试时易辨别是否为所采集通道 的电压值。(4)显示部分用一个四位共阴数码管。首先,采用集成数码管最大的好处是减 少了 PCB制作的困难。第二,采用 NPN9014E极管驱动而不使用芯片,节约了成本。5.2缺点方案设计存在的不足之处如下:(1)硬件电路中
21、采用了 74LS74进行分频出500KHZ送至ADC0809勺时钟端。原则 上ADC0809确实需要500KHZ来驱动,不过正常情况下,1MHz是也是可以的。即采用6MHz 的晶振,经单片机分频从 ALE端输出的频率为1MHz来驱动即可。所以分频显得多此一 举了。但为了保证ADC0809一定能正常工作,才会采取分频。(2) 输出数据没有采取锁存,显示时数码管虽然能显示,但数据不够稳定。本次课 程设计的目的是培养和锻炼学生的实践能力, 同时希望学生能把所学到的东西应用至实 际生活中。虽然之前的实验做过多通道采集,但那只是软件部分,根本不涉及硬件的设 计,所以对硬件的组成原理是不深入了解的。 另外
22、,这次课题也能加强学生的自学能力。 就像本次课程设计,用到了 74LS74才自己上网去查资料,通过仿真确信可行才用于实 践中。还有单片机C语言编程,之前是有一定的基础,可毕竟还不足,仍需要自己花时 间去学习,边学便用。为以后的工作做了一定的准备。6总结在本次设计中发现了不少的问题,也解决了很多的问题,学会了如何去发现问题、分 析问题进而解决问题。特别是在调试的时候,在我制作完成硬件后,在将程序烧到芯片 里的时候,没有烧进去,不知道原因在哪里,我把电路检测了一遍,没有发生短路或断 路的情况,于是我怀疑是不是芯片的问题,把别人的芯片拿来试了一下,但还是烧不进 去,只好再检查一下电路,最后在检查 P
23、CB勺时候发现是ISP下载口接反了,将其重新 焊接,再试接成功了。当然在程序调试的过程中不止这些问题, 比如:烧写程序进去后, 数码管没有反映,检查一下程序的逻辑有没有错,有时会陷入某个语句的死循环,跳不 出来;显示的数字不同步,那有可能是在显示时的延迟不够, 达不到要求等等一些问题。 程序的调试是一件枯燥而持久的事情,所以要保持耐心和热情,有的问题一时间找不到 原因,那不妨换个思路,也许就会豁然开朗了。这不仅是在调试的时候需要,在编程的 时候,乃至做什么事情的时候,在看似陷入绝境的时候,不妨换个思路、换个角度,当 看问题的角度不同的时候,可能就会有一些新的想法。在这次设计中锻炼了我将软件和硬
24、件结合起来的能力,加深了对以前学过的知识的记忆和理解。同时让我站在一个新的角度去看问题,想实现某种功能并不只有一条途径, 切不可陷入固定的思维,认为只有这样做才行,这样可能到最后也解决不了问题。问题 是多种多样的,答案也不只有一种。谢辞在完成课程设计的时候,衷心的感谢我的指导老师黄源老师。在我遇到问题和困难的 时候,他给了我很大的帮助,有了他的帮助,我的课程设计才能少走一点弯路,在这里 道一声真挚的感谢。当然也要感谢帮助过我的其他老师们,每当有问题去求教她们的时 候,她们总是不厌其烦、耐心的给我指导。当有一些学过的知识记不起来时,她们总是 慢慢的引导,直到将知识点记起来,最终把问题解决。在这里
25、真的要谢谢她们,谢谢!8参考文献1 白驹珩、雷晓平单片计算机及其应用(二)高等教育出版社,2005.92 阎石.数字电子技术基础M.北京:高等教育出版社,2006.53 王选民.智能仪器原理及设计M.北京:清华大学出版社,2008.2元件清单:序号名称数量单价备注1单片机89C521+ 1个DIP40底座2A/D 转换 08091+ 1个DIP28底座34位共阴数码管1410K精密电位器25按键3小61*40圆针插座27三极管32N30948电阻710K9电阻333010电阻1100K11电容227pf12电容110413晶振112MHZ141*40排针2151*8排线216ISP下载口12*
26、517单面板1180mm*85mm程序:ORG 0000HAJMP MAINORG 0003HAJMP INTER0ORG 0013HAJMP INTER1ORG 0030HMAIN: MOV R0,#01H ;初始化MOV R1,#00HMOV R3,#00HMOV R4,#02HMOV 40H,#00HMOV 41H,#00HJNB P3.7丄OOP;P3.7作为开始键AJMP MAINLOOP: ACALL D10msJNB P3.7,STARTAJMP MAINSTART:SETB EA;开中断SETB IT0SETB IT1SETB EX0SETB EX1ACALL LPINC R3
27、CJNE R3,#09H,ST1MOV R3,#01HST1:CJNE R1,#01H,NEXT2;进行中断变量的比较AJMP ST1NEXT2:CJNE R1,#02H,NEXT3MOV R1,#00HMOV A,R0MOV R0,#00HMOV R3,ANEXT3:AJMP STARTINTER0:;中断服务程序0MOV R1,#01HCJNE R0,#00H,N1ACALL D10ms1AJMP N2N1: MOV R1,#02HN2:RETIINTER1:;中断服务程序1INC R0RETI91dONdON dON诚K卫Y嗨 0 2d 60800av 修日:0 2d dio:aio9Z
28、d日丄ms9Zd日丄mSJI® 8:ZZd 913S :Zdlaio di/irv9 2d dio9Zd日丄msZNd日丄msJI® Z: ZdTHZ0#£3 3NrO :9d1 aio di/irv9Zd日丄ms9 2d dioZNd日丄ms JI® 9: 9dTH90#£3 3NrO :9d1 aio di/irv9 2d dio9 2d dio ZNd日丄msJI® 9©dTH90#£3 3NrO :KH aio di/irv gzd日丄ms9Zd日丄ms Z 2d dioji® 杖闭Th旳#
29、63;b 3Nro:edi aio di/irv9 2d dio9Zd日丄ms Z 2d dioJI® U £dTH£0#£3 3NrO :乙di aio di/irv 9Zd日丄ms9 2d dio Z 2d dlOJI® 乙乙dTH乙:aio di/irv9 2d dlO9 2d dlO I®丑:Z 2d dlOMKtfWSd IffW : Ldl'HLOtfSd 3NrO:diSETB P2.0NOPNOPNOPCLR P2.0JB P2.1,$;判断是否开始转换JNB P2.1,$;判断转换是否结束ACALL DIOmslMO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学舞蹈课程模板
- 护理部行政管理
- 急性有机磷中毒应急演练
- 山西传媒学院《绘本设计》2023-2024学年第一学期期末试卷
- 山东中医药大学《微生物学与免疫学》2023-2024学年第一学期期末试卷
- 产品寄售合同范例
- 净水设备售卖合同范例
- 大学生医疗保险
- 医院让利合同范例
- 山东艺术学院《企业数字化转型案例解析》2023-2024学年第一学期期末试卷
- 基坑安全监测~个人年终总结
- 手术质量与安全监测分析制度
- A9.安规设计规范
- 模型构建的原则和主要步骤
- 消防安全操作规程
- 建筑装饰施工组织与管理教学大纲
- 衬里工业管道施工工艺标准
- 柴油泄漏应急预案演练
- 号间冷塔冷却三角组合及安装作业指导书
- 突发公共卫生事件处理流程图
- 生产计划的编制步骤
评论
0/150
提交评论