毕业设计(论文)-基于单片机的粮库温湿度控制系统的设计.doc_第1页
毕业设计(论文)-基于单片机的粮库温湿度控制系统的设计.doc_第2页
毕业设计(论文)-基于单片机的粮库温湿度控制系统的设计.doc_第3页
毕业设计(论文)-基于单片机的粮库温湿度控制系统的设计.doc_第4页
毕业设计(论文)-基于单片机的粮库温湿度控制系统的设计.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

引 言电子计算机的产生和发展,使过去许多因为计算复杂而长期被搁置的数学难题得以解决,从而有力推动了科学技术的发展,推动了工农业生产、交通运输、空间技术及医疗卫生等事业的发展。特别是近10多年来,微处理机与微型计算机的发展,以深入到科研、国防、工业、农业、交通运输、宇航、医疗卫生、企业管理及人类社会生活的各个领域,有利推动了人类社会的进步。为适应社会发展需要,微型计算机不断地更新换代,新产品层出不穷。在微型计算机的大家族中,近年来单片微型计算机异军突起,发展极为迅速。目前,单片机正朝着高性能和多品种方向发展,进一步向着cmos化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。随着单片机技术的飞速发展,单片机在各个领域中都得到了广泛的应用。其中,由单片机组成控制系统,已成为单片机应用的发展趋势。粮食是人类生存的必需品,温度与湿度是保存好粮食的先决条件,随着中国加入wto和粮食市场的逐渐开放,储存大量的粮食对稳定国民经济的发展起到至关重要的作用。本课题设计的是粮库温湿度控制系统,是对一个粮库的温湿度进行控制,以保证粮库储粮的安全。粮库温湿度控制系统是以mcs-51系列单片机为核心构成控制系统。本课题完成了整个系统的硬件设计,提出了一种可以应用于中小型粮库的温湿度控制系统。第一章 绪 论1.1 单片机的简介 1.1.1 单片机的发展单片微型计算机(single-chip microcomputer)简称单片机。它是一块芯片上集成了中央处理器(central processing unit, cpu)、随机存取存储器(random access memory, ram)、只读存储器(read only memory, rom)、定时/计数器及i/o(input/output)接口电路等部件,构成一个完整的微型计算机。单片机的发展历史并不长,它的产生和发展与计算机的产生和发展大体上同步,经历了四个阶段。第一阶段(19701974年):为4位单片机阶段。这种单片机的特点是:价格便宜,控制功能强,片内含有多种i/o接口,有的根据不同用途还配有许多专用接口,有些甚至还包括a/d转换,d/a转换,声音合成等电路。丰富的i/o功能大大增强了4位单片机的控制能力,从而使外部设备接口电路极为简单。4位单片机主要应用于录音机,摄像机,电视机,电冰箱,洗衣机,录像机和电子玩具等产品中。第二阶段(19741978年):为低中档8位单片机阶段。它是8位单片机的早期产品,以intel公司的mcs-48系列单片机为代表,这个系列的单片机在片内集成8位cpu,并行i/o口,8位定时/计数器,ram和rom等,无串行接口,中断处理较简单,片内ram和rom容量较小,且寻址范围不大于4kb。第三阶段(19781983年):为高档8位单片机阶段。这类单片机是在低中档基础上发展起来的,其性能有明显提高。以intel公司的mcs-51系列单片机为代表,在片内增加了串行接口,有多级中断处理系统,16位定时/计数器,片内ram, rom容量增大,寻址范围可达64kb,有的片内带有a/d转换接口。这类单片机功能强,应用领域广,是目前各类单片机中应用最多的一种。第四阶段(1983年至今):为8位单片机巩固发展阶段及16位单片机,32位单片机推出阶段。此阶段主要特征是:一方面不断完善高档8位单片机,改善其结构,以满足不同用户的需要;另一方面发展16位单片机、32位单片机及专用型单片机。16位单片机除了cpu为16位外,片内ram为232b,rom为8kb,片内带有高速输入输出部件,多通道10位a/d转换部件,中断处理为8级,其实时处理能力更强。近年来,各个计算机生产厂家已进入更高性能的32位单片机研制和生产阶段,32位单片机除了具有更高的集成度外,主振频率可达20mhz,这使32位单片机的数据处理速度比16位单片机快很多,性能比8位,16位单片机更加优越。1.1.2 单片机的特点由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要具有如下特点:(1)有优异的性能价格比。(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、i/o口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。1.1.3 单片机的应用由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现在以下几个方面:(1)单片机在智能仪表中的应用。单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。(2)单片机在机电一体化中的应用机电一体化是机械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。(3)单片机在实时控制中的应用。单片机广泛地用于各种实时控制系统中。例如,温度和湿度的自动控制、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。(4)单片机在分布式多机系统中的应用。在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制。单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。(5)单片机在人类生活中的应用自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、收录机等家用电器配上单片机后,提高了智能化程度。1.2粮库温湿度控制原理随着我国科技的快速发展和农业自动化程度的提高,粮库管理技术也将得到进一步改进。粮库一般较大,仓库库房数较多,测点可达数百个。粮仓温度湿度测量方法以及相应的智能控制一直是粮食保存的一个重要问题。假设该粮库共有1个仓库,在每个仓库中要安装多个温湿度传感器,分布在该仓库的重要位置,每个温湿度传感器实际上是一个终端设备,也是该系统中的重要关键的设备。在每个设备中都有一个新型的温度传感器和湿度传感器,用于测量现场的温度和湿度,并将测量的温度湿度值,经0809发送到单片机上,以便控制整个粮库的各个测试点的温度湿度加以全面监视和控制管理。对每个设备都要设置温度湿度监控的上限和下限值。当温度超过上限值时,说明该点的温度超过标准温度,则需要该系统直接启动本仓库中的空调设备降温,真正做到实时控制,同时也要向报警系统发送超温信号;当温度降到标准值时,则停止降温;如果温度低于下限值时,则要直接启动空调设备加热,并向报警系统报告,而当温度上升到标准值时停止加热。湿度对粮食的保管是尤为重要的,如果相对湿度过大,粮食容易发霉腐烂,而相对湿度太小时,粮食过度干燥又容易变质。如果测量到相对湿度过大而超过上限值时,就要直接启动本仓库中的除湿设备排除过多的水分,同样也需要通过系统来启动除湿设备,当湿度降低到标准值时停止除湿。但同时也要将湿度超标的信号发送到报警系统;如果湿度降低到下限值时,也要直接启动本仓库的加湿设备进行加湿,防止过于干燥而使粮食变质。1.3粮库温湿度控制系统的整体设计该系统选用了intel公司生产的mcs-51系列中的8051作为微处理器,8051编程灵活,扩展空间大,可以用软件编程来辅助硬件工作,以完善整个系统的功能。8051电源时钟电路复位电路 32k程序存储器 32k数据存储器8255显示器键盘adc0809温湿度开关量 控 制报警电路看门狗电路加 温加 湿温度检测电路湿度检测电路本系统首先通过键盘设定各项参数,包括储藏地点的温湿度限制。然后由温度、湿度检测电路时检测采集各储藏地点的温度、湿度。接着经由a/d转换模块将采集到的模拟信号转换为数字信号送到8051内部进行处理,同时在显示器上显示测试值,系统获得数据后和设定值比较,控制空调系统工作,以达到控制温度、湿度的目的,再通过通信线路向系统传输数据。本系统中温度、湿度均为缓变信号,且转换成的电平信号为低电平缓变信号,对a/d转换的要求不高,所以选用较为廉价的adc0809。该芯片采用的是8位逐次逼近型a/d转换器,完全可以满足设计需要,并且可以根据需要扩展检测通路。温度检测主要采用集成温度传感器ad590;湿度检测主要采用电容式湿敏元件hs1101。另外,本系统还增添了看门狗和报警系统,使系统更加完善。图1.1为系统的整体设计。 图1-1 系统总体设计框图第二章 mcs-51系列单片机的结构及原理2.1 mcs-51系列单片机的特征和结构2.1.1 mcs-51系列单片机特征美国intel公司推出mcs-51系列高档8位单片机至今20多年来,51系列单片机经久不衰,并得到了极其广泛的应用。它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,mcs-51单片机可以算是相当成功的产品,一直到现在,mcs-51系列或其兼容的单片机仍是应用的主流产品。mcs-51系列单片机的典型产品为8051、8031和8751。通常mcs-51这个术语泛指以8051为内核的单片机。8051是rom型单片机,内部有4kb的掩膜rom,即单片机出厂时,程序已由生产厂家固化在程序存储器中。8051内部结构具有如下特征:面向控制的8位cpu;4kbytes 程序存储器(rom),128bytes的数据存储器(ram);可以寻址64kb的片外程序存储器和片外数据存储器;32根双向和可单独寻址的i/o线;一个全双工的异步串行口;两个16位定时/计数器;5个中断源,两个中断优先级;有片内时钟振荡器;采用高性能的hmos生产工艺生产;有布尔处理(位操作)能力;含基本指令111条,其中单机器周期指令64种。2.1.2 mcs-51系列单片机的内部总体结构图2-1所示为mcs-51单片机的基本结构,它由8个部件组成,即中央处理器(cpu),片内数据存储器(ram),片内程序存储器(rom/eprom),输入输出接口(input/output,简称i/o口,分为p0口、p1口、p2口和p3口),可编程串行口,定时/计数器,中断系统及特殊功能寄存器(sfr),各部分通过内部总线相连。图2-1 mcs-51单片机的基本结构2.2 mcs-51系列单片机的引脚功能和总线结构2.2.1 mcs-51系列单片机的引脚功能8051芯片采用40引脚的双列直插封装,如图2-2(a),分为地址总线,数据总线,控制总线3类见图2-2(b)。在40条引脚中有两条专用于住电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出引脚。(a)引脚图 (b)总线结构图图2-2 mcs-51系列单片机的引脚及总线结构40条引脚的功能分别是:1.主电源引脚vcc和vssvcc(40脚)接+5v电压;vss(20脚)接地。2.外接晶振引脚xtal1和xtal2xtal1(19脚):接外部晶体的一个引脚。在主控电路中它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,此引脚应接地。xtal2(18脚):接外部晶体管的另一端。在主控电路中接至上述振荡器的反相放大器的输出端。采用外部振荡器时,该引脚接外部振荡器的信号,即把外部振荡器的信号直接到内部时钟发生器的输入端。3.控制与其它电源复用引脚rst/vpd、ale/、和/vpp(1)rst/vpd(9脚):当振荡器运行时,在此引脚上出现两个机器周期的高电平将使主电路复位。在设计主电路是此引脚与vss引脚之间连接一个约8.2k的下拉电阻,与vcc引脚之间连接约10f的电容,以保证可靠地复位。vcc掉电期间,此引脚可接备用电源,以保持内部ram的数据不丢失。当vcc主电源下掉到低于规定的电平,而vpd在其规定的电压范围(50.5v)内,vpd就向内部ram提供备用电源。(2)ale/(30脚):当访问外部存储器时,ale(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ale端也以不变的频率周期地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可以做对外输出时钟,或用于定时目的。然而要注意的是,每当访问外部存储器时,将跳过一个ale脉冲。ale端可以驱动(吸收或输出电流)8个ls型的ttl输入电路。对于有eprom时,在eprom编程期间,此引脚用于输入编程脉冲()。(3)(29脚):此脚的输出是外部程序存储器的读选信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的信号将不出现。同样可以驱动(吸收和输出)8个ls型的ttl输入电路。(4)/vpp(31引脚):当端保持高电平时,访问内部程序存储器,但在8051内值超过0fffh,将自动转向执行外部程序存储器内的程序。当保持低电平时,则只访问外部程序存储器,不管是不是有内部程序存储器。当扩展eprom时,在对eprom编程期间,此引脚也用于施加5伏的编程电源。4. 输入/输出引脚p0口、p1口、p2口和p3口(1)p0口(39脚32脚):是双向8位三态i/o口,在外部存储器,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个lsttl负载。外部扩展存储器时,当做数据总线(如图2-2中的p0.0p0.7为数据总线接口);外部扩展存储器时,当作地址总线(如图2-2中的p0.0p2.7为地址总线接口),不扩展时,可做一般的i/o使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。(2)p1口(1脚8脚):是8位准双向i/o口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向i/o口。p1口能驱动(吸收或输出电流)4个lsttl负载。p1口只作i/o口使用,其内部有上拉电阻。(3)p2口(21脚28脚):是8位准双向i/o口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。扩展外部存储器时,当作地址总线使用,作一般i/o口使用,其内部有上拉电阻。(4)p3口(10脚17脚):是8位准双向i/o口,这8个引脚还用于专门功能,是复用双功能口。除了作为i/o使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能如表2-1所示。作为第一功能使用时,就作为普通i/o口用,功能和方法与p1口相同。值得注意的是,p3口的每一条引脚均可独立定义第一功能的输入输出或第二功能。表2-1 p3口第二功能2.2.2 三总线结构单片机的引脚除了电源、复位、时钟接入和用户i/o口外,其余引脚都是为了实现系统扩展而设置的。这些引脚构成了三总线形式。引脚功能分类如图2-2(b)所示。(1)地址总线ab:地址总线宽度16位,因此外部存储器直接寻址范围64kb。16位地址总线由p0口经地址锁存器提供8位地址a0a7,p2口直接提供高8位地址a8a15。(2)数据总线db:数据总线宽度为8位,由p0口提供。(3)控制总线cb:由p3口的第二功能状态和4根独立控制线reset,ale组成。2.3 mcs-51系列单片机的主要组成部分2.3.1 cpu8051的cpu是由运算器和控制器组成。(1)运算器:它包括算术、逻辑部件alu、累加器acc、寄存器b、暂存器ymp1和ymp2、程序状态寄存器psw、布尔处理器以及十进制调整电路等。运算器主要用来实现数据的传送、数据的算术运算和逻辑运算、位变量处理等。运算部件alu的功能十分强大,它不仅可对8位变量进行逻辑“与”、或“异或”、循环、求补、清零等基本操作,还可进行加、减、乘、除等基本运算。为了乘除的需要,还设置了b寄存器。在执行乘法指令时,用来存放其中一个乘数的高8位数;在执行除法运算指令时,b中存放除数及余数。主控电路指令系统中的布尔指令集、存储器中的位地址空间与cpu中的位操作构成了片内的布尔功能系统,它可对(bit)变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”、等操作。在实现位操作时,借用了程序状态标志寄存器(psw)中的进位标志位cy作为操作的“累加器”。运算部件中的累加器acc是一个8位的累加器(acc也可简称为a)。需要说明的是acc的进位标志cy就是布尔处理器进行以位操作的一位累加器。8051的程序状态寄存器psw,是一个8位寄存器,它包含了程序的状态信息。(2)控制器:控制部件是主控电路的神经中枢,它包括时钟电路、复位电路、指令寄存器、译码器以及信息传送控制部件。它以主振频率为基准发出cpu时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的操作,用来控制电路的各部分的运行。通常把运算器和控制器合在一起称为中央处理器(central processing unit),简称cpu。2.3.2 存储器8051片内有4kb的程序存储器和128b数据存储器。除此之外还可以在片外扩展64kb的程序存储器和64kb的数据存储器。图2-3为存储器结构图。其中,内部存储器的4kb是与外部存储器公共的,地址是从0000hffffh, 64kb外部的程序存储器和数据存储器的地址都是0000hffffh,128b的片内数据存储器地址是从00h80h。以下分别介绍这些存储器:(1)程序存储器程序存储器用于存放编号的程序和表格常数,它以程序计数器pc作地址指针。一个微处理器能够很好的执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行的。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(rom)。程序存储器的结构如图2-3(a)所示。对于8051等单片机,正常运行时,则需单片机的端接高电平,使cpu先从内部的程序存储中读取程序,当pc值超过内部rom的容量时,才会转向外部的程序存储器读取程序。其条件为:当1时,程序从片内rom开始执行,当pc值超过片内rom容量时会自动转向外部rom空间。当0时,程序从外部存储器开始执行。其中一组特殊是0000h0002h单元,系统复位后,pc为0000h,单片机从0000h单元开始执行程序,如果程序不是从0000h单元开始,则应在这三个单元中存放一条无条件转移指令,让cpu直接去执行用户指定的程序。另一组特殊单元是0003h002ah,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:0003h000ah 外部中断0中断地址区。 000bh0012h 定时/计数器0中断地址区 0013h001ah 外部中断1中断地址区 001bh0022h 定时/计数器1中断地址区 0023h002ah 串行中断地址区 可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。(2)数据存储器数据存储器由工作寄存器、位寻址区和数据缓冲器组成,其结构图如2-3(b)所示。8051内的数据存储器的特点之一是工作寄存器和数据存储器是统一编址的。内部ram的001fh为工作寄存器区,共分4个区,每区有8个工作寄存器r0r7,共32个内部ram单元。当前程序使用的工作寄存器是由程序状态字psw的第3位(rs0)和第4位(rs1)这二位指示的,用户可以通过指令改变psw中的rs1和rs0这二位来切换寄存器区,cpu通过修改psw中的rs1和rs0二位的状态,就能任选一个工作寄存器区。片内存储器的复位状态及操作方法如表2-2所示。表2-2 内部数据复位状态及操作8051共有128个字节的ram作为数据存储器,当需要外扩时,最多可以扩展64k字节的ram或i/o,这对很多领域已经足够了。图2-3(c)为外部数据存储器的结构图。图2-3 8051存储器结构图(3)特殊功能寄存器8051中的特殊功能寄存器sfr实质上是一些具有特殊功能的ram的单元,字节范围为80hffh,sfr的总数为21个,离散的分布在该区域中,其中有12个位寻址,用户可以通过使用位能标记对12个寄存器的任一个有效位进行位操作。8051片内的i/o口锁存器、定时器、串行口缓冲器以及各种控制寄存器和状态寄存器都以特殊功能寄存器的形式出现。2.3.3 并行i/o口8051单片机有4个8位并行输入/输出端口,分别为p0,p1,p2,p3口,共32根线。下面分别介绍以上四个端口的结构。(1)p0口p0口有两个用途,第一是作为一般i/o口使用;第二是作为地址/数据总线使用。它是由一个锁存器、两个三态输入缓冲器1和2、场效应管vt1和vt2、控制与门、反向器和转换开关mux组成。当控制线c=0时,mux开关向下,p0口作为一般i/o口使用;当控制线c=1时,mux开关向上,p0口作为地址/数据分时复用总线使用。p0口作为i/o口使用时,场效应管vt1是截止的。当从p0口输出时,必须外接上拉电阻才能有高电平输出;当p0口输入时,必须先向锁存器写“1”,以避免锁存器为“0”状态时对引脚读入的干扰。(2)p1口p1口只有一种功能通用准双向的输入/输出接口,所以它没有转换开关mux。内部有上拉电阻,是两个场效应管并在一起形成的。当p1口输出高电平时,可以向外提供拉电流负载,所以不必再接上拉电阻,当输入时,与p0口一样,必须先向锁存器写“1”,使场效应管截止。(3)p2口p2口也有两种用途,一是做通用i/o接口,二是做高8位地址总线。p2口的位结构比p1口多了一个转换控制部分。当p2口作为通用i/o口时,多路开关mux倒向锁存器输出q端,其操作与p1口相同。在系统扩展片外程序存储器时,由p2口输出高八位地址,低八位地址由p0口输出。此时mux在cpu的控制下,转向内部地址线的一端。因为访问片外程序存储器的操作往往连续不断,p2口要不断送出高八位地址,所以这时p2口无法再作为通用i/o口。(4)p3口 p3口作为通用i/o口使用时,其功能与p1口相同,负载能力也相同。当作为第二功能时,见表2-1所示。与p1口相比,p3口增加了与非门和缓冲器3,它们使p3口除了有准双向i/o功能外,还具有第二功能。与非门的作用实际上是一个开关,它决定是输出锁存器上的数据,还是输出第二功能w的信号。当输出锁存器q端的信号时,w=1;当输出第二功能w的信号时,锁存器q端为1。通过缓冲器3,可以获得引脚的第二功能输入。不用考虑如何设置p3口的第一功能或第二功能,内部硬件将自动切换。2.3.4 振荡器和时钟电路时钟电路用于产生单片机工作所需的时钟信号。时钟信号可以由两种方式产生:内部时钟方式和外部时钟方式。图2-4(a)为内部时钟方式,它采用外接晶体和电容组成的并联谐振电路,晶体可以在1.2hz12hz之间任选,电容可以在20pf60pf之间选择。引脚xtal1和xtal2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲。图2-4(b)为外部时钟方式,由于xtal2端逻辑电平不是ttl电平,所以接一个上拉电阻。外部振荡方式就是把外部已有的时钟信号引入单片机内。本设计采用内部振荡方式,外接晶体以及电容c1和c2构成并联谐振电路,接在8051芯片的xtal1和xtal2端一起构成测控主电路的时钟。对外接电容c1和c2的值虽然没有严格要求,但电容的大小多少会影响振荡器的频率的高低、振荡器的稳定性、起振的快速性。外接晶体时,选c1和c2的值为30pf,为了提高温度的稳定性,通常晶体可以在1.2mhz12mhz之间选择。(a) 内部时钟方式(b) 外部时钟方式图2-4 8051的时钟电路2.3.5 复位电路单片机的复位都是靠外部复位电路来实现的,在时钟电路工作后,只要在单片机reset引脚上出现24个时钟振荡脉冲以上的高电平,单片机就能实现复位。为了可靠复位,在设计复位电路时,一般使reset引脚保持10ms以上的高电平,单片机便可以可靠复位。本设计使用了上电复位电路,如图2-5所示,这种上电复位利用电容器充电来实现。当加电时,电容充电,电路有电流流过,构成回路,在电阻上产生压降,reset引脚为高电平;当电容充满电后,电路相当于断开,reset的电位与地相同,复位结束。图2-5 上电复位电路2.3.6 8051的基本系统单片机的基本系统也称为最小系统,这种系统选择的单片机内部资源已能满足系统的硬件需求,不需要外接存储器或i/o接口等扩展部件。这种单片机内含有用户的程序存储器。图2-6为最小系统框图。图2-6 最小系统框图2.4 8051的定时/计数器和中断系统2.4.1 8051的定时/计数器8051内部设有两个16位可编程的定时器/计数器,即定时器/计数器1和0,分别用t0、t1表示。它由两个特殊功能寄存器tmod和tcon及t0、t1组成。其中tmod为模式控制寄存器,主要用来设置定时器/计数器的操作模式;tcon为控制寄存器,主要用来控制定时器的启动与停止。8051定时器/计数器结构如图2-7所示。定时/计数器t0由th0、tl0构成,t1由th1、tl1构成。两个16位的定时器/计数器t0和t1均可以分成2个独立的8位计数器即th0、tl0、th1、tl1,它们用于存定时或计数的初值。定时器/计数器是一种可编程部件,在定时器/计数器开始工作之前,cpu必须将一些命令(称为控制字)写入定时/计数器。将控制字写入定时/计数器的过程叫定时器/计数器初始化。图2-7 8051定时器/计数器结构图2.4.2 8051的中断系统中断是指中央处理器cpu正在执行程序,处理某事件的时候,外部发生了某一事件,请求cpu马上处理。cpu暂时中断当前的工作,转入处理所发生的事件(如控制相应装置工作,使温湿度达到规定要求),处理后再返回原来被中断的地方,继续原来的工作。这样的过程称为中断。实现这种中断的装置称中断系统。8051单片机的中断系统可分为3类:外部中断,定时中断和串行口中断。中断系统的基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。结合图2-8分别介绍中断系统的五个中断源:外部中断0,由p3.2端口线引入,低电平或下跳沿引起。:外部中断1,由p3.3端口线引入,低电平或下跳沿引起。t0:定时器/计数器0中断,由t0计满回零引起。t1:定时器/计数器l中断,由t1计满回零引起。ti/ri:串行i/o中断,串行端口完成一帧字符发送/接收后引起。图2-8 8051的终端中断系统在中断请求被响应前,中断请求标志分别由特殊功能寄存器tcon和scon的相应位锁存。(1)tcon中的中断标志tcon为定时器/计数器的控制寄存器,除了可以用于控制定时/计数器t0和t1的溢出和中断外,还可以控制外部中断和的触发方式和锁存外部中断请求标志。tf1t1溢出中断标志。t1被启动计数后,从初值开始加1计数,直到计满溢出后,由硬件使tf1=1,向cpu请求中断,此标志一直保持到cpu响应中断后,才由硬件自动清“0”。tf0t0中断标志。功能类似于tf1ie1外部中断1标志。ie1=1表明外部中断1向cpu申请中断。it1外部中断1触发方式控制位。ie0外部中断0标志。功能类似于ie1。it0外部中断0触发方式控制位。功能类似于it1。(2)scon中的中断标志scon是串行口控制器,其低2位ti和ri锁存串口的发送中断和接受中断标志。ti串行发送中断标志。cpu将一个字节数据写入发送缓冲器sbuf后启动发送,每发送完一个串行桢,硬件置位ti。但cpu相应中断后并不能自动清除,标志必须由软件清除。ri串行接受中断标志。在串行口允许接受时,每接受完一个串行桢,硬件置位ri。同样,cpu响应中断后不会自动清除ri,标志必须由软件清除。中断优先级寄存器ip,中断优先级中由中断优先级寄存器ip来高置的,ip中某位设为1,相应的中断就是高优先级,否则就是低优先级。中断优先原则如下: 低级不打断高级 高级不理睬低级 同级不能打断 同级、同时中断,事先约定。第三章 mcs-51系列单片机的基本扩展单片机内部的rom、ram的容量、i/o接口等资源往往有限,在实际应用中通常不够用,因此需要对单片机的资源进行扩展。首先需要扩展的是程序存储器和数据存储器。单片机内部虽然有一定数量的存储器,但常常不能满足实际需要,因此要求从外部进行扩展。其次需要扩展的是输入/输出接口。单片机的主要用途是控制,因此它必须与外部设备打交道。单片机虽然设置了4个并行i/o口,用来与外围设备连接,但当外围设备较多时,i/o口就显得不够用,因此需要扩展输入输出接口。3.1 地址锁存器在基本扩展电路中,都用到地址锁存器。这是因为p0口输出的低8位地址必须用地址锁存器进行锁存。本设计选用74ls373,引脚如图3-1。图3-1 地址锁存器74ls373引脚图74ls373是带有三态门的8d锁存器当三态门的使能信号线为低电平时,三态门处于导通状态,允许q0q7输出到,当为高电平时,输出三态门断开,输出线处于浮空状态。当g输入端为高电平时,锁存器输出(q0q7)状态和输入端(d0d7)状态相同;当g端从高电平返回到低电平时(下降沿)时,输入端d0-d7的数据锁入q0q7的8位锁存器中。当74ls373作为地址锁存器时,它们的锁存控制端g可直接与单片机的锁存信号ale相连,在ale下降沿进行地址锁存。3.2 程序存储器的扩展3.2.1 程序存储器芯片选取27128是16k*8位紫外线擦除电可编程只读存储器,单一+5v电源供电,工作电流为100ma,维持电流为40ma,读出时间最大为250ns,27128为28脚双列直插式封装,图3-2为27128引脚图,表3-1为27128的引脚功能。图3-2 27128引脚图表3-1 27128的引脚功能a0a13地址线o0o7数据线数据输出选通线片选线编程脉冲输入编程电源3.2.2 32k eprom扩展电路本设计需要扩展32k的程序存储器,选用2片16k*8位eprom器件27128(a)和27128(b),当p2.6为低电平时,选中27128(a),高电平时经反相器选中27128(b)。图3-3为2片27128与8051连接的电路图。27128的14根地址线a0a13可选中27128eprom中任意单元。27128的地址范围是0000h3fffh。图3-3 2片27128与8051连接电路图3.3 数据存储器的扩展3.3.1 数据存储器芯片选取8051单片机内部有128个字节ram。cpu对内部ram有丰富的操作指令,在实际应用中,仅靠片内ram往往不够,必须扩展外部数据存储器。62256容量为32k,单一+5v供电,工作电流为8ma,维持电流0.5a,读出时间最大为250ms,28线双列直插式封装。a0a14:地址输入线;d0d7:数据线;:片选信号输入线,低电平有效,且为低电平时才选中该片;:读选通信号输入线,低电平有效;:写允许信号输入线,低电平有效;vcc:工作电源+5v; 该设计采用的sram芯片为62256,其结构图如3-4所示。图3-4 扩展芯片62256引脚结构图3.3.2 32k静态ram扩展电路62256是32k容量的,故用到了15根地址线。sram芯片62256与8051的接口电路如图3-5所示。图3-5 8051与62256连接电路图3.4 8051与32k eprom和32k sram连接结构图8051与2片eprom 27128提供32k字节的片外程序存储器,用一片静态ram 62256提供32k字节的片外数据存储器。总体结构图如图3-6所示。图中的62256接8051的p2.7,p2.7输出常为0时,才能选通62256,所以它的地址为0000h7fffh。图3-6 8051与外部存储器扩展总体结构图3.5 8051 i/o口的扩展8051单片机共有4个8位并行i/o口,这些i/o口一般是不能完全提供给用户使用的,提供给用户使用的i/o口只有p1口和p3口的部分口线,因此需要进行i/o口的扩展。8051单片机的外部数据存储器ram和i/o是统一编址的,用户可以把外部64k字节的数据存储器ram空间的一部分作为扩展i/o接口的地址空间,每一个接口芯片中的一个功能寄存器口地址就相当于一个ram存储单元,cpu可以象访问外部存储器ram那样访问外部接口芯片,对其功能寄存器进行读、写操作。8255就是其中的一种,本设计用其来扩展键盘和显示器。3.5.1 8255a芯片的介绍8255a是intel公司生产的可编程并行接口芯片,它具有3个8位的并行i/o口,分别为pa口、pb口、pc口,其中pc口又分为高4位和低4位口,它们都可以通过软件编程来改变其i/o口输入输出方式。8255a在单片机应用系统中被广泛用作可编程外部i/o扩展接口。用8255a连接外部设备时,通常不用再附加外部电路,给使用者带来很大方便。8255a的内部结构和引脚图如图3-7所示。图3-7(a) 8255a结构框图 图3-7(b) 8255a引脚图8255a可编程并行接口由以下4个逻辑结构组成。(1)数据总线驱动器这是双向三态的8位驱动口,用于和单片机的数据总线相连,以实现单片机与8255之间的数据传送。(2)3个并行i/o端口a口:具有一个8位数据输出锁存/缓冲存储器和一个8位数据输入锁存器,是最灵活的输入输出寄存器,可为编程8位输入输出或双向寄存器。b口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存),为可编程8位输入输出寄存器,但不能双向输入/输出。c口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存),这个口可分为两个4位口使用。c口除做输入输出口使用外,还可以作为a口、b口选通方式操作时的状态控制信号。(3)读/写控制逻辑它用于管理所有的数据、控制字或状态字的传送。它接受单片机的地址信号和控制信号来控制各个口的工作状态。(4)a组和b组控制电路端口a与端口c的高4位(pc7pc4)构成a组,由a组控制部件实现控制功能;端口b与端口c的低4位(pc3pc0),由b组部件实现控制功能。它们各有一个控制单元,可接收来自读/写控制部件的命令和cpu通过数据总线(d7d0)送来的控制字,并根据它们来定义各个端口的操作方式。8255a有三种工作方式,即方式0、方式1、方式2。方式0是基本输入输出方式;方式1是选通输入输出方式;方式2是双向传送(仅对pa口)方式。端口a可处于3种工作方式(方式0,1,2);端口b可处于两种方式(方式0和方式1);端口c常常被分为高四位和低四位两部分,分别用来传送数据或控制信息。用户可用软件来分别定义3个端口的工作方式,可使用的控制字由定义工作方式控制字和置位/复位控制字。8255a工作方式的选择是通过控制口输入控制字的方式实现的。控制字有方式选择控制字和c口置位/复位控制字。(1)工作方式控制字工作方式控制字格式如图3-8所示。通过定义工作方式控制字可将3个端口分别定义为3种不同方式的组合。当将端口a定义为方式1或方式2或将端口b定义为方式1时,要求使用端口c的某些位作控制用,这时需要使用一个专门的置位/复位控制字来对控制端口c的各位分别进行置位/复位操作。图3-8 8255a的工作方式控制字(2)置位/复位控制字:只对端口c有效,其使用格式如图3-9所示。图3-9 端口c置位/复位控制字8255a中的端口a和端口b的工作在方式1时,可构成8种不同的状态组合方式。端口c的低4位总是作控制用,而高4位总是保持有两位仍然可作数据输入/输出用,因此控制字中的d0位可为任意值,d1,d3,d4位的不同取值构成8种不同的状态组合方式。本设计采用的是方式1工作方式。3.5.2 8255a芯片与8051接口的电路图8255的片选信号由三八译码器74ls138的输出端y0来控制。图3-10为8255与单片机8051连接图。图3-10 8051与8255的连接电路图译码法是由译码器组成的译码电路,译码电路将地址空间化成若干块,其输出端分别选通一片存储器芯片,这样既充分利用存储空间,有避免了空间分散的缺点。本设计选用的是“3-8”译码器74ls138,具有3个选择输入端,可组合成8种输入状态。8个输出端,每个输出端分别对应8种输入状态中的一种,0电平有效。3.6 键盘和显示器的设计3.6.1矩阵式键盘的设计矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。44的键盘行线通过电阻接+5v。当键盘上没有键闭合时,所有的行线和列线断开,行线都呈高电平。当键盘上某一个键闭合时,则该键所对应的列线与行线短路。例如0号键按下闭合时,行线x3和列线y0短路,此时列线y0 的电平由x3行线的电位所决定。操作人员可以通过键盘向计算机输入数据,地址、指令或其它控制命令,实现人机对话。44的键盘结构如图3-11所示。键盘是由若干个按键组成的开关矩阵,它是一种廉价的输入设备。一个键盘,通常包括有数字键(09),字母键(az)以及一些功能键。操作人员可以通过键盘向计算机输入数据,地址、指令或其它控制命令,实现人机对话。用于计算机系统的键盘按其结构形式可分为两类:一类是编码键盘,即键盘上闭合键的识别由专用的硬件来实现;另一类是非编码键盘,即键盘上闭合键的识别由软件来识别。键盘扫描子程序中完成如下几个功能:(1)判断键盘上有无键按下。其方法为pc口低4位输出全为0,读pa口状态,若pa0pa7为全1,则说明键盘无键按下;若不全为1,则说明键盘有键按下。(2)消除按键抖动的影响。其方法为,在判断有键按下后,用软件延时的方法延时10ms,再判断键盘状态,如果仍为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理。(3)求按键位置。根据前面介绍的扫描法,进行逐行置0扫描,最后定位按键位置。键闭合一次仅进行一次按键的处理,方法是等待按键释放之后,再进行按键功能的处理操作。图3-11 4x4小键盘接口图3.6.2 led显示器的设计led 显示块是由若干个发光二极管组成的显示器,这种显示块有共阳极和共阴极两种。本设计为6位led显示器的设计。图3-12 7段led结构图七段led共有8个发光二极管,其中7个发光二极管七端字形“8”,发光二极管构成小数点。发光二极管阴极连在一起称为共阴极显示器,如图3-12(b)所示。共阴极led显示器的发光二极管阴极接地,当某个发光二极管的阳极为高电平时,即逻辑电平“1”时,发光二极管点亮;发光二极管阳极接在一起的称为共阳极显示器,如图3-12(c)所示。共阳极led显示器的阳极接在+5v电压源上,当某个发光二极管的阴极为低电平,即逻辑“0”时,发光二极管点亮。点亮显示器有静态和动态两种方式。所谓静态显示就是显示器在显示某个字符时,相应的发光二极管恒定的导通或截止。这种显示方式每个显示器都需要一个8位输出口控制,需要硬件多,适用于显示位数较少的场合。当显示位数较多时采用动态显示。所谓动态显示就是一位一位的轮流点亮各位显示器,对于每位显示器来说,每隔一段时间点亮一次。显示器的点亮和点亮时的导通电流有关,还与点亮时间和间隔时间有关,调整电流和时间参数,可实现亮度较高较稳定的显示。若显示的位数不大于8位,则控制显示器公共电极只需一个i/o控制各位显示器,所显示的字形也需要一个i/o口。8255提供两个输出口,a口输出经同向驱动芯片7407驱动后接显示器公共极,作为字位口,b口输出为字形口,亦

温馨提示

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

评论

0/150

提交评论