单片机原理与应用课程设计温度测控系统设计.doc

上传人:仙人指路1688 文档编号:4147323 上传时间:2023-04-07 格式:DOC 页数:26 大小:2.92MB
返回 下载 相关 举报
单片机原理与应用课程设计温度测控系统设计.doc_第1页
第1页 / 共26页
单片机原理与应用课程设计温度测控系统设计.doc_第2页
第2页 / 共26页
单片机原理与应用课程设计温度测控系统设计.doc_第3页
第3页 / 共26页
单片机原理与应用课程设计温度测控系统设计.doc_第4页
第4页 / 共26页
单片机原理与应用课程设计温度测控系统设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机原理与应用课程设计温度测控系统设计.doc》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计温度测控系统设计.doc(26页珍藏版)》请在三一办公上搜索。

1、 单片机原理与应用课程设计设计题目: 温度测控系统设计 设计时间: 2011-2012第一学期 专业班级: 电自化2008级3班 姓名学号: 指导老师: 2011 年 12 月 25 日 目 录目 录1第一章 设计要求及目的2第二章 系统总体方案选择与说明3第三章 系统方框图与工作原理4第四章 器件说明64.1 单片机89C51说明64.2 ADC0809说明64.3 ADC0809 应用说明74.4 LED显示器84.5 8255可编程器件扩展并行接口9第五章 软件设计与说明175.1 程序设计17总 结25参考文献25第一章 设计要求及目的数据采集系统用于将模拟信号转换为计算机可以识别的数

2、字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一.这次设计用到的集成芯片主要有8051单片机、ADC0808等.ADC0800主要作用是对八路模拟信号进行选择采集,并将其转化为八位数字信号,再送至主控制器(8051单片机);软件部分即为控制单片机的工作进程,程序由汇编语言完成并在PROTEUCE开发软件中进行的调试与仿真.设计要求:温度检测范围0 64;选择合适的方式对采集

3、的值应进行数字滤波;数码管显示,同时显示通道号;具有超限报警功能;可通过键盘设置上、下限值。第二章 系统总体方案选择与说明为了充分利用学校的有效资源,我们仅仅对本课题做一个简单的设计,八路模拟信号数值测量显示电路由A/D转换、数据处理及显示控制等组成。A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2S宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE

4、脚为高电平时,A/D转换数据从端口输出。单片机的P0、P3端口作四位LED数码管显示控制,P1端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制第三章 系统方框图与工作原理根据设计要求的性能指标,本系统不仅要满足一定精度的温度采集的基本功能,而且由于测量的路数为8路,还存在多路信号的循环显示问题,还要考虑温度超限报警输出的功能,同时系统还具有显示当前各路的测量温度值的功能和键盘选择显示路数的功能。根据本课题的设计目标以及硬件的特点,本系统的结构原理图如下图1所示:核心控制板STC89C514位数码管报警指示灯(高、低温)4个键盘蜂鸣器报警ADC0808模数转换器温感元件 图1 系

5、统方框图硬件图第四章 器件说明4.1 单片机89C51说明80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模

6、式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。8051是典型的单片机,由CPU系统,外围功能单元和一体化的I/O端口3部分组成。CPU系统:包括CPU,时钟系统和总线控制逻辑3部分。CPU包含运算器和控制器,专门为面向控制对象,嵌入式特点而设计,有突出控制功能的指令系统。时钟系统:包含振荡器,外接谐振元件,可关闭振荡器或CPU时钟。总线控制逻辑:主要用于管理外部并行总线时序及系统的复位控制,外部引脚有RET、ALE、EA和PSEN。外围功能单元包括ROM程序存储器,RAM数据存储器,I/O端口和SFR特殊功能寄存器4

7、部分。80C51基本功能单元包括定时/计数器、中断系统和串行接口3个基本功能单元。4.2 ADC0809说明ADC0808 由一个8 路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0808 各脚功能如下:D7-D0:8 位数字量输出引脚。IN0-IN7:8 位模拟量输入引脚。VCC:+5V 工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。S

