课程设计二说明书 70页

  • 2.00 MB
  • 2022-04-22 11:26:45 发布

课程设计二说明书

  • 70页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课程设计二说明书一、引言1、设计目的本设计是一综合课程设计,它集“传感器原理与应用”、“模拟与数字电子技术”、“单片微型计算机原理与应用”、“电机与驱动技术”等课程内容,其目的要求综合应用这几门课程内容,掌握常见机械自动化控制系统的应用技术。通过设计了解微机控制系统的总体设计过程、机械自动化控制方案的比较、传感器与驱动的选择、硬件电路的设计与绘制、控制软件的编制,培养学生综合应用各门课程的能力,同时锻炼和培养学生的独立工作、调查研究、分析问题、解决问题的工作能力。2、本课程设计的设计工作内容与要求1.进行设计目标、基本功能、技术参数的分析和制定。2.进行总体控制方案设计,完成微机接口芯片、传感器、执行机构驱动形式、信号调理电路、供电电源等核心部件的选择和分析。3.完成控制系统的硬件电路设计和绘制。4.完成控制系统的功能实施程序的编制。5.完成“传感信号的采集”、“键盘输入”、“数值显示”等关键程序的软件仿真调试与实验验证。6.撰写设计说明书。3、成员任务分配以斜体标注于目录旁 二、具体内容及基本要求库房室温监测报警仪1.设计任务利用温度传感器和单片机技术设计一套库房室温监测报警仪,报警温度可设定输入,温度测量误差为±1°C,温度监测报警仪具有日期、时钟显示功能。2.设计目的1、了解有关温度传感器的工作原理、加工工艺的相关知识。2、综合运用其他先修课程的理论和实践知识,制定设计方案,确定温度传感器的型号的参数,掌握温度的检测方法。3、掌握模拟信号获取、传输、处理及检测的一般方法。4、掌握由微型计算机实现数字输入和显示功能的技术。5、学会应用温度传感器组建一个简单的测量系统,提高解决实际工程问题的设计能力。6、通过计算、分析、绘图,能运用标准、规范、手册并学会查阅有关资料,培养仪器设计的基本技能,为毕业设计等奠定良好的基础。3.设计要求1、详细了解所选用的温度传感器的工作原理、工作特性、技术参数、应用电路等。2、设计合理的信号调理电路。3、用单片微型计算机和A/D芯片进行信号的采样等相关处理电路。4、设计合理的单片微型计算机的显示和键盘输入接口电路。5、设计合理的系统供电电路。6、用计算机绘图软件绘制硬件电路原理图,用C51或汇编语言编设计编制相关程序,并用Keil仿真软件或仿真实验箱对“传感信号的采集”、“键盘输入”、“数值显示”等关键程序进行仿真调试和实验验证。7、列出制作该系统的元件清单。 8、撰写详细的设计说明书一份。三、课程设计设计过程1.设计任务、要求和目标分析本课程设计的任务为利用温度传感器和单片机技术设计一套库房室温监测报警仪。要求该报警温度可由用户输入,温度测量误差为±1°C。同时温度监测报警仪具有日期、时钟显示功能。要求通过本次课程设计能够完成一个能在实际工业现场中运用的温度监测系统。该系统的输入设备为4x4行列式键盘,温度设定操作简易,用户界面良好。通过编译程序可以控制继电器的开闭,从而控制外部设备的运行,通过对温度报警的设置可以进行定时对设备进行自动化控制,体现了产品的智能化。系统的工作原理为:温度传感器单片机键盘控制复位电路显示电路报警电路电源电路2.控制系统要处理的输入信号以及元器件的选用a)现场温度信号:由温度传感器DS18B20从现场读入温度值,并由温度传感器的中集成的A/D转换器将其转化为电信号。b)实时时间信号:由PCF8563时钟芯片记录当地时间。c)温度设置信号:由4x4行列式键盘输入用户给定温度对这些信号进行处理后:a)时间信号和温度信号,通过8279显示器/键盘接口电路由LED数码显示器(七段数码管)显示输出。 b)现场温度与设定的温度比较后输出信号确定报警系统的启动与否。3.实施方案的设计与分析据所选择的元器件,系统原理图可细化如下图所示4.温度采集模块设计根据调查,目前市面上可用的温度传感器有:热敏电阻,DS18B20,DS1621。 热敏电阻器是敏感元件的一类,其典型特点是温度敏感,不同的温度下表现出不同的电阻值。;热敏电阻的工作温度范围宽,常温器件适用于-55℃~315℃,高温器件适用温度高于315℃(目前最高可达到2000℃),低温器件适用于-273℃~55℃;热敏电阻体积小,能够测量其他温度计无法测量的空隙、腔体及生物体内血管的温度;热敏电阻使用方便,电阻值可在0.1~100kΩ间任意选择;热敏电阻易加工成复杂的形状,可大批量生产;热敏电阻的稳定性好、过载能力强。DS1621是一种功能较强的数字式温度传感器和恒温控制器。接口与I2C总线兼容,且可以使用一条I2C总线控制多达8片的DS1621。其数字温度输出达9 位,精度为0.5℃。通过读取内部的计数值和用于温度补偿的每摄氏度计数值,利用公式计算还可提高温度值的精度。DS1621可工作在最低2.7V电压下,适用于低功耗应用系统。DS18B20为可编程分辨率的单总线数字温度计。采用独特的单线接口,仅需要一个端口引脚进行通讯。在其内部存储器中有64位的序列号。可以通过数据线为DS18B20供电,供电范围为3.0v到5.5v。测温范围为-55至+125摄氏度。最多在750ms内将温度转换为12位的数字。对三款元件进行分析比较,得出以下结论:名称成本精度占用I/O数量速度总线热敏电阻中较差多慢无DS18B20低良好1<720ms单线DS1621高精确2<1sI2C最终,根据实际的使用环境、精度要求以及成本考虑,选择的温度传感器元件为DS18B20,其主要原因主要有以下几方面:(1)系统的特性:测温范围为-55℃~+125℃,测温精度为士0.5℃;温度转换精度9~12位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。(2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。(3)系统复杂度:由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。(4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ,外供电 源线VDD,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接,其接口电路如图4所示。图4温度传感器接口4.1硬件电路设计本温度报警器采用美国DALLAS公司生产的单线数字温度传感器DS18B20如图3.1,可以把温度信号直接转换成串行数字信号工微机处理,是模数转换器件,而且读DS18B20信息或写DS18B20信息仅需要单线接口,使用非常方便;其测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃,可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;同时DS18B20在使用中不需要任何外围元件(仅需一个4.7K的上拉电阻),全部传感元件及转换电路集成在形如一只三极管的集成电路内,硬件电路十分简单。 DS18B20测温原理如下图所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20测温原理DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:●独特的单线接口仅需要一个端口引脚进行通信;●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;●无须外部器件;●可通过数据线供电,电压范围为3.0-5.5V;●零待机功耗;●温度以9或12位数字;●用户可定义报警设置;●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图所示。 存储和控制逻辑高速暂存器温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC生成器64位ROM和一线端口供电方式DS18B20内部结构框图64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 0.0625℃/LSB形式表示。当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。DS18B20功能命令如表所示:表1DS18B20功能命令表命令功能描述代码CONVERT启动温度转换44HREADSCRATCHPAD读取温度寄存器BEHREADROM读DS18B20的序列号33HWRITESCRATPAD将数据写入暂存器的第2、3字节中4EHMATCHROM匹配ROM55HSEARCHROM搜索ROMF0HALARMSEARCH报警搜索ECH SKIPROM跳过读序列号的操作CCHREADPOWERSUPPLY读电源供给方式,0寄生,1外部电源B4H由于DS18B20单线通信功能是分时完成的,所以有严格的时隙概念,读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。4.2软件设计DSl8B20必须严格按照单总线通信协议,以保证数据的完整性。该协议定义了几种时隙类型:初始化、应答、写1、写0、读1、读0。除了应答时隙所有这些时隙都是有主机发出。总线上所传输的所有命令和数据都是字节的低位在前。(1)初始化时隙复位时隙和应答时隙。在初始化过程中,主机发送复位脉冲(最短为480μs的低电平信号)接着,释放总线并进入接收状态。当总线被释放后上拉电阻将总线拉高。DSl8B20在检测到总线的上升沿之后等待15-60us接着发出应答脉冲(低电平持续60-240μs)。(2)读和写时隙在写时隙期间,主机向DS18B20写入数据;而在读时隙期间,主机读入来自DS18B20的数据。在每一个时隙,总线只能传输一位数据。存在两种写时隙,即写1和写0。主机在写1时隙向DS18B20写入逻辑1。而在写0时隙向DS18B20写入逻辑0。所有写时隙至少需要60μS,而且两次写l时隙之间至少需要lμS的恢复时间。两种写时隙均以主机拉低总线开始。产生写1时隙:主机拉低总线后,必须在15uS内释放总线。然后由上拉电阻将总线拉至高电平。产生写0时隙:主机拉低总线后,必须在整个时隙期间保持低电平(至少60μS)。在写时隙开始后的15~60μS期间,DSl8B20采样总线的状态。如果总线为高电,则逻辑1被写入DSl8B20;如果总线为低电平,则0逻辑被写入DSl8B20。读时隙:DSl8B20只能在主机发出读时隙时才能向主机传送数据。所以主机在发出读数据命令后,必须马上产生读时隙,以便DSl8B20能够传送数据。所有读时隙至少60μs,且在两次独立的读时隙之间至少需要1μS的恢复时间。每次读时隙由主机发起,拉低总线至少1μS。在主机发起读时隙之后,DSl8B20开始在总线上传送1或0。若DS18B20发送1,则保持总线为高电平;若发送O,则拉低总线。当传送0时,DSl8B20在该时隙结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。DS18B20发出的数据在读时隙下降沿起始 后的15uS内有效,因此主机必须在读时隙开始后的15μS内释放总线,并且采样总线状态,根据实际的系统设计要求,其程序流程图如下图所示:之后,根据以上流程图进一步编写系统汇编语言或C语言代码,并通过Keil软件进行仿真模拟,通过后进一步进行接线调试,具体程序见附录。5.实时时钟模块设计根据资料的查找,目前市面上可用的时钟电路有DS1302、DS1307、PCF8485、PCF8563,其中使用比较多,也是我们主要查找比较的是DS1302和PCF8563。DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口功能的具有极低功耗的多功能时钟/日历芯片。PCF8563的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。而在本题实际使用中,由于DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。综合考虑之后,我们决定选用PCF8563时钟电路作为实时时钟模块在本系统中使用。5.1硬件电路设计本系统实时时钟模块选用PCF8563时钟电,PCF8563是一款低功耗的CMOS实时时钟/日历芯片,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过I2C总线接口串行传递。最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动增加,其实验原理图如下图:PCF8563特性为:●低工作电流:典型值为0.25μA(VDD=3.0V,Tamb=25℃时);●世纪标志;●大工作电压范围:1.0~5.5V;●低休眠电流;典型值为0.25μA(VDD=3.0V,Tamb=25℃);●400KHz的I2C总线接口(VDD=1.8~5.5V时);●可编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz;●报警和定时器;●掉电检测器;●内部集成的振荡器电容片内电源复位功能掉电检测器;●片内电源复位功能;●I2C总线从地址:读:0A3H;写:0A2H;●开漏中断引脚。PCF8563参考数据如下表所示: 符号参数条件最小值最大值单位VDD工作电压I2C总线无效Tamb=25℃1.05.5VI2C总线有效Fscl=400KHzTamb:-40℃—80℃1.85.5V工作电流(定时器和时钟输出无效)Fscl=400KHz—800uAFscl=100KHz—200uAFscl=0KHz;Tamb=25℃—VDD=5V—550nAVDD=2V—450nATamb工作环境温度-4085℃Tstg储存温度-65150℃PCF8563内有16个8位的地址递增寄存器,一个32.768kHz片上集成电容振荡器,一个实时时钟源(RTC)的分频器,可编程的时钟输出,一个定时器,报警器,一个低压检测器和400KHz的I2C接口。所有16个寄存器被设计成可寻址的8位并行寄存器,虽然不是所有的位都有效。前两个寄存器(内存地址00H和01H),用于控制与/或状态寄存器。内存地址02H至08H是时钟功能的计数器,用于(秒、分、时、日、月、年计数器)。内存地址09H至0CH包含定义报警的条件的报警寄存器。内存地址0DH控制CLKOUT的输出频率。0EH和0FH分别是定时控制器和定时器。秒、分钟、小时、天、月、年、以及每分钟报警、小时报警、日报警寄存器都以BCD格式编码。平日和星期报警寄存器不以BCD格式编码。当一个RTC寄存器被读取,所有的寄存器的内容被冻结。因此可以避免在读指令跳转期间,读取时钟/日历时发生错误。PCF8563具有报警功能模式、定时器模式、CLKOUT输出、复位低电压检测器和时钟监视器、低电压检测器和时钟监视器等多种不同的功能,在本系统中,主要将其作为实时时钟模块利用其时钟功能通过8279显示器/键盘接口电路来显示实时时间,便于工作人员实时了解库房温度情况。 其方框原理图如下图所示:为了更好的利用PCF8563芯片,我们还必须了解其管脚功能、动静太参数等数据,如图表所示为PCF8563管脚配置及描述: PCF8563静态特性为: PCF8563动态特性为: 5.2软件设计根据上图的PCF8563应用信息,我们拟通过两线式I2C串行接口方式接收各种命令并读写时钟数据。两线式串行I2C接口方式描述如下:(1)开始条件当SCL处于高电平时,SDA由高电平变成低电平时构成一个开始条件,对PCF8563的所有操作均必须由开始条件开始。(2)停止条件当SCL处于高电平时,SDA由低电平变成高电平时构成一个停止条件,此时PCF8563的所有操作均停止,系统进入待机状态。 (3)数据传输当SCL为低电平,且SDA线电平变化时,则数据由CPU传输给PCF8563(高位在前、低位在后,下同);当SCL为高电平,且SDA线电平不变时,则CPU读取PCF8563发送来的数据;当SCL为高电平,且SDA电平变化时,PCF8563收到一个开始或停止条件。(4)确认数据传输以8位序列进行。PCF8563在第九个时钟周期时将SDA置位为低电平,即送出一个确认信号(Acknowledgebit,以下简称“ACK”),表明数据已经被其收到。根据PCF8563的实际参数,管脚配置以及以上内容和实际的使用要求,其程序流程图如下图所示: 开始设置时间初值写入时钟芯片读实时时钟调显示子程序数据转换,把显示的值送入显示缓冲区是否有脉冲?N时、分数据转换,把显示的值送入显示缓冲区调显示子程序是否有脉冲?YNY时钟流程图之后,根据以上流程图进一步编写系统汇编语言或C语言代码,并通过Keil软件进行仿真模拟,通过后进一步进行接线调试,具体程序见附录。6.键盘扫描模块设计6.1软件设计利用8279可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定、程序简单、不会出现误动作等优点。程序框图: 开始8279初始化显示器初始化送显示缓冲区显示有键按下吗?计算键值查字型代码YN程序实现见附录。6.2芯片8279使用介绍8279采用单±5V电源供电,40脚封装。  DB0~DB7:双向数据总线,用来传送8279与CPU之间的数据和命令。  CLK:时钟输入线,用以产生内部定时的时钟脉冲。  RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。  CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。  A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。  RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。  WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。  RL2--140--VCC  RL3--239--RL1  CLK--338--RL0  IRQ--437--CNTL/STB   RL4--536--SHIFT  RL5--635--SL3  RL6--734--SL2  RL7--833--SL1  RESRT--932--SL0  RD--1031--OUTB0  WR--1130--OUTB1  DB0--1229--OUTB2  DB1--1328--OUTB3  DB2--1427--OUTA0  DB3--1526--OUTA1  DB4--1625--OUTA2  DB5--1724--OUTA3  DB6--1823--BD  DB7--1922--CS  VSS--2021--A0  IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中,每当探测到传感器信号变化时,中断线就变为高电平。  SL0~SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字,这些可被编程或被译码。  RL0~RL7:回送线,经过按键或传感器开关与扫描线联接,这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。  SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。  CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,  在选通输入方式中,作选通用,把数据存入FIFORAM中。  OUTA3~OUTA0及OUTB3~OUTB0:显示输出A口及B口,这两个口是16×4切换的数字显示。这两个端口可被独立控制,也可看成一个8位端口。  BD:空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。   VCC:+5V电源输入线。  VSS:地线输入线。7.系统输入模块设计7.1硬件设计输入采用4x4按键键盘,由8279辅助控制。详细内容如下:键盘接口原理:a.键盘输入的特点:键盘是一组按键开关的集合。行线电压信号通过键盘开关机械触电的断开、闭合,输出波形如下图: b.按键的确认方法:检测行线电平:高电平断开,低电平闭合。键盘接口的工作原理:无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。c.按键的识别方法:采用线反转法第一步:列线输出为全低电平,则行线中电平有高变低的所在行为按键所在行。第二步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。综合上述两步,可确定按键所在行和列。d.键盘的工作方式:键盘的工作方式为中断工作方式。只有在键盘有键按下时,才执行键盘扫描程序,如无键按下,单片机将不理睬键盘。接下来,为了进一步在实验中对8279进行合理的使用,必须了解其管脚配置及功能,才能根据其功能进行编译与硬件的设置: 7.2软件设计:8279键盘扫描的程序流程图如下图所示:具体的程序实现见附录。8.系统显示模块设计8.1硬件设计同时,根据系统的显示要求,采用七段数码管显示。 图4.9-1共阴极接法共阳极接法如图4.9-1所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法:1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。实验中使用的LED显示器为共阴极接法2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4.9-1所示。表4.9-1共阴极LED数码管字形代码字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH本设计采用共阴极接线方法。8.2软件设计其程序流程图如下图所示: 之后,根据以上流程图进一步编写系统汇编语言或C语言代码,并通过Keil软件进行仿真模拟,通过后进一步进行接线调试,具体程序见附录 9.系统主程序设计采用模块化设计方法,是各个程序间的不良影响降低,相对独立的工作,是本设计的一大优点:具体流程图如下:具体程序实现见附录。10.单片机功能设计与总结10.1主控单片机功能及原理介绍本课题设计的温度控制系统主控制芯片选型为STC89C52单片机。1.单片机简介51系列单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人机对话的功能。STC89C 52单片机是深圳宏晶科技有限公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成部分。每一个单片机包括:一个8位的微型处理器CPU;一个512K的片内数据存储器RAM;4K片内程序存储器;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个部分通过内部总线相连接。2.STC89C52单片机时序STC89C52单片机的一个执器周期由6个状态(s1—s6)组成,每个状态又持续2个震荡周期,分为P1和P2两个节拍。这样,一个机器周期由12个振荡周期组成。若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为1/6us;在一数情况下,算术和逻辑操作发生在N期间,而内部寄存器到寄存器的传输发生在P2期间。对于单周期指令,当指令操作码读人指令寄存器时,使从S1P2开始执行指令。如果是双字节指令,则在同一机器周期的s4读人第二字节。若为单字节指令,则在51期间仍进行读,但所读入的字节操作码被忽略,且程序计数据也不加1。在加结束时完成指令操作。多数STC89C52指令周期为1—2个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个机器周期。对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。3.STC89C52单片机引脚介绍STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述个引脚的功能。(1)电源引脚Vcc和VssVcc(40脚):接+5V电源正端;Vss(20脚):接+5V电源正端。(2)外接晶振引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。 XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。(3)控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。(A).RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。(B).ALE/P(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低(C).PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。(D).EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。(4)输入/输出(I/O)引脚P0口、P1口、P2口及P3口(A).P0口(39脚~22脚):P0.0~P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。 (B).P1口(1脚~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。(C).P2口(21脚~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。(D).P3口(10脚~17脚):P3.0~P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。P3口的第2功能见下表表单片机P3.0管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(部数据存储器写选通信号输出端,低电平有效)P3.7RD(部数据存储器读选通信号输出端,低电平有效)综上所述,MCS—51系列单片机的引脚作用可归纳为以下两点:1).单片机功能多,引脚数少,因而许多引脚具有第2功能;2).单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。10.2系统硬件电路设计单片机最小系统电路库房温度控制系统设计中,控制核心是STC89C 52单片机,该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4KFLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1μS。使用该单片机完全可以完成设计任务,其最小系统主要包括:复位电路、震荡电路以及存储器选择模式(EA脚的高低电平选择),电路如下图2所示:图、单片机最小系统本系统采用STC89C52单片机作为核心控制体。该单片机属于DIP封装的PDI40口管脚。具有4个输入输出端口,分别为PORT0,PORT1,PORT2,PORT3,其中P0口是一组8位漏极开路型双向I0口,校验时,要求接上拉电阻。其他三个内部有30K的电阻,所以不用再外接电阻。此单片机具有6个中断,为全双工通信口。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。相比较其他芯片来说价格适中,适合学生使用,故采用此单片机作为核心控制芯片。单片机I/O设置及外围电路如下图所示:单片机采用I2C总线接口技术。I2C总线的数据传送协议如下:(a)总线必须由主设备控制。主设备提供串行时钟,控制数据传送方向,并产生起始和结束信号。无论是主设备还是从设备,接收一个字节必须发出一个确认信号ACK。(b)I2C的时钟线SCL和数据线SDA都是双向的。总线空闲时,SCL和SDA都必须保持高电平。(c)在时钟线保持高电平期间,数据线出现的由高到低的跳变定义为起始信号(S),启动I2C总线操作;数据线上出现的由低到高的跳变定义为停止信号(P),终止总线的数据传送。(d)I2C总线的数据传送格式为:起始信号S后,主设备送出8位的地址字节,以选择从设备并指定数据的传送方向,其后传送数据。I2 C总线上传送的每一个数据均为8位,数据个数没有限制。每传送一个字节后,接受设备都必须发一位应答信号ACK,发送设备确认后,再发送下一个字节数据。每一字节数据都是由最高有效位依次到最低位。在全部数据发送结束后,主设备发送终止信号P。4.2.2I2C总线接口的软件实现对I2C总线接口器件的所有操作,都必须符合I2C总线协议。对于没有I2C控制器的51系列单片机,可用软件完成这项任务。图(a)所示为AT24C16的字节写操作时序。可以看出,主设备首先要启动I2C操作,发出启动信号S,随后是器件地址,然后是一个0,表示写操作。下一个时钟周期,从主设备发回应答信号A,主设备再发送器件内部单元8位地址,从设备又发回应答信号,主设备讲欲写入的数据发出,设备应答后,主设备发出停止信号P,写操作时序结束,AT24C16启动内部的写周期将数据永久保存。所有的地址或者数据都是高位在前,低位在后传送。图(b)为AT24C16的随机读操作时序。前半部分与字节写相同,只是在设备第二次发回应答信号后,主设备再次发出启动信号S,然后是从设备器件地址,随后是一个1,表示读操作。从设备发回应答信号,后续字节是从设备发出的存储单元内容。最后,主设备发送一个非应答信号NA(1)和一个停止信号P,从而完成读操作。综上所述,确定单片机后即可确定系统整体硬件电路,系统硬件电路连线图(硬件原理图)如下图所示: 8279提供的8位7段数码管及4X4矩阵键盘连线:时钟电路连线: DS18B20电路连线:蜂鸣器(低电平有效)输入端连至单片机P3.3口。10.3系统所需器件总结蜂鸣器(低电平有效),DS18B20温控元件、8051单片机、8279键盘显示器(包括芯片与八位七段译码器一起4x4按键键盘)、LED显示灯(8位7段数码管)、PCF8563时钟电路芯片,导线若干等。10.4系统软件设计总结用户通过4x4行列式键盘输入环境允许的最高温度T1和最低温度T2以及本地时间。温度传感器DS18B20从环境获取温度T与T1和T2相比较。若T在[T1,T2]之间则温度传感器继续检测环境温度,反之则启动蜂鸣器。时钟芯片PCF8563的作用为计时,记录时钟的走时。8279键盘显示器可以显示系统的各项参数:当前的温度,用户设定的温度,当前的时间。整个系统的核心为89C51单片机,负责信号的传递,控制所有芯片的正常运行,使得系统的功能得以实现。10.5系统软件层次总结本次软件的设计共分为3个层次。 第一个层次为驱动层。这个层次主要负责对于各芯片的底层访问。在本次设计中,该层次的代码主要负责I2C设备的读写,与8279键盘显示器的通讯,以及键盘的简单扫描。第二个层次为中间层。其所起到的作用是在系统层和驱动层之间传递数据,并在这个过程中对数据加以处理,保证各芯片与单片机之间的正确通讯。第三个层次为系统层。本层次的亮点在于友好的操作界面以及简易的操作方式。通过后进一步根据系统硬件原理图进行接线调试,具体程序见附录。 附录1.程序代码TEMPER_LEQU36HTEMPER_HEQU35HTEMPER_NEQU40HFLAGBIT00HDQBITP3.2DANGERBITP3.3;蜂鸣器输入端口,低电平有效ACKBIT20HSLADATA30HSUBADATA31HNUMBYTEDATA32HMTDEQU40HMRDEQU50HSCLEQU0B0HSDAEQU0B1HPCF8563EQU0A2HHlimitHDATA41H;设置温度值上限高位地址HlimitLDATA40H;上限低位LlimitHDATA43H;下限高位LlimitLDATA42H;下限低位Key_inBIT00HORG0000HAJMPMAINORG0003H;LJMPINT_0ORG0030HMAIN:MOVSP,#70HLCALLInit_sp_LimitLCALLInit_8279_INTLCALLInit_D_M LOOP:LCALLDISP01LCALLTIMERLCALLDS18B20LCALLCOMPARELCALLKey_scanJBCKey_in,Do_keyProSJMPLOOPDo_keyPro:LCALLKey_processSJMPLOOPCOMPARE:MOVA,#HlimitHCJNEA,#MTD,COM1;比较温度范围COM1:JCCOM2MOVA,#HlimitLCJNEA,#MRD,COM3COM2:CLRDANGER;蜂鸣器报警AJMPLOOPCOM3:JCCOM4MOVA,LlimitHCJNEA,#MTD,COM5COM4:CLRDANGERAJMPLOOPCOM5:JCCOM6MOVA,LlimitLCJNEA,#MRD,COM7COM6:CLRDANGERAJMPLOOPCOM7:RETInit_sp_Limit:CLRKey_inMOVHlimitH,#00HMOVHlimitL,#00HMOVLlimitH,#00HMOVLlimitL,#00HRETInit_8279_INT:C8279EQU0E001HD8279EQU0E000HMOVDPTR,#C8279 MOVA,#0HMOVX@DPTR,AMOVA,#2AHMOVX@DPTR,AMOVA,#0D0HMOVX@DPTR,ADISP1:MOVXA,@DPTRJBACC.7,DISP1MOVTMOD,#01HMOVTH0,#4CHMOVTL0,#00HMOVIP,#01HSETBEASETBIT0CLRTR0CLRET0CLREX0RETInit_D_M:MOVR0,#60HMOVR7,#40HCLRADISP01:MOVDPTR,#C8279MOVA,#90HMOVX@DPTR,AMOVR0,#67HMOVR6,#08HDISP2:MOVA,@R0MOVDPTR,#TAB_8279MOVCA,@A+DPTRMOVDPTR,#D8279MOVX@DPTR,ADECR0DJNZR6,DISP2RETTAB_8279:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71HDB73H,3EH,40H,6EH,76H,38H,00H,80H Key_scan:MOVDPTR,#C8279MOVXA,@DPTRANLA,#07HCJNEA,#00H,GET1AJMPKEY4GET1:MOVA,#40HMOVX@DPTR,AMOVDPTR,#D8279MOVXA,@DPTRMOVB,AMOVR2,#00HMOVDPTR,#KEYDATAKEY1:MOVA,#00HMOVCA,@A+DPTRCJNEA,B,KEY2SJMPKEY3KEY2:INCDPTRINCR2SJMPKEY1KEY3:MOVA,R2SETBKey_INKEY4:RETKEYDATA:DB3BH,33H,2BH,23H,3AH,32H,2AH,22HDB39H,31H,29H,21H,38H,30H,28H,20HKey_process:CJNEA,#0AH,NEXT1MOVA,HlimitLCJNEA,#09H,NEXTLMTAMOVHlimitL,#00HINCHlimitHNEXTLMTA:INCHlimitLMOV62H,LlimitLMOV63H,LlimitHMOV66H,LlimitLMOV67H,LlimitHSJMPRETKNEXT1:CJNEA,#0BH,NEXT2MOVA,HlimitLCJNEA,#00H,NEXTLMTBMOVHlimitL,#09HDECHlimitH NEXTLMTB:DECHlimitLMOV62H,LlimitLMOV63H,LlimitHMOV66H,LlimitLMOV67H,LlimitHSJMPRETKNEXT2:CJNEA,#0CH,NEXT3MOVA,LlimitLCJNEA,#09H,NEXTLMTCMOVLlimitL,#00HINCLlimitHNEXTLMTC:INCLlimitLMOV62H,LlimitLMOV63H,LlimitHMOV66H,LlimitLMOV67H,LlimitHSJMPRETKNEXT3:CJNEA,#0DH,RETKMOVA,LlimitLCJNEA,#00H,NEXTLMTDMOVLlimitL,#09HDECLlimitHNEXTLMTD:DECLlimitLMOV62H,LlimitLMOV63H,LlimitHMOV66H,LlimitLMOV67H,LlimitHSJMPRETKRETK:RETDS18B20:MOVSP,#60H;DS18B20子程序mov7Fh,#0Chmov7Eh,#18Hmov7Dh,#0Hmov7Ch,#0Hmov7Bh,#16Hmov7Ah,#16Hmov79h,#16hmov78h,#16hMAIN1:lcalldisp;LCALLGET_TLCALLT_COV lcallCHA8279movp1,40h;lcalldisp8279mova,40HLJMPMAIN1GET_T:SETBDQA1:LCALLINIT_1820JBFLAG,A2LJMPA1A2:LCALLDELAY1MOVA,#0CCH;跳过ROMLCALLWR_1820MOVA,#44H;温度转换LCALLWR_1820NOPLCALLDELAY2LCALLDELAY2LCALLDELAY2;>750usLCALLDELAY2B1:LCALLINIT_1820JBFLAG,B2LJMPB1B2:LCALLDELAY1MOVA,#0CCH;skipromLCALLWR_1820MOVA,#0BEH;read暂存器LCALLWR_1820LCALLDELAY2LCALLRD_1821RETRD_1820:MOVR2,#08HRD1:CLRCSETBDQNOPNOPNOPNOPCLRDQNOPNOPNOPNOP SETBDQMOVR3,#10HDJNZR3,$MOVC,DQMOVR3,#46DJNZR3,$RRCADJNZR2,RD1RETWR_1820:MOVR2,#8HCLRCWRITE1:CLRDQRRCAJCW1W0:MOVR3,#24;<15usDJNZR3,$MOVDQ,CJMPL1W1:MOVR3,#2DJNZR3,$MOVDQ,CL1:MOVR3,#10DJNZR3,$SETBDQNOPDJNZR2,WRITE1SETBDQRETRD_1821:MOVR4,#2HMOVR1,#36HRD2:MOVR2,#8HRD3:CLRCSETBDQNOPNOPNOPNOPCLRDQNOPNOPNOPNOP SETBDQMOVR3,#4;<15usDJNZR3,$MOVC,DQMOVR3,#40;20DJNZR3,$RRCADJNZR2,RD3MOV@R1,ADECR1DJNZR4,RD2RETT_COV:MOVA,#0F0HANLA,TEMPER_LSWAPAMOVTEMPER_N,AT_COV1:MOVA,TEMPER_HANLA,#07HSWAPAORLA,TEMPER_NMOVTEMPER_N,AMOVA,TEMPER_LJNBACC.3,T_ENDINCTEMPER_NT_END:LCALLTO_BCDRETTO_BCD:MOVDPTR,#TABMOVA,TEMPER_NMOVCA,@A+DPTRMOVTEMPER_N,ARETTAB:DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09HDB10H,11H,12H,13H,14H,15H,16H,17H,18H,19HDB20H,21H,22H,23H,24H,25H,26H,27H,28H,29HDB30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDB40H,41H,42H,43H,44H,45H,46H,47H,48H,49HDB50H,51H,52H,53H,54H,55H,56H,57H,58H,59HDB60H,61H,62H,63H,64H,65H,66H,67H,68H,69HDB70H,71H,72H,73H,74H,75H,76H,77H,78H,79HDB80H,81H,82H,83H,84H,85H,86H,87H,88H,89HDB90H,91H,92H,93H,94H,95H,96H,97H,98H,99H INIT_1820:SETBDQNOPNOPCLRDQMOVR0,#200DJNZR0,$;64*3*2us480“对象‘对象1’的选项”,选择“调试”对话框;选择“使用模拟器”,并选中“启动时加载程序”,点击确定。c)点击,开始进行调试。 1)断点的设置将光标移动在代码某一行上,点击图标,这就在这一行设置了一个断点,进行代码调试时,程序会在断点停下来。2)模拟调试后,就可以实验设备上电,准备设备在线调试。3)硬件调试设置点击菜单“工程”->点击“对象‘对象1’的选项”,选择“调试”对话框;选择“使用KeilMonitor-51Driver”,并选中“启动时加载程序”,再点击上图的“设置”按钮,对仿真机和计算机通讯的串行口与波特率进行设置: Port:串行口设置,为仿真机的串行通讯口连接线所连接的计算机的串行通讯口(在本实验室中仿真机与计算机连接的串行口为COM3)。Baudrate设置为57600,仿真机固定使用57600bps跟keil通讯。SerialInterrupt和CacheOptions可以选也可以不选,推荐使用默认值。点击“ok”按钮,确定你的设置。最后点击“确定”按钮,使“调试”对话框中所选选项生效。1)硬件调试,如同软件调试,直至程序在设备上运行正确。3.参考文献[1]李广弟,朱月秀,王秀山.《单片机基础》北京航空航天大学出版社,2001(07).[2]蔡美琴,张为民等.《MCS-51系列单片机系统及其应用》高等教育出版社,2004(06).[3]张毅刚,等.MCS-51单片机应用设计[M].哈尔滨工业大学出版社,1997.[4]刘瑞星,胡健等.《ProtelDXP实用教程》机械工业出版社,2003(04).[5]于海生.《计算机控制技术》机械工业出版社2007(05).[6]谭浩强.《C程序设计》清华大学出版社.[7]康华光.《电子技术基础模拟部分》高等教育出版社1998(08).[8]余锡存.《单片机原理与接口技术》西安电子科技大学出版社,2003.'