




免费预览已结束,剩余25页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模拟公交车自动报站系统摘要本设计主要是做一个模拟公交车报站的自动系统;在该设计中运用到AT89S52单片机、APR9600语音芯片、LCD12864、时钟芯片、温度传感器、光电传感器,L298N直流电机驱动芯片以及外设的站台、玩具车等。本系统的实现过程如下:首先我们要先录音储存到语音芯片中,然后接通主电源,让我们的小车在外设的轨道上自动运行,这时LCD上会显示一写信息,比如温度、时间等;当光电传感器检测到我们的小车运行快到一个站点时,这时候单片机就会接到光电传感器的信号,从而控制我们的语音芯片去播报此时要播报的语音,同样会在LCD上显示出来,就这样的实现一个自动的过程。在设计中我们主要用到AT89S52芯片为系统控制核心,通过APR9600语音芯片和LCD12864液晶来实现与显示该设计的主要的功能;利用光电传感器来检查站点,实现自动报站功能;用按键来操作所有设计的控制,以及通过对单片机进行编程来实现对整个系统的控制,达到所谓的自动效果。 一、方案的论证和比较:1.1 单片机型系统的选择与论证方案一:此方案采用AT89C51八位单片机实现。它内存较小,只有4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,无在线下载编程功能,也无在线仿真功能。只能通过编程器烧写成以.hex为后缀名的文件。方案二:此方案采用AT89S52八位单片机实现。它内存较大,有8K的字节Flash闪速存储器,比AT89C51要多4K。它可在线编程,可在线仿真的功能,这让调试变得方便。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。另外AT89S52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。综上所述,我们采用了第二个方案,即AT89S52。1.2语音芯片的选择与论证方案一:采用ISD1400语音芯片,该语音芯片外围电路简单,但是录放音时间较短,只有20秒,若要存储稍长点的信息就做不到;播放语音的效果也是很好,还得需加一个LM386的音频放大器才能做到一般的效果。方案二:采用ARP9600语音芯片,APR9600语音录放芯片,是继美国ISD公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可录放32-60秒,串行控制时可分256段以上,并行控制时最大可分8段。与ISD同类芯片相比它具有:价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点,同时保留了ISD2500芯片的一些特点,都是DIP28双列直插塑料封装,在管脚排列上也基本相同。综上分析,我们采用了第二个方案。1.3显示模块的选择与论证方案一:采用LCD点阵显示,用来显示文字、图形、图像、等各种信息的显示屏幕。它均由LCD矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形,该方案简单易行。但所需的元件较多,且不容易进行操作,可读性差,一旦设定后,很难再加入其他的功能,当加上日期、时间时增加了编程的难度。方案二:采用液晶(JHD529M1)显示器件,该液晶显示器件与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该器件的价格也略低于相同点阵的图形液晶模块。而且此液晶显示平稳、省电、美观,更容易实现题目要求,对后续的功能兼容性高,同时有中文字库,也可以实现图像显示。只需将软件作修改即可,可操作性强,也易于读数,能同时显示日期、时间、星期且易于修改。综上分析,我们采用了第二个方案。1.4 时钟实现方案一:采用软件实现,直接用单片机的定时器编程以实现时钟,优点节省硬件,缺点是编程复杂程序运行的每一步都需要时间,多一步或少一步程序都会影响记时的准确度,准确度较差。方案二:采用专用的时钟芯片实现时钟的记时,专用时钟芯片记时准确,容易控制,能够从芯片直接读出日期、时间、星期,更符合题目要求。综上分析,我们采用了第二个方案,时钟芯片选择常用的DS1302。二 、 系统框图及工作原理2.1 系统总体设计结构框图以AT89S52芯片为核心,当它接到来自按键的信号后,在数码管上显示相应的信息,同时在LCD上也显示相应的信息,并且有已处理好的图片文字也显示出来。当接到来自时钟芯片的信号时,其内部程序将根据信号的类型进行处理,并且将处理的结果从其他的I/O口送到显示模块。处理过程所需的时间极短,并且液晶显示的显示时间稳定。系统设计框图如图1所示键盘控制主控制器LCD显示时钟DS1302语音播报温度DS18B20直流电机控制光电传感器图1.系统设计框图2.2 系统的硬件电路设计2.2.1单片机控制部分1) 单片机的内部结构MCS-51单片机片内主要由振荡电路、中央处理器(CPU)、内部总线、程序存储器、数据存储器、定时器/记数器、中断系统和I/O口等模块组成,各部分通过内部总线紧密地联系在一起。2) 单片机的振荡与时钟单片机必须在时钟的驱动下才能进行工作,MCS-51系列单片机内部有一个时钟振荡电路,只需外接振荡源,就能产生一定频率的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。图2就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外接振荡源,一般选石英振荡器。此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用。C1、C2的典型值为30pF。晶振为12MHz。图2.振荡电路3) 单片机的复位及复位电路 复位状态计算机在启动运行时都需要复位,复位使中央处理器CPU和系统中的其他器件都处于一种初始状态,并从这个初始状态工作。MCS-51系列单片机有一个复位引脚RST。在MCS-51系列单片机的RST引脚上输入一个高电平信号,该高电平信号至少要维持两个机器周期以上的时间,单片机被复位。复位电路与其他计算机一样,MCS-51单片机系统的复位方法有上电自动复位、手动复位以及“看门狗”复位等。 此最小系统采用手动复位电路。在系统运行过程中,有时可能对系统需要进行复位,为避免对硬件经常加电和断电造成的损害,我们可以采用手动复位。这种方法是将一个开关串联一只电阻后,再并联于电容C的两端,在系统运行过程中需要复位时只要使开关闭合,在RST引脚上就会出现一定时间的高电平信号,从而使单片机实现复位。 图3.复位电路4) 当AT89S52芯片接到来自键盘输入的信号以及时钟芯片的信号时,其内部程序将根据信号的类型来处理,并将处理的结果送到相对应的显示模块。本部分的硬件电路图如下:图4. 单片机控制模块2.2.2 液晶显示模块部分该模块是由JHD529M1液晶显示器件组成, 其器件带中文字库是一种128X64显示模式,具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字, 也可完成图形显示,低电压低功耗是其又一显著特点。其引脚功能为:由于本系统共用一个电源,所以第1,20脚为电源接地端;第2,19脚为电源正端;第3脚为对比度选择;第4脚为显示数据或显示指令数据端;第5脚为DB7B0的数据被写到IR或DR;第6脚为使能信号端;第714脚为DB7B0的数据线端;第15脚为串/并口选择端;第17为复位端,低电平有效;第18脚为LCD驱动电压输出端。其模块连接图如下:图5.液晶显示模块2.2.3 键盘输入部分 本系统中用到6个按键,用P1的8个I/O口接独立键盘即可满足需要,软件消除抖动处理,并能准确判断所需执行的相应程序。其中,P1.0P1.5为键盘接口。判别有无键按下。将P1口输出置1,再进行查询,若全为1,表明无按键按下,否则,表明至少有一个键按下。在判断有键按下后,调用延时子程序,时间为15MS,再判断P1.0P1.5的状态,如果仍然是有键按下,则确认键被真正按下,否则当做按键抖动处理。当确认有键按下后,使P1口为低电平,读入P1.0P1.5的状态,若P1.0为0,表示按键S1按下,如此依次类推。键盘功能如下图:表2 键盘基本功能表(K1)(时间设置)(K2)(取消)(K3)(加1)(K4)(减1)(K5)(闹钟设置)(K6)(确定)(K5)+(K6)(闹铃开关)注:(K1=S1,K2=S2,K3=S3,K4=S4,K5=S5,K6=S6)其电路图如下:图6.键盘模块2.2.4 DS1302时钟系统DS1302 涓流充电时钟保持芯片的原理与应用DS1302通过简单的串行接口与单片机进行通信实时时钟/日历电路,并提供秒分时日日期月年的信息,每月的天数和闰年的天数可自动调整时钟。操作可通过AM/PM 指示决定采用24 或12 小时格式,DS1302 与单片机之间能简单地采用同步串行的方式进行通信。RAM 的读/写数据以一个字节或可多达31 个字节的字符组成的方式通信。DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,DS1302 是由DS1202 改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc, 为可编程涓流充电电源附加七个字节存储器,它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。其电路图如下:图7.时钟模块2.25 DS18B20温度系统DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; 它有64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。 该模块的功能是向单片机输出温度测量信号根据DS18B20的工作原理知用单根总线跟单片机的中断口INT1连接即可:图3温度传感模块硬件电路如2.26 直流电机驱动部分1)光电检测电路光电检测电路采用光电对管做为检测部分,用于检测黑色引导线,黑色引导线使得小车在木板上按照一定的轨迹运动。利用光电管发射经反射到接收管检测接收管的电平信号,当检测到黑线时,黑线吸收大部分的光,光电光就很难被反射回来,接收管就接收不到光。光电检测电路就输出高电平。当没有检测到黑线,检测到白纸,白纸的反光比较强,发射管发射出去的光大部分被白纸反射回到接收管,光电接收管接收到光时光电检测电路输出低电平信号。光电检测电路如图2.2所示。利用单片机检测光电检测电路J2“4”点输出的电平信号,当单片机检测到高电平时,单片机不控制转向电机,当单片机检测到低电平时,单片机控制转向电机调整方向,站点的检测也是如此。 图2.2 光电检测电路2) 电机驱动电路本系统采用的两个步进电机均为四相的步进电机,电机的工作方式有四相四拍和四相八拍。在本系统中采用了四相四拍的工作方式,即各相的通电顺序为:ABBCCDDA。使用L298N做为步进电机的驱动。L298N是高耐压、大电流阵列。L298N具有工作电压高,工作电流大,芯片可承受的最大电流达到3A,并且耐压达到42V。在该系统中用到两个步进电机,两个步进电机的驱动电路分开,因此需要用到两个驱动芯片。该驱动芯片的输出引脚J1与步进电机的相线连接。通过单片机的端口P3.0P3.3输出脉冲信号来控制后轮驱动步进电机各线圈的接通和断开。后轮电机驱动电路如图2.3所示。图2.3 后轮电机驱动电路通过单片机的P3.4P3.7输出脉冲信号来控制前轮转向步进电机各线圈的接通和断开。转向电机驱动电路如图2.4所示。 图2.4 转向电机驱动电路2.2.7语音系统 采用ARP9600语音芯片,并口控制。APR9600语音录放芯片,是继美国ISD公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可录放32-60秒,串行控制时可分256段以上,并行控制时最大可分8段。与ISD同类芯片相比它具有:价格便宜,有多种手动控制方式,分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点,同时保留了ISD2500芯片的一些特点,都是DIP28双列直插塑料封装,在管脚排列上也基本相同。图一是APR9600的全功能使用电路图,图二是APR9600的管脚排列图。表(一)为管脚功能说明。在APR9600芯片的内部,录音时外部音频信号通过话筒输入和线路输入方式进入,话筒可采用普通的驻极体话筒,在芯片内话筒放大器(Pre-Amp )中自带自动增益调节(AGC),可由外接阻容件设定响应速度和增益范围。如果信号幅度在100mV左右即可直接进入线路输入端,音频信号由内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器FLASHRAM中。由于FLASHRAM是非易失器件,断电等因素不会使存储的语音丢失。放音时芯片内读逻辑电路从FLASHRAM中取出信号,经过一个低通滤波器送到功率放大器中,然后直接推动外部的喇叭放音。厂家要求外接喇叭为16欧姆,实际试验用8-16欧姆均可,一般音量下输出功率12.2mW(16欧)。APR9600的录放控制有多种操作模式,为普通用户使用提供了极大的方便。总的来说分为串行控制和并行控制两种,由芯片MSEL1(24脚)、MSEL2(25脚)、/M8(9脚)的设置来实现,功能表如表(二)。其中每种操作模式都有对应的有效键,而且同一个键在不同操作模式下可能有不同的功能。因此在芯片设计、使用前用户应详尽了解芯片的各种操作模式,选择最合适自己的方式设计,电路也会变得非常简单。一、并行控制模式在ISD芯片中要实现某键对某段的多段并行控制是十分复杂的,一般需要大量的二极管译码阵或单片机来辅助实现,另外在分段录音时也存在很多困难。而在APR9300芯片中却十分简单,每段都有对应的键控制,按哪一键就录、放哪一段,而且可以方便地对任意一段重新录音不影响其它段、对任意一段循环放音等。只是每段录音的最大时间是等分的,而且最多只能分八段。下面以需要分四段为例说明:并行四段控制需要将芯片的MSEL1端置1(高电平)、MSEL2端置0(低电平)、/M8端任意。模式置好后开始录音,置RE端为0,压住/M1即听到嘀一声BUSY指示灯亮起即开始录音第一段,松键时又听到嘀一声BUSY指示灯熄灭即录音停止。/M2、/M3、/M4分别录其他三段。录音时可以不按顺序,先录任意一段均可,不满意可重新录音。每段的最大时间为15秒(以全片60秒录音计),录满时指示灯熄灭并响嘀嘀两声,当然实际每段录音可以长短不一。置RE端为1即是放音状态,按一下/M1即放音第一段,放音期间再按一下/M1即停止放音,如果压住/M1键不放即循环放音第一段直到松键。/M2、/M3、/M4均分别控制第二、三、四段。/CE键为停止键,放音期间按一下它也能停止放音。其它并行二段、八段的控制使用方式相同。二、串行控制模式串行控制方式用到的键要少得多,它仅需要一、二个键来控制所有的语音段录放,而且段数可以足够多,每段也没有时间限制。只是在选段上没有并行控制模式方便。置MSEL1、MSEL2均为0,在录音时/M8置1。置/RE端为0为录音状态,按住/M1即开始录第一段,松键即停止。再按住/M1即录第二段,如此一直分段录音,直到芯片溢出。在放音时(/RE=1)有两种状态,/M8置1为串行顺序控制方式,按一下/M1即放音第一段,再按一下即放第二段,如此顺序逐段放音,到最后一段结束时即停止放音,必须按一下CE键复位,然后再按/M1键就可以又从第一段放音。这种方式下的段不可选择只能按录音的顺序播放,适合走马灯、流程控制等电路使用;/M8置0为串行选段控制方式,按一下/M1只能放音第一段,再按还是放音第一段。这时的/M2有效成为快进选段键,每按一下/M2即向后移动一段,例如现在按了三下/M2,再按/M1就放音第四段。因此可以实现选段放音。按/CE键复位为第一段。APR9600芯片还有其它几种控制方式,用户可根据需要自行实验设计。APR9600的电性能参数:电源电压4.5-6.5V,静态电流1uA ,工作电流25mA。其外接振荡电阻与采样率、语音频带、录放时间的关系见表(三),该电阻可以根据用户需要的时间和音质效果无级调节。 语音电路原理图30三 、软件编程3.1 主程序流程图开机LCD液晶屏幕显示“日历、时间和闹铃开/关”信息。调用系统初始化程序,调用键盘子程序,调用读时间芯片时间子程序,调用时钟芯片初始化/改写程序,调用显示时间日期子程序。开始调用延时600MS子程序T0定时中断初始化LCD写指令子程序定时时间为50MS调用显示时间子程序子程序调用LCD初始化子程序 调用显示日期子程序LCD写指令子程序 调用键盘子程序LCD写数据子程序调用读时间芯片时间子程序第一行显示完? N N Y 调用更新显示单元的内容子程序 Y N显示二,三,四行程序 LCD全屏显示程序 N Y 3.2 键盘程序判断是否有按键按下,没有则不停查询,如有并调用相应液晶显示子程序。K3键有无键闭合?有无键闭合? N NK1键有无键闭合? YLCD写指令子程序N LCD字显示子程序LCD写指令子程序 Y键释放?LCD字显示子程序 Y 键释放? NK4键有无键闭合?Y N K2键有无键闭合? YLCD写指令子程序N YLCD字显示子程序LCD写指令子程序LCD字显示子程序键释放? Y 键释放?Y N 2 N 1 12 K5键有无键闭合? YLCD写指令子程序LCD字显示子程序 键释放? Y N K6个键有无键闭合? NN YLCD写指令子程序LCD字显示子程序 响应中断 键释放?Y 重复初值 N 返回 3.2.1 按键使用流程图设置/移位K1设置K1取消K2加1键K3查键减1键K4确定K6设置/移位K1取消K2闹钟设定K5加1键K3减1键K4确定K6闹钟开/关K5+K6 (按键使用图)按键查询部分程序:;*/查键盘状态子程序/*CHAZT: MOV KEY,#00H MOV P1,#0FFH MOV A,P1 CPL A ANL A,#7FH JZ BACK4 ;若(A)=0,则转移,否则顺序. LCALL TIM ;调用10mS延时子程序去抖动 MOV P1,#0FFH MOV A,P1 CPL A ANL A,#7FH JZ BACK4 MOV KEY,ABACK4: RET ;*/加一子程序(09)/*INCSHU: INC INCDEC MOV R2,INCDEC CJNE R2,#0AH,IN_BIIN_BI: JC IN_NET MOV INCDEC,#00HIN_NET: RET;*/减一子程序(90)/*DECSHU: DEC INCDEC MOV R2,INCDEC CJNE R2,#0AH,DE_BIDE_BI: JC DE_NET MOV INCDEC,#09HDE_NET: RET;*/加一子程序(05)/*INCSHU5: INC INCDEC MOV R2,INCDEC CJNE R2,#06H,IN_BI5IN_BI5: JC IN_NET5 MOV INCDEC,#00HIN_NET5: RET;*/减一子程序(60)/*DECSHU5: DEC INCDEC MOV R2,INCDEC CJNE R2,#06H,DE_BI5DE_BI5: JC DE_NET5 MOV INCDEC,#05HDE_NET5: RET;*/加一子程序(02)/*INCSHU2: INC INCDEC MOV R2,INCDEC CJNE R2,#03H,IN_BI2IN_BI2: JC IN_NET2 MOV INCDEC,#00HIN_NET2: RET;*/减一子程序(20)/*DECSHU2: DEC INCDEC MOV R2,INCDEC CJNE R2,#03H,DE_BI2DE_BI2: JC DE_NET2 MOV INCDEC,#02HDE_NET2: RET3.3 LCD液晶显示流程图LCD液晶显示是通过调用初始化程序,写数据子程序,写指令子程序,地址转换子程序,汉字显示子程序,读忙状态子程序以及延时子程序组合。具体如下:3.3.1 LCD初始化子程序子程序 3.3.2 写数据子程序调用忙子程序调用延时子程序启动写数据LCD写指令子程序读写线置0清屏启动使能控制线LCD写指令子程序传输数据调用延时子程序调用延时子程序设定方向及位移返回LCD写指令子程序调用延时子程序 返回3.3.4 写指令子程序启动使能控制线3.3.3 地址转换子程序子程序传送指令起始行位置缓存单元 字符/汉字显示起始位置调用延时子程序两者求和使能控制线置0返回存入起始位置缓存单元返回3.3.5 LCD显示汉字子程序 3.3.6 读忙状态子程序LCD显示汉字子程序调用延时子程序设定字符/汉字显示起始位置保存ACC数据显示行数置数据指令线清0调用调整地址单元子程序读写线置1LCD写指令子程序使能控制线置1LCD写数据子程序 N8位传完没有?调用延时子程序连续输入内码程序使能控制线置0 N Y返回跳到下一行连续输入内码程序 N Y 返回 3.3.7 LCD读写时序图 1)先将RS,R/W置相应位,再将数据送到端口,E发一高电平脉冲将命令或数据写入JHD529M1,时序图见下图,程序见附件图9 JHD529M1时序图 2)JHD529M1读操作时序图图10 JHD529M1读操作时序图 3)JHD529M1写操作时序图图1 JHD529M1写操作时序图3.4 DS1302时间部分 3.4.1 设置时间写入时钟芯片流程图 将时间值写到1302时钟芯片上,其用干调整更准确时间,程序流程图如下图。其中内部定时器为调整时间和日期。 新屏幕显示单元的内容程序调整子程序读时间子程序写初始/修改日期子程序写一个字节时钟芯片子程序读一个字节时钟芯片子程序显示时间日期子程序3.4.2读时间程序流程图将时间依次读到暂存的单元中读一个字节时钟芯片子程序读一个字节时钟芯片子程序3.5 DS18B20温度程序读出温度子程序的主要功能是读出RAM中的2字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图10示发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束 图10 温度转换流程图使用中断显示每秒扫描20H单元开始的32个单元计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图11所示。 开始保存到显示缓冲单元计算小数位温度BCD值 计算整数位温度D值结束温度数值分为两个字节保存显示寄存器设置为20H单元开始的32个单元SW7状态1 0使用中断显示每秒扫描38H单元开始的32个单元将要显示的数值+30H后存入相应单元0结束 图11计算温度流程图 图12显示数据刷新流程图 ;*/读取DS18B20的温度值和上下限温度/*RED_18: PUSHACC LCALL RESET18 ;复位18B20 480uS MOVA,#0CCH ;跳过ROM匹配 LCALL WRITE ;1820写一个字节 MOV A,#44H ;向DS18B20发出温度转换命令 LCALL WRITE ;1820写一个字节 MOV R8,#04H ;等待转换.MA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软骨肿瘤影像诊断
- 身心健康快乐你我
- 中医护理评估要点
- 教育惩戒实施规范细则
- 家庭情感教育分享
- 肺水肿的CT诊断
- 产科胎儿宫内窘迫护理查房课件
- 肾盂肾炎饮食护理
- 食物的奇妙旅程-大班健康教育活动
- 《跳跳跳》亲子活动策划方案
- 呼吸内科质控体系构建与实施
- 甲肝健康知识课件
- 2025至2030中国防辐射服行业发展趋势分析与未来投资战略咨询研究报告
- 社区干部考试试题及答案
- 年产2000吨电子级超高纯石英晶体材料制造项目报告表
- 2025年中小学暑假安全教育主题家长会 课件
- 2025-2030年中国芳烃行业市场深度调研及投资前景与投资策略研究报告
- 2023年冬雨季及夜间施工措施
- 康乐保造口产品课件
- 房屋无偿使用协议书范本(2篇)
- 辐射4代码大全(整合版)
评论
0/150
提交评论