《单片机原理与应用课程设计报告多路数据采集系统的设计》.doc

上传人:e****s 文档编号:88147342 上传时间:2023-04-22 格式:DOC 页数:27 大小:704KB
返回 下载 相关 举报
《单片机原理与应用课程设计报告多路数据采集系统的设计》.doc_第1页
第1页 / 共27页
《单片机原理与应用课程设计报告多路数据采集系统的设计》.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《《单片机原理与应用课程设计报告多路数据采集系统的设计》.doc》由会员分享,可在线阅读,更多相关《《单片机原理与应用课程设计报告多路数据采集系统的设计》.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、湖南工程学院课 程 设 计课程名称 单片机原理与应用 课题名称 多路数据采集系统的设计 专 业 电气工程及其自动化 班 级 学 号 姓 名 刘 君 指导教师_ 李世军_ 2011年 6月 13日湖南工程学院课 程 设 计 任 务 书课程名称 单片机原理与应用 课 题 多路数据采集系统的设计 专业班级 学生姓名 刘 君 学 号 指导老师 李世军 审 批 任务书下达日期 2011年 6 月 13 日任务完成日期 2011年 6月 28 日设计内容与设计要求设计内容:1、2路(通道)模拟量输入,电压范围0-5V;2、对2路(通道)的模拟量进行巡回数字量转换;3、能通过按键切换所选通道;4、数据在LE

2、D显示器上显示,并能够通过键盘操作切换显示不同通道的采样值。设计要求:1)确定系统设计方案; 2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行单元电路及应用程序的调试;6)写出使用说明书。主 要 设 计 条 件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件;3、单片机应用系统板1套;4、制作工具1套;5、系统设计所需的元器件。 说 明 书 格 式1. 课程设计任务书2. 目录3. 说明书内容1)课题的设计要求、目的、意义2)系统总体方案选择与说明3)系统结构框图与工作原理4)各单元硬件设计说明及计算方法5)软件设计与说明(包括流程图)

3、6)调试结果与必要的调试说明7)使用说明8)程序清单9)总结10)参考文献附录附录A 系统原理图附录B 程序清单评分表进 度 安 排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍 下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五、各硬件模块设计第二周星期一、各硬件模块设计星期二、各软件模块设计星期三、各软件模块设计星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩参 考 文 献 1张迎新.单片微型计算机原理、应用及接口技术.国防工业出版社2房小翠.单片机实用系统设计技术. 国防工业出版社3何立民.

4、单片机应用系统设计.北航出版社4王迎旭.单片机原理及及应用.机械工业出版第一章 引言近年来,随着计算机技术的发展数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。数据采集是工业控制系统中至关重要的一个环节,在生产过程中,往往需要随时检测各个环节的温度、湿度、流量及压力等参数。同时,还要对某个检测点的任意参数进行随机查询,将所得到的检测结果提取出来以便进行比较做出决策,调整控制方案。数据采集系统与电气工程及其自动化的联系:该系统可以采集的发电厂运行数据包括电气参数和非电气参数两类。其中电气参数主要有电流、电压、功率、频率等模拟量,断路器状态、隔

5、离开关位置、继电保护动作信号等开关量以及表示电度的脉冲量等。而非电气参数种类较多,既可以是采集火力发电厂运行中的各种温度也可有水电厂中的水位、流速、流量等水工信号,还可以采集诸如绝缘介质状态、气象环境等其它信号。这里设计的八路数据采集系统由数据输入通道,数据存储与管理,数据处理,数据输出及显示这五个部分组成。其中输入通道主要实现被测对象的检测,采样和信号转换的工作。数据存储与管理要用存储器把采集来的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除有关干扰噪声,提取出反映被测对象的重要特征的信息。最后,数据输出就是以可输出的形态在输出设备上输出。数据显示,