8、TART:A/D 转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D 转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。ADC0808的内部逻辑结构:图10 ADC0808的内部逻辑结构4.3 ADC0809 应用说明(1) ADC0809 内部带有输出锁存器,可以与AT89S51 单片机直接相连。(2) 初始化时,使ST 和OE 信号全为低电平。(3) 送要转换的哪一通道的地址到A,B,C 端口上。(4) 在ST 端给出一个至少有100n

9、s 宽的正脉冲信号。(5) 是否转换完毕,我们根据EOC 信号来判断。(6) 当EOC 变为高电平时,这时给OE 为高电平,转换的数据就输出给单片机了。软件设计完成后,可根据PRTEL99SE中的电路原理图进行引脚锁定,然后启动编译程序来编译项目。编译器将进行错误检查、网表提取、逻辑综合和器件适配,然后进行行为仿真、功能仿真和时序仿真。4.4 LED显示器本LED显示器可自动轮流显示8路输入模拟电压的数字值,最小分辨精度为0.02V,最大显示数值为255(输入为5V时),模拟输入最大值为5V。表2 LED数码显示器的字形(段)码显示字形字形码(共阳极)字形码(共阴极)0C0H3FH1F9H06

10、H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77HB83H7CHCC6H39HDA1H5EHE86H79HF8EH71H熄灭FFH00H4.5 8255可编程器件扩展并行接口系统软8255: 有三个八位的并行口:PA、PB、PC。有三种工作方式:方式0,方式1,方式2。可以与8031直接接口 1.逻辑结构图: 包含四个部分: 三个并行数据输入输出端口 两个工作方式控制电路 一个读写逻辑控制电路 八位总线缓冲器 三个并行数据输入输出端口:A口;B口;C口一般,A口,B口作为数据输入输出端口,C口作为控制/状态信息口,可

11、以分为两个部分,分别与A口和B口配合使用,作为控制信息输出或状态信息输入。工作方式控制电路工作方式控制电路有两个:A组控制和B组控制电路,A组控制用来控制A口和C口的上半部分PC7PC4;B组控制用来控制B口和C口的下半部分PC3PC0;两组控制电路具有一个控制命令寄存器,用来接收来自CPU的数据(控制字),以决定芯片的工作方式,或对C口按位进行清“0”或者置“1”。总线缓冲器 三态双向八位缓冲器,作为微处理器数据总线与8255之间的接口,用来传送命令、数据及状态信息。 读写逻辑控制电路读写逻辑控制电路接受CPU来的控制信号:读、写、地址及复位信息,根据控制信号的要求,将数据读出,送往CPU,

12、或者将CPU来的信息写入端口。2. 引脚说明:片选信号,低电平有效,表示芯片被选中;:读操作,低电平有效,控制数据读出;:写操作,低电平有效,控制数据写入;RESET:复位信号,高电平有效,各端口被置成输入;D7D0:双向三态数据线;PA7PA0:A口输入输出线;PB7PB0:B口输入输出线;PC7PC0:C口输入输出线;3工作方式选择工作方式控制字8255有三种工作方式:方式0,方式1,方式2。其中方式2只对A口。8255的工作方式是由工作方式控制字决定,工作方式控制字是由CPU写入。8255方式控制字定义如下:D7 D6 D5 D4 D3 D2 D1 D0 B组: 端口C(下半部) 1:输

13、入,0:输出 端口B 1:输入,0:输出 方式选择0:方式0,1方式1 A组 C口上半部 1:输入,0:输出 端口A 1:输入,0:输出 方式选择 00: 方式0, 01: 方式1 1:方式2D7=1:命令控制字有效。当D7=0,通过控制口对C口进行位操作。C口具有位操作功能,通过工作方式控制字可以将PC7PC0 中任意一位置1或清0D7 D6 D5 D4 D3 D2 D1 D0D7=0 对C口操作,D6 D5 D4 无效,D3 D2 D1:位选择0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7D0