6、就是通过打印,显示,绘图等方式将数据以恰当的形式进行显示。第二章 课题的设计要求、目的及意义2.1 设计要求1) 根据题目要求的指标,通过查阅有关资料,确定系统设计方案,并设计其硬件电路图。2) 画出电路原理图,分析主要模块的功能及他们之间的数据传输和控制关系。3) 用protues软件绘制电路原理图。4) 软件设计并调试,给出流程图及源代码并加注释。2.2 设计目的1) 本设计包括确定控制任务、系统总体设计、硬件系统设计、软件程序的设计等。2) 使进一步学习理解计算机控制系统的构成原理、接口电路与应用程序。3) 巩固与综合专业基础知识和相关专业课程知识,提高学生运用理论知识解决实际问题的实践

7、技能。2.3 设计意义此次设计最主要的意义是让我们学以致用,通过自己亲手设计一个数据采集系统来巩固自己所学的单片机及其系统扩展的知识。让同学们懂得理论与实际相结合的重要道理。当然这次设计也是让是想让同学们认识到仅仅只靠平时的知识是无法解决一些实际的问题,一定要学会自己学习运用课余时间去查阅更多的资料,为同学们提供一个展示和挑战自己综合能力的机会,第三章 系统总体方案与说明本系统由A/D转换单元,数据处理单元,数码管显示单元组成。A/D转换单元由集成电路ADC0808完成,0808具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平

8、时,对地址信号进行锁存。6脚为AD转换启动控制,当输入电平由低到高再到低后A,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。单片机的P1、P2端口作四位LED数码管显示控制,P1端口作A/D转换数据读入用,P3端口用作0809的A/D转换控制。数据处理单元单元则只由AT89C51来完成,从P0端口读入数据,将各个数据以二进制的形式存储在片内RAM的35H单元。然后将35H单元的二进制数据转换成十进制的BCD码,分别将百位、十位、个位存入30H、31H、32H。通过P0端口将数据传给

9、LED显示。而P3口主要是与ADC0808相连输送地址和检测0808工作状态。并且、P3.3两个外部中断实现对通道实现装换。数码管显示单元、P2.3相连。第一位显示ADC0808通道编号,后面三位显示转换后的数值。当然,还有很多的电阻器等等一些防止电路出现故障的外围设备这里不做详细的解说。该方案具有简单,稳定的特点。第四章 系统结构框图与工作原理4.1 系统框图选用ADC0808的第三通道和第四通道,分别输入自制1V5V直流电压,来模拟要采集的信号,将各路模拟信号分别转换成8位二进制数字信号。 图4.1 系统框图4.2 系统工作原理 系统通过按钮申请AT89C51中断,从而改变ADC0808通

10、道地址,实现能在任意时间切换不同通道的要求。ADC0808转换成二进制数后,立即送给单片机,然后单片通过相应的数据处理和分析,根据数据处理的结果然后确定是否置位相应管脚报警,同时通过P0口把处理后的结果输送给LED数码管显示ADC0808装换后的结果,同时在LED数码管上显示当前的工作通道编号。第五章 各单元硬件设计说明5.1 A/D转换单元 A/D转换单元主要有ADC0808芯片组成,同时还有外部时钟(500KHZ)和相应的连线。由于ADC0808芯片的工作过程为:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄

11、存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 A/D转换单元电路图5.2 数据处理单元数据处理单元是以芯片AT89C51为核心。AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。故只用片内存储器就足够装下我们所编的程序,故无需扩展外部ROM。改芯片有4个端口P0P1P2所示。图5.2 数据处理单元电路图 数码管显示单元系统采用共阴极数码管,其

12、结构原理图如图所示。图5.3 共阴极数码管原理图图中a、b、c、d、e、f、g、dp为发光二极管,其中dp代表小数点,其它的按照一定的规律发光能组成0-9十个阿拉伯数字。这个八个端口称为位选端口,多个数码管连接在一起共用八个位选端口时,每个LED显示数码管都有一个段选端口(图中未给出),当段选端口为低电平时,选中该数码管。所示。图5.4 数码管显示单元电路图第六章 软件设计与说明6.1 程序流程图。图6.1 系统程序流程图6.2 软件说明由流程图可知,系统程序可分成初始化程序中断服务程序START1START2BCD判值大小显示等子程序。下面分别说明。 初始化程序初始化程序如下:MOV LED

13、_0,#00H;清零装换后BCD的百十个位MOV LED_1,#00HMOV LED_2,#00HCLR ZNG ;清零报警 CLR QNG SETB IT0 ;中断初始化 下降沿触发SETB IT1SETB EX1SETB EX0SETB EAMOV BZ1,#00HMOV BZ2,#00H LOOP: LCALL START1LCALL START2LJMP LOOP可以看出初始化程序包括对LED数码管百十个位的清零,对报警管脚P2.6,P2.7清零,中断初始化的设置,对标志位BZ1和BZ2清零,清零数码管四个位选,使数码管开机显示四个八,并且不停的循环调用START1和START2,判标

14、志位是否为1。6.2.2 中断服务程序中断服务程序如下:INTA: MOV BZ1,#01H;外部中断0中断服务程序 MOV BZ2,#00H MOV TDBH,#4FH RETI INTB: MOV BZ2,#01H;外部中断1中断服务程序 MOV BZ1,#00H MOV TDBH,#66H RETI可以看出外部中断0和外部中断1的服务程序只要是对标志位进行置位或者清零。SW3和SW4分别对应通道3和通道4,当SW3按下时执行INTA,BZ1置位,BZ2清零。所以此时单片机分析计算的是通道3转换过来的数据。反之SW4按下此时单片机分析计算的是通道4转换过来的数据。并且同时中断服务程序还给出

15、了通道编号(TDBH)的值。6.2.3 START1START2子程序START1: MOV A,BZ1 CJNE A,#01H,JIESU1 SETB SETB CLR MOV DPTR,#TABLE;表头地址 CLR QNG CLR ZNG LCALLDELAYB LCALLDELAYB LCALLDELAYB CLR ST;启动转换 SETB ST CLR ST JNB EOC,$;等待转换结束 SETB OE ;允许输出 MOV ADC,P1;暂存转换结果 CLR OE;关闭输出 LCALL BCD MOV A,LED_2 CJNE A,#0,BJA;判断百位与0的大小 CLR QNG

16、 MOV A,LED_1;判断十位与5的大小 CJNE A,#5,$+3 JC XSA SETB ZNG;十位 大于5红灯亮 XSA: LCALLDISPB SJMP START1 BJA: SETB QNG;百位不等于0 黄灯亮 LCALL DISPB SJMP START1 JIESU1: RET START2: MOV A,BZ2 CJNE A,#01H,JIESU2 CLR SETB MOV DPTR,#TABLE CLR QNG CLR ZNG LCALL DELAYB LCALL DELAYB LCALL DELAYB CLR ST;启动转换 SETB ST CLR ST JNB

17、EOC,$;等待转换结束 SETB OE ;允许输出 MOV ADC,P1;暂存转换结果 CLR OE;关闭输出 LCALL BCD;将AD转换结果转换成BCD码 MOV A,LED_2 CJNE A,#0,BJB MOV A,LED_1 CJNE A,#5,$+3 JC XSB SETB ZNG XSB: LCALLDISPB SJMP START2 BJB: SETB QNG LCALLDISPB SJMP START2JIESU2: RET可以看出,START1和STARTA2实际上包含了判值大小程序段,当值大于50小于100时ZNG=1,然后返回重启AD0808循环转换。当值大于100

18、是QNG=1,然后返回重启AD0808循环转换,这样便实现报警功能。这两个子程序同时也肩负着给定通道地址的作用。、P3.2管脚电平的改变,从而改变通道地址。6.2.4 BCD转换子程序 程序如下: BCD:MOV A,ADC;将AD转换结果转换成BCD码MOV B,#100DIV ABMOV LED_2,AMOV A,BMOV B,#10DIV ABMOV LED_1,AMOV LED_0,BRET可以看出,通过对ADC除百取商即百位上的数,然后对除百后的余数除十取商即十位上的数,剩下的余数即个位上的数。这样就转成了十进制的BCD码。 显示程序 显示程序如下:DISPB: MOV A,LED_

19、0;数码显示子程序 MOVC A,A+DPTR;个位 CLR MOV P0,A LCALL DELAYB SETB P2.3 MOV A,LED_1;十位 MOVC A,A+DPTR CLR MOV P0,A LCALLDELAYB SETB MOV A,LED_2;百位 MOVC A,A+DPTR CLR MOV P0,A LCALL DELAYB SETB CLR P2.0;通道编号 MOV P0,TDBH LCALL DELAYB SETB RETDELAYB: MOV R6,#10;延时5毫秒 D1B: MOVR7,#250 DJNZR7,$ DJNZR6,D1B RETTABLE:

20、DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH可知显示程序嵌套了延时子程序,包含了数码管编码表。四位数码管采用动态扫描显示,当位选信号为低电平时选中,数码管然后给其位选,关闭段选,延时5ms,然后选中下一个数码管,再给位选,再关闭段选,再延时5ms如此往复循环实现动态扫描。第七章 调试仿真说明与仿真结果7.1 调试仿真说明本系统的仿真在protues平台上进行。首先按照要求连接好硬件电路。然后加载KEIL软件翻译的HEX文件。系统采用外部中断控制通道变换,数码管第一位显示通道编号 后三位显示采集数据。系统开机默认数码管显示四个八。当SE3或者SW4按

21、下时就会产生中断请求和中断响应,系统就开始进行数据采集和装换。由于采用中断的缘故。在运行过程,中可以任意通过按键转换通道,并查看实时转换数据,当采集数据大于50时黄灯闪光报警,当数据大于100时红灯闪光报警。程序调试主要是通过KEIL软件进行,由于程序比较多,整体调试不容易发现和改正错误,故采取子程序调试的方法,但要明确子程序的具体功能。例如:调试显示子程序时,只将显示子程序进行汇编,确认无误后单步执行,观察CPU窗口和DATA窗口以及CODE窗口相应单元的变化是否跟预期的一样。如果有问题找出问题所在。采取各个击破的方法调试好各个子程序。 确定各子程序无误后,再调试完整的程序,要注意各子程序之

22、间的衔接以及和主程序之间的调用和返回。若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目仿真结果(1)刚开机状态如图7.1所示。图7.1 开机状态图 (2)按下SW3按钮此时单片得到中断信号,进入INTA中断服务程序,通过三通道采集信号。此时在显示器上显示采集转换后的数值,以及通道编号(第一个数码管),如图7.2所示。图7.2 三通道采集信号仿真图(3)按下SW4按钮此时单片得到中断信号,进入INTB中断服务程序,通过四通道采集信号。此时在显示器上显示采集转换后的数

23、值,以及通道编号(第一个数码管),如图7.3所示。图7.3 四通道采集信号仿真图第八章 总结 两周的时间在弹指间飞逝而去,紧张富有乐趣的课程设计也告别一个段落。其间有苦有甜,有酸有辣,有喜有悲,百味交融,夹杂而富有生趣。我们在老师悉心的指导下顺利的完成了此次课程设计。我们查阅了资料,经过团队的分工合作与良好的交流,我们从中体会了不一样的情感。这次设计使我受益匪浅。 这是一次对知识的学以致用环节。从前我们仅仅在教室听老师不厌其烦的传授课本知识,从来没有想过或是思考过知识的用处。这种依葫芦画瓢的模式使我深深的疲倦,我无法想象即使我们获得这些知识又能做什么。而此次的课程设计给了我们一次锻炼巩固平时之

24、所学的机会。 拿到课题的开始,我很茫然,无从下手,根本不知道如何去解决遇见的问题。我通过一周时间翻阅相关的资料,借鉴别人的文献,在和队员探讨的情况下,才开始了设计的第一步。 我在此次的设计中,懂得了理论与实际相结合的重要道理。学以致用是学习的最终的目的。我们只有知识是无法解决实际的问题,我们要把自己所学习过的运用到实际中去,当然这次设计也让我认识到仅仅只靠平时的知识是无法解决一些实际的问题,为此我们要更多的去了解知识,运用课余时间去查阅更多的资料。两周的设计时间结束了,这两周我得到了很多东西,团队的合作意识,老师的耐心帮助我在此对我的老师和我的队员表达我深深的致意,希望我们能在这次设计中让我们