14、=0:清0 ;0=1:置1 工作方式0:基本输入输出方式三个端口都可以设置成输入或输出方式:具有两个八位端口:A口和B口具有两个四位端口:PC0PC3,PC4PC7任一端口都可设置为输入或输出数据输出带锁存,输入时不锁存此时,8255可以工作在无条件传送;也可以查询式传送,C口作为联络信号 工作方式1:选通式输入/输出方式有固定的选通信号,选通信号与数据一齐传送,由选通信号表示数据传送的状态:三个端口分为两组:A组和B组每组包括一个八位数据端口和一个四位的控制状态端口每个八位数据端口均可设置为输入或输出,输入输出均带锁存四位端口作为八位端口的控制/状态联络信号方式1输入: STB:设备的选通信

15、号输入线,低电平有效,的下降沿将端口数据线上信息打入端口锁存器; IBF:端口锁存器满标志输出线,IBF和设备相连。IBF为高电平表示设备已将数据打入端口锁存器、但CPU尚未读取。当CPU读取端口数据后IBF变成低电平,表示端口锁存器空。INTE:8255A端口内部的中断允许触发器。只有当INTE为高电平时才允许端口中断请求。INTEA,INTEB分别由PC口的第四、第二位置位复位控制:INTE A 由PC4复位/置位控制INTE B 由PC2复位/置位控制 INTR:中断请求信号线,高电平有效。方式1输入方式下时序如图:IBFINTRRDINPUT方式1输出: 当任何一个端口按方式1输出时,

16、各控制信号如下:输出缓冲器满信号,低电平有效, 是8255输出给外设的联络信号,表示CPU已经将数据送入了指定 的端口中,外设可以将数据取走。 由信号的上升沿置0,由的下降沿置1;:外设响应信号,低电平有效,表示CPU输出给8255的数据已被外设取走。INTR:中断请求信号,高电平有效;表示数据已被外设取走,请求CPU继续输入数据,中断条件:、INTE均为高电平,INTR由的下降沿复位。INTE:8255片内中断允许触发器,高电平有效;INTE A 由PC6复位/置位控制INTE B 由PC2复位/置位控制方式1输出方式下时序如图:WROBFACKINTROUTPUT 工作方式2仅对A口 A口

17、定义为八位双向总线端口,既可发送数据,又可接收数据,输入输出均锁存C口定义为五位控制信号端口,作为A口的控制状态信号既可工作于查询方式,也可工作于中断方式。各控制信号功能如下:INTR:中断请求信号,高电平有效,用于向CPU发出中断申请;:输出缓冲器满,低电平有效,8255输出给外设的联络信号, 表示输出时,CPU已将数据送进了A口。:外设响应信号,低电平有效,用来启动A口向外输出数据。INTE1:输出中断允许触发器,由PC6的复位/置位控制。:选通输入信号,低电平有效。 外设送来的信号,用来将数据送入输入锁存器;IBF:输入缓冲器满,高电平有效,表示数据已送入输入锁存器INTE2:输入中断允

18、许触发器,由PC4的复位/置位控制。D7 D6D5D4 D3 D2 D1 D0 PC3 INTR 1 1 I/0 I/O I/O PA7-0 8 PC2-0: PC7 端口B 1 输入 PC6 方式2 1 输入 0 输出 INTE1 A口双向方式 0 输出 PC4 B组方式 PC5 IBF 0:方式0 PC2-0 I/01:方式1 INTE2 方式2下8255控制字 方式2下联络信号B口可以工作在方式0或方式1,可以作为输入,也可以作为输出,C口的低3位用于B口 方式0 方式1输出 方式1输入PC0 I/O INTR INTRPC1 I/O OBFB IBFBPC2 I/O INTEB INT

19、EB第五章 软件设计与说明系统软件主要功能是对整个计算机系统进行调度、管理、监视及服务等。它能够使系统的各种资源得到合理的调度和高效的使用,并能监视系统的运行状态,一旦出现故障就能自动保护现场信息使之不受破坏,并诊断出故障部位。它还可以帮助用户调试程序、查找程序中的错误等。5.1 程序设计主程序主要功能是控制调用子程序,实现温度的实时显示、读出并处理ADC0809的数据测量值(温度测量每0.1s进行一次)。#include#include #define uchar unsigned char#define uint unsigned int#define AD0809 XBYTE0X8000

20、 /*根据外围电路与单片机的连线计算AD0809数据端口地址*/#define S273 XBYTE0X8200 /*地址计算方式同上*/sbit led1=P11;sbit led2=P12;uchar x,num,chuzhi1,chuzhi2,key,cishu,m,n,j,k;uchar code shu16=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;#define pa XBYTE0xffff#define pc XBYTE0xfffe#define wei XBYT

21、E0xfffd#define duan XBYTE0xfffcvoid delay(unsigned int m ) /*延时子程序*/ unsigned int n; for(m;m0;m-) for(n=0;n0;i-) for(j=110;j0;j-); void display1() /*实时显示显示子程序*/ duan=shunum/10%10;wei=0x02;delay(1);duan=shunum%100%10;wei=0x01;delay(1);void display(uchar m,uchar n,uchar j,uchar k) /*输入显示显示子程序*/ wei=0x

22、80; duan=datm%10;delay(1); wei=0x40; duan=datn%10;delay(1); wei=0x10; duan=datj%10;delay(1); wei=0x08; duan=datk%10; delay(1);uchar TestKey() /*键盘检测子程序*/ wei=0; return(pc)&0x0f);uchar keyscan() /*键盘扫描子程序*/ uchar pos,i,k; i=8; pos=0x80; do wei=pos; pos=1; k=pc&0xf; while(-i!=0)&(k=0); if(k!=0) i*=4;

23、if(k&2) i+=1; else if(k&4) i+=2; else if(k&8) i+=3; wei=0; while(TestKey(); return(i); else return(0xff); void main() /*主程序*/ cishu=0; pa=0x89; key=0; while(1) if(TestKey() cishu=cishu+1; key=key_codekeyscan()%16; if(cishu=1) m=key; if(cishu=2) n=key; if(cishu=3) j=key; if(cishu=4) k=key; cishu=cish

24、u%4; display(m,n,j,k); chuzhi1=m*10+n; chuzhi2=j*10+k; AD0809=0X00; delay1(1); num=AD0809; display1(); if(num=chuzhi1)&(num=chuzhi2) led1=0; 总结通 过这次课程设计,使我对硬件电路的工作原理有了进一步的学习,进一步的认识;在软件方面,在程序的设计,程序的调试方面都学到了很多东西,很有成就感。在 这次课程设计中我遇到了一些困难,但在老师的指导和同学的帮助,再加上自己查阅了些许资料的情况下都解决了。虽然课程设计进行的不够顺利,但还是完成了任 务,使自己的专业知识又得到了提升。21世 纪是计算机全面应用的时代,很多人不是在制造计算机而是在使用计算机。在使用计算机的人群中只有从事嵌入式系统应用的人才真正地进入到计算机系统内部软硬 件体系中,才能真正领会计算机的智能化本质并掌握智能化设计的知识。通过这次难得的实践机会给了我很大收获,不仅巩固了原有的知识,并增强了动手能力,培 养了面对问题的分析能力以及遇到困难如何应对。参考文献1 王守中.51单片机开发入门与典型实例.人民邮电出版社2 王迎旭.单片机原理及应用.机械工业出版社,北京:20043 楼然苗.51系列单片机设计实例. 北航出版社

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号