25、更加的懂得团队的重要性,以及在以后学习过程中更加的努力。附录 A附录 BLED_0 EQU 30H;存放三个数码管的段码 LED_1 EQU 31H LED_2 EQU 32HADC EQU35H;存放转换后的数BZ1 EQU 36H BZ2 EQU 37H TDBH EQU 38H ST BIT OE BIT EOC BIT ORG 0000H LJMP START;中断入口地址 ORG 0003H LJMP INTA ORG 0013H LJMP INTB ORG 0030HSTART: MOVLED_0,#00H;清零装换后BCD的百十个位 MOVLED_1,#00H MOVLED_2,

26、#00H CLR ZNG;清零报警 CLR QNG SETB IT0;中断初始化 下降沿触发SETB IT1SETB EX1SETB EX0SETB EAMOV BZ1,#00HMOV BZ2,#00H LOOP:LCALL START1 LCALL START2 LJMP LOOPINTA: MOV BZ1,#01H;外部中断0中断服务程序 MOV BZ2,#00H MOV TDBH,#4FH RETI INTB: MOV BZ2,#01H;外部中断1中断服务程序 MOV BZ1,#00H MOV TDBH,#66H RETI START1:MOV A,BZ1 CJNE A,#01H,JIE

27、SU1 CLR MOV DPTR,#TABLE;表头地址 CLR QNG CLR ZNGLCALLDELAYBLCALLDELAYB LCALLDELAYB CLR ST;启动转换SETB STCLR ST JNB EOC,$;等待转换结束SETB OE ;允许输出MOV ADC,P1;暂存转换结果CLR OE;关闭输出 LCALL BCDMOV A,LED_2 CJNE A,#0,BJA;判断百位与0的大小 CLR QNG MOV A,LED_1;判断十位与5的大小 CJNE A,#5,$+3JC XSA SETB ZNG;十位 大于5红灯亮 XSA: LCALLDISPB SJMP STA

28、RT1 BJA: SETB QNG;百位不等于0 黄灯亮 LCALLDISPB SJMP START1 JIESU1: RETSTART2: MOV A,BZ2 CJNE A,#01H,JIESU2 CLR MOV DPTR,#TABLE CLR QNG CLR ZNG LCALLDELAYB LCALLDELAYB LCALLDELAYB CLR ST;启动转换 SETB ST CLR ST JNB EOC,$;等待转换结束 SETB OE ;允许输出 MOV ADC,P1;暂存转换结果 CLR OE;关闭输出 LCALL BCD;将AD转换结果转换成BCD码 MOV A,LED_2 CJN

29、E A,#0,BJB MOV A,LED_1 CJNE A,#5,$+3 JC XSB SETB ZNG XSB: LCALLDISPB SJMP START2 BJB: SETB QNG LCALLDISPB SJMP START2JIESU2: RETDISPB: MOVA,LED_0;数码显示子程序 MOVCA,A+DPTR;个位CLR MOV P0,ALCALLDELAYBMOV A,LED_1;十位MOVCA,A+DPTRCLR MOV P0,ALCALLDELAYBMOV A,LED_2;百位MOVCA,A+DPTRCLR MOV P0,ALCALLDELAYBCLR P2.0;通道编号MOV P0,TDBHLCALLDELAYBRETDELAYB:MOV R6,#10;延时5毫秒 D1B: MOVR7,#250 DJNZR7,$ DJNZR6,D1B RETBCD:MOV A,ADC;将AD转换结果转换成BCD码 MOV B,#100 DIV AB MOV LED_2,A MOV A,B MOV B,#10 DIV AB MOV LED_1,A MOV LED_0,B RETTABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