版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录第一章 自动化工程训练设计的目的意义11.1 设计目的11.2 课程在教学计划中的地位和作用1第二章 空气湿度测量与报警系统软硬件设计任务32.1 设计内容及要求32.2 课程设计的要求3第三章 总体设计方案53.1 总体设计思想5 3.2 总体设计流程图6第四章 硬件设计7 4.1 硬件设计概要7 4.1.1湿度采样电路7 4.1.2 驱动器接线84.2 所用到的芯片及其各自功能说明8 4.2.1 芯片列表84.2.2 8032的功能简介9 4.2.3 adc0809的功能简介94.2.4 8279的功能简介114.2.5 lcd的功能简介124.2.6 湿度传感器12第五章 软件设计
2、145.1 系统模块145.2 各模块介绍14第六章 系统调试及使用说明18 6.1 系统调试18 6.2 使用说明18第七章 收获、体会19参考文献20附录21第一章 课程设计的目的、意义1.1 设计目的通过微控制器的硬件和软件的学习,使学生对单片机系统有一个全面、深刻的了解,能够熟练掌握芯片的工作原理和使用方法,从硬件和软件两方面的基础上对所学知识进行应用,对在课程设计过程中遇到的问题进行相关处理并分析结果,使学生能够在实际应用的过程中掌握软、硬件应用的精华部分,能够进行相对独立的程序设计和硬件设计,本质上实现了微控制器技术课程的教学目的。此次设计主要能够完成对空气湿度的测量监控和数据处理
3、以及显示报警功能的实现,可以通过键盘输入参数来设置系统得目标值和报警值,通过lcd来显示当前相对湿度值和键盘输入的目标值、报警值。当当前相对湿度值达到某种程度时,作出对应得驱动和报警。1.2 课程在教学计划中的地位和作用 计算机是当今发展最快的领域,随着计算机技术的发展,与其遥相呼应的微控制器的发展也是惊天地泣鬼神,正是这种软、硬件的更新换代,对学生学习微控制器技术这门课程和掌握相关的硬件知识变得更加重要,做到学以致用,使所学习的知识有助于今后的工作和学习,有必要将课堂上学习的理论和实践的结合,使学生能够真正的独立完成一项有一定知识架构的课程设计,如何自己思考相关的问题,如何去查资料并通过资料
4、汇总得出相关结论,如何去学习新的东西,如何去了解我们生活中智能仪器的相关知识,以及在应用的过程中制定相应的问题的解决方案并通过不断实践来提高学生分析问题和解决问题的能力。 因为单片机在日常生活中的可见性和普遍性,使得这次课程设计主要是以生活中常见的电子电器为参考作出设计,例如:空调系统,洗衣机系统,温度监控系统,湿度监控系统。这些在日常生活中使用十分普遍的电器,在课程设计中我们可以从原理上,从内在的运算认识到理论对实践的重要性以及实践来源于理论的意义。对一个系统成功的设计出来后的喜悦感让我们对微控制器的积极性充分的调动起来了。 所以说在这个经世致用的中南大学和创新型社会下,课程设计是必不可少,
5、更是重中之重,意义重大性是不可忽视的。第二章 空气湿度测量与报警系统软 硬件设计任务2.1 设计内容及要求设计出具有a/d采样、键盘输入参数设置的空气湿度检测、处理、显示和报警,并且可在线键盘参数设置、定时检测、显示和喇叭与灯光报警的空气湿度测量与报警系统。2.2 课程设计的要求2.2.1 课程设计的基本要求如下:1)掌握单片微控制器硬件结构和工作原理、中断与定时系统等基本概念和原理;2)熟悉8/16位单片微控制器(8x51/196系列)的主要功能单元和指令系统;3)利用微控制器的接口技术进行简单的测控及自动化应用系统设计;2.2.2 课程设计的具体要求如下1) 湿度采样 由于湿度传感器的湿度
6、检测转换并提供0-5v的信号输入,因此课程设计要求a/d多路采样电位器的输入电压,0-5v转换为00-0ffh数字信号,并存储计算显示.同时通过双通道采样同一个电位器的输入求平均值来保证采样的精度和显示值的稳定性.在此同时,增加第三通道独立采集,比较两种情况。2) 报警处理 键盘输入湿度的目标值和报警值,对采样进来的当前信号转换成数字信号后,与目标值和报警值做比较:(1)若当前值低与目标值,则属于干燥状态,亮绿灯灯;此时,应启动加湿器。(2)若当前值高于目标值同时低于报警值,则属于正常状态,亮黄灯;(3)若当前值高于报警值,则属于高湿度危险状态,两红灯,同时喇叭报警,并启动干燥器。(3) 键盘
7、输入和显示 通过键盘输入的参数(目标值和报警值)同时进行显示,对当前采样值进行动态显示,并可在线修改参数。第三章 总体设计方案3.1 总体设计思想总体设计思想分为以下六点: 1) 定义53h,63h,73h分别为目标值,报警值,当前值的存储区.首先调用一次显示程序,静态显示”请同时输入目标值和报警值,按功能键确定”,将输入的十进制值分别送到53h和63h,在p3.2有一个脉冲输入时,重新进入键盘扫描程序,否则完成键盘输入功能,并可在线修改参数;2) 通过ad转换将输入的电压信号转换为数字信号并调用数制转换程序,将16进制的当前值转换为十进制的三位数,同时存储在73h,完成信号检测和数制转换功能
8、; 3) 对转换后的当前值和输入的目标值,报警值做比较,运算后,根据不同的比较结果,改变,p1.1,p1.2,p1.3,p1.4,p1.5的状态,完成比较功能; 4) 将当前采样值,键盘输入的目标值和报警值分别显示在lcd对应的位置上,完成显示功能; 5) 根据3)中的改变情况,分别驱动红黄绿灯以及喇叭,p1.4,p1.5分别接干燥器和加湿的驱动器,完成报警功能. 6) 作适当延时,在返回到ad转换阶段 之前,判断p3.2的电位,若收到一脉冲,则此时开始重新初始化,进入键盘扫描程序,若没检测到,则继续采样重新扫描完成定时检测功能.总体设计思想就为这样的不断循环,其中因为p1.4,p1.5的存在
9、有一定的反馈控制,但是由于实验要求中并没作要求,因此,软件程序中对p1.4,p1.5的改变,以及硬件电路中对p1.4,p1.5的驱动接线并没有在实验室实现。 3.2 总体设计流程图程序流程图如图3.1开始初始化及初始显示扫描键盘,键盘输入程序启动ad双通道采样采样值转换采样值与设定值比较输出显示程序报警驱动处理程序需要修改参数?是否图3.1 程序流程图第四章 硬件设计4.1 硬件设计概要4.1.1:湿度采样电路:湿度采样电路用高分子湿度传感器chr01为复合型电阻型湿度敏感部件,其复阻抗与空气相对湿度成指数关系,直流阻抗(普通数字万用表测量)几乎为无穷大,与传统意义上的电阻有空气中水分子参与膜
10、感湿中的离子导电,由于水分子为极性分子,在直流电存在的情况下,会电离,分解,从而影响导电与元件的寿命,所以要求采用交流电路对传感器进行供电。湿度传感器由于其必须的激励通过交流电来实现,及不同温度特性下阻抗不同的特性,决定了其在ad采样电路中必须采用动态采样的方法,并同时采样温度信号。具体电路示意图4.1如下: 图4.1湿度采样电路参数设计: r0采样电阻的阻值通常建议在3050k,侧重高湿测量,采样电阻阻值可降低到20k,低湿阻值可提高到100k。 在信号的正周期内的中间段进行采样,直接通过分压法采集,注意采样时间,通过电压采样后得到v0,计算如下:rx=r0*(v-v0)/v0同时检测当前温
11、度t,通过查阅湿度传感器z/rh/t数据表,在不同温度下rx的值推算出当前的相对湿度rh%。不同单片机可能得到的数据会有所不同,可通过软件进行矫正。4.1.2 报警驱动接线p1.1接红灯p1.2接黄灯p1.3接绿灯p1.4可同时接喇叭和干燥驱动器p1.5接加湿驱动器4.2 所用到的芯片及其各自功能说明4.2.1 芯片列表(如表4.1)表4.1芯片列表芯片名称规格数量备注8032 1片八位单片机adc08091片八位模数转换芯片74ls1641片74ls022片四2输入或非门82791片可编程键盘/显示接口lcd1片液晶显示器湿度传感器chr011片4.2.2 8032的功能简介8031单片机采
12、用40脚双列直插式封装结构,引脚配置如图4.3所示。图4.3 80c32引脚图4.2.3 adc0809的功能简介 图4.4 ad0809芯片图adc0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行a/d转换。1主要特性1)8路8位ad转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s4)单个5v电源供电 5)模拟输入电压范围05v,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mw。 2内部结构 adc0809是cmos单片型
13、逐次逼近式ad转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型da转换器、逐次逼近 3外部特性(引脚功能) adc0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 in0in7:8路模拟量输入端。2-12-8:8位数字量输出端。adda、addb、addc:3位地址输入线,用于选通8路模拟输入中的一路ale:地址锁存允许信号,输入,高电平有效。 start: ad转换启动信号,输入,高电平有效。eoc: ad转换结束信号,输出,当ad转换结束时,此端输出一个高电平(转换期间一直为低电平)。 oe:数据输出允许信号,输
14、入,高电平有效。当ad转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。clk:时钟脉冲输入端。要求时钟频率不高于640khz。 ref(+)、ref(-):基准电压。 vcc:电源,单一5v。gnd:地。adc0809的工作过程是:首先输入3位地址,并使ale=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。start上升沿将逐次逼近寄存器复位。下降沿启动 ad转换,之后eoc输出信号变低,指示转换正在进行。直到ad转换完成,eoc变为高电平,指示ad转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当oe输入高电平 时,输出三态门打开,转换结果的数
15、字量输出到数据总线上。4.2.4 8279的功能简介8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与cpu接口功能块控制功能块包括 控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.控制和定时寄存器:用于存贮来自cpu的编程命令,cpu对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使a0=1,wr=0cs=0,并在wr上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能.定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,使内部频率为1
16、00khz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数. 扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚sl0-sl3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,sl0-sl3输出4选1的译码信号,作为显示器和键盘的译码扫描. 键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 fifo传感器ram,fifo/传感器ram状态.4.2.5 lcd的功能简介 图4.5 lcd连线图4.2.6 湿度
17、传感器高分子湿度传感器chr01、02系列为新一代复合型电阻型湿度敏感部件,其复阻抗与空气相对湿度成指数关系,直流阻抗(普通数字万用表测量)几乎为无穷大,与传统意义上的电阻有空气中水分子参与膜感湿中的离子导电,由于水分子为极性分子,在直流电存在的情况下,会电离,分解,从而影响导电与元件的寿命,所以要求采用交流电路对传感器进行供电。对湿度传感器而言,频率与阻抗之间存在一定的关系,对于测量30%-80%rh范围,频率的变化对传感器影响并不明显,在单片机软件编程的实际应用时,需要通过将传感器置于湿度发生装置中(例如恒温恒湿箱)进行实测,通过软件对最终的误差进行修正,此项修正基本上可以弥补频率变化所产
18、生的误差以及其他误差。湿度传感器阻抗变化与温度的关系见规格书中的数据表,先检测温度,然后按查表法对进行湿度检测。如果湿度精度要求不是特别严格的情况,(从数据处理简易的法则来说),可以推算湿度传感器温度系数为-0.4%rh/,公式为: h(t)=h (25) - 0.4*(t 25)例如,以实测阻抗按25的数据表读数,例如在35时读到的阻抗为30k,按25表格,相对湿度为60%rh,此时按公式计算的实际湿度应为56%rh。最后的问题是在生产过程中,由于湿度传感器的原因或其他原因,总会遇到实际值与测量值之间存在误差的情况,在单片机功能允许的情况下,建议通过软件做最后的修正,主要采用跳线(jump)
19、的方法对示值进行修正,安排一个io,做加/减运算符号定义,其余2-4个io,用于定义加/减的值,例如1,2,3,可以修正正负6%rh的示值偏差。第五章 软件设计5.1 系统模块5.1.1模块初始显示output2键盘扫描及键盘输入inputad采集 adstart进制转换 conver输入数据比较 compare采样输出 output报警以及相应控制 control延时 delay155.2 模块介绍 5.2.1 初始静态显示 每个字的大小设置为1616,因次可显示四行,每行显示8个字。第一行为“ 欢迎使用 ”;第二行为“请连续输入目标湿”;第三行为“度值和报警湿度值”;第四行不显示,为空白。
20、5.2.2 8279键盘输入连续输入2组十进制数,第一组目标值,低于目标值则环境干燥,第二组为报警值,高于报警值则环境潮湿,在两数之间范围内适度正常。5.2.3 ad数据采集 由于0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件,所采集的数为00至ff,要转换为10进制时需要采集结果经过数制转换。需要采集结果与0.4相乘,此时出现较小误差。在出现余数时在对余数成0.4,至小数点后一位截至。子程序adstsradstar: ;ad转换lcall delaymov a,#00h ; 0通道 mov dptr,#9000hmovx dptr,alcall delaymovx a,dptr
21、lcall delaymov b,#02hdiv abmov 70h,amov a,#01h ;1通道mov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlcall delaymov b,#02hdiv abmov 71h,amov b,70hadd a,bmov 72h,a ;取二者平均值mov b,#5div abmov 79h,bmov b,#2mul abmov 73h,a ;100(64h)mov a,79hmov b,#4mul abmov b,#10div abadd a,73h;100+1mov 73h,amov 7ah,bmov b
22、,#100div abmov 74h,a ;百位mov a,bmov b,#10div abmov 75h,a ;十位mov a,bmov 76h,a ;个位mov a,7ahmov 78h,aret5.2.4输入数据比较 compare compare: mov b,53h 目标值储存区 mov a,#100 clr c subb a,b jnc comp1 mov a,#15h mov 50h,a mov a,#22h mov 51h,a mov 52h,acomp1: mov b,63h 报警值储存区 mov a,#100 clr c subb a,b jnc comp2 mov a,#
23、15h mov 60h,a mov a,#22h mov 61h,a mov 62h,acomp2: mov b,73h 当前值储存区 mov a,#100 clr c subb a,b jnc comp3 mov a,#01h mov 74h,a mov a,#0h mov 75h,a mov 76h,a mov 78h,acomp3: mov b,53h mov a,63h clr c subb a,b jnc comp4 mov a,#15h mov 50h,a mov a,#22h mov 51h,a mov 52h,acomp4:ret此子程序是用来检测输入格式是否正确,比如目标值不
24、能超过报警值,而这都不能超过100,如果出现这几种情况,出错的地方会有error显示在lcd上。5.2.5采样输出 output 此输出就是把当前值实时显示出来,因为程序是进入的一个循环,ad不停的采样,这样数据实时更新。需要修改参数时只需至p3.2一个脉冲,程序跳转到8279初始化那,往下运行。5.2.6报警以及相应控制 control (1)若当前值低与目标值(下限),则属于干燥状态,亮绿(黄)灯灯;此时,应启动加湿器。(2)若当前值高于目标值(下限)同时低于报警值,则属于正常状态,亮黄(绿)灯;(3)若当前值高于报警值,则属于高湿度危险状态,两红灯,同时喇叭报警,并启动干燥器。第六章 系
25、统调试及使用说明6.1 系统调试经过三周的不断调试更改再调试,最终得到了完整的成功的一个湿度测量控制系统。在次过程中遇到了各种各样的问题,也采取了不同的处理方法。例如:根据要求的在线键盘输入,我们一开始将input作为子程序放入循环中,结果出现每次循环都得进行一次键盘输入才能够继续下面的ad采样以及其他的显示报警子程序,显然这样不符合要求和不符合现实。经过讨论调试,修改为键盘输入放在主程序中,在开始初始化显示好进行一次键盘输入,然后通过p3.2的开关脉冲量的判断,若p3.2有一个脉冲输入,则跳到主程序最开始重新进行键盘输入,否则只进行ad采样转换显示和报警处理。 我们最终完成后出现一个问题,当
26、ad0809采集通道什么都不接时,指示灯会红黄绿等一直不停地闪烁,开始我以为是自己开始并未给存储地址初始化,当我们给那个地址(43h)分别赋值为00h,0ffh时还会出现这种情况,最后在与老师的讨论中了解到,由于手拿接线来回摇晃时,会产生感应电压,是采集的数不稳定。6.2 使用说明1) 运行程序进入系统监测状态后,lcd液晶显示“欢迎使用 请连续输入湿度目标值和报警值(按f2确认并退出)”。2) 通过键盘进行参数设置,例如输入050、080后按f2功能键确认。3) 进行ad采样、转换、比较、显示、报警处理。lcd画面显示:湿度检测系统,当前湿度值为xx.xx%,目标值为 50%,报警值为100
27、%。xx.xx%为当前湿度相对值。并随湿度变化而改变。4) 若xx.xx50,则亮绿灯;50xx.xx100,亮红灯并喇叭报警。当当前值xx.xx改变时,以上处理状态跟随而变。5) 需要参数重新设置,则给予开关p3.2一个脉冲(课程设计中以开关的一次1和一次0的给予),重新返回到1)步。 第七章 收获、体会这次课程设计在周周内完成一个系统的设计,时间还是比较充裕的。在这段时间里,我解决很多在课堂上在老师那发现不了的问题,学习到了一个系统的成功不仅仅是需要会编程,更需要的是怎么样从一堆错误一堆问题中逐一排除,找到解决的办法。这一点我体会是十分深刻。例如:前面提到的键盘输入导致每次循环都得进行一次
28、参数设置的问题,经过每一个子程序的单独运行,发现都可以正常运行,但融合到一起就出现问题了。单步运行,也没发现问题,一个一个子程序的屏蔽,找到了键盘输入的问题。于是解决办法就如前说产生出来了。此外,对于lcd显示,键盘输入和ad采样的模块组合,以及双通道采样保证精度也让我了解到,理论上的东西不经过实践自己是很难理解透的,“知道并不等于会用”这句话正是最好的说明。参考文献1 王秋爽 曾昭龙.单片机开发基础与经典设计实例.北京:机械工业出版社,2008.12 林伸茂.8051单片机.北京:人民邮电出版社,2004.5附录(附源程序)源程序如下:42org 0100hmain: ;主程序output2
29、: ;初始静态显示mov dptr,#8000hmov a,#00hmovx dptr,a ;写数据mov a,#00hmovx dptr,ainc dptrmov a,#42hmovx dptr,a ;写指令lcall dy;设置图形显示起始地址mov dptr,#8000hmov a,#10hmovx dptr,amov a,#00hmovx dptr,ainc dptrmov a,#43hmovx dptr,alcall dymov a,#0a7h ;设置图形显示范围movx dptr,alcall dymov a,#80hmovx dptr,alcall dy;选择or模式mov a,
30、#9bhmovx dptr,alcall dy;文本关,图形开mov dptr,#8000hmov a,#00hmovx dptr,amov a,#00hmovx dptr,amov a,#24hinc dptrmovx dptr,alcall dy;设置起始地址mov a,#0b0hmovx dptr,amov r0,#00h;开始数据自动写qss0: ;显示欢迎使用mov a,r2mov dptr,#chi5movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz r0,qss0mov r0,#00hmov r2,#00hqss1: ;显示请连续输
31、入设置值mov a,r2mov dptr,#chi6movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz r0,qss1mov r0,#00hmov r2,#00hqss2: ;显示度值和报警湿度值mov a,r2mov dptr,#chi7movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2djnz r0,qss2mov r0,#00hmov r2,#00hqss3: ;空白mov a,r2mov dptr,#chi8movc a,a+dptrmov dptr,#8000hmovx dptr,ainc r2d
32、jnz r0,qss3;取数据mov dptr,#8001hmov a,#0b2hmovx dptr,alcall dyinput:ha7s: mov sp,#53h ;初始化8279 mov dptr,#0b001h mov a,#00h movx dptr,a mov a,#32h movx dptr,a mov a,#0dfh movx dptr,aha7s1: movx a,dptr ;显示p jb acc.7,ha7s1 mov dptr,#0b000h mov a,#0c8h movx dptr,a inc dptr mov a,#80h movx dptr,aha7s2: mov
33、 30h,#80h ;键扫程序 mov 31h,#40h mov r1,#50hha7s3: mov dptr,#0b001h ;数字键连续输入六位及显示 movx a,dptr anl a,#07h cjne a,#00h,ha7s4 ajmp ha7s3ha7s4: mov dptr,#0b000h movx a,dptr mov b,a mov r3,#00h mov dptr,#keytabha7s5: mov a,#00h movc a,a+dptr cjne a,b,ha7s6 ajmp ha7saha7s6: inc dptr inc r3 mov a,r3 jb acc.4,h
34、a7s3 ajmp ha7s5ha7sa: mov a,30h mov dptr,#0b001h movx dptr,a mov a,r3 mov r1,a mov r0,31h mov r0,a inc 31h mov dptr,#cdata movc a,a+dptr mov dptr,#0b000h movx dptr,a inc 30h inc r1 cjne r1,#53h,con mov r1,#60hcon: mov a,30h cjne a,#86h,ha7sb ljmp jiaha7sb: ajmp ha7s3jia: mov dptr,#0b001h ;功能键扫描 movx
35、 a,dptr anl a,#07h cjne a,#00h,jia3 ajmp jiajia3: mov dptr,#0b000h movx a,dptr mov b,aha7s7: mov dptr,#keytab1ha7s8: mov a,#00h movc a,a+dptr cjne a,b,ha7s9 ajmp kha7s9: inc dptr ajmp ha7s8k: ljmp loop0keytab: db 0c1h,0c8h,0c9h,0d0h,0d8h,0e0h,0c2h,0cah,0d1h,0d9h db 0dah,0c3h,0cbh,0d2h,0d3h,0dbhkeyta
36、b1:db 0e3h,0e2h,0e1hcdata:db 0ch,9fh,4ah,0bh,99h,29h,28h,8fh,08h,09h,88h,38h db 6ch,1ah,68h,0e8hloop0: mov 40h,#80h ;清显示程序q1: mov a,40h mov dptr,#0b001h movx dptr,a mov a,#0ffh mov dptr,#0b000h movx dptr,a inc 40h mov a,40h cjne a,#86h,q1 ajmp main1q2: jb p3.2,q3 ajmp main1q3: ljmp inputmain1: lcall
37、 adstar ;启动ad转换 lcall conver ; 十进制转换 lcall compare ; 采样值与设置值做比较 lcall output ; 采样值输出 lcall delay ; 延时 lcall delay lcall delay lcall delay lcall delaycontrol:mov a,73h ;根据比较结果作出判断 mov b,63h clr c subb a,b laba: setb p1.0 jc okgetbaojing: ;红灯亮(高于报警值,处于危险状态) setb p1.1 clr p1.2 clr p1.3 setb p1.4 lcall
38、delay clr p1.4 lcall delay lcall delay djnz 20h,laba ajmp man1okget: mov a,73h mov b,53h clr c subb a,b jc lowerhigher: clr p1.1 setb p1.2 clr p1.3 ;黄灯亮(高于目标值低于报警值) ajmp man1lower: clr p1.1 clr p1.2 ;绿灯亮(低于目标值) setb p1.3man1: mov a,43h mov b,63h clr c subb a,b setb p1.0 jc okbaojin: ;红灯亮(高于报警值,处于危险状
39、态) setb p1.5 clr p1.6 clr p1.7 ajmp man2ok: mov a,43h mov b,53h clr c subb a,b jc q4 clr p1.5 setb p1.6 clr p1.7 ;黄灯亮(高于目标值低于报警值) ajmp man2q4: clr p1.5 clr p1.6 ;绿灯亮(低于目标值) setb p1.7man2: ljmp q2compare: mov b,53h mov a,#100 clr c subb a,b jnc comp1 mov a,#15h mov 50h,a mov a,#22h mov 51h,a mov 52h,
40、acomp1: mov b,63h mov a,#100 clr c subb a,b jnc comp2 mov a,#15h mov 60h,a mov a,#22h mov 61h,a mov 62h,acomp2: mov b,73h mov a,#100 clr c subb a,b jnc comp3 mov a,#01h mov 74h,a mov a,#0h mov 75h,a mov 76h,a mov 78h,acomp3: mov b,53h mov a,63h clr c subb a,b jnc comp4 mov a,#15h mov 50h,a mov a,#22
41、h mov 51h,a mov 52h,acomp4:retadstar: ;ad开始转换lcall delaymov a,#00hmov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlcall delaymov b,#02hdiv abmov 70h,amov a,#01hmov dptr,#9000hmovx dptr,alcall delaymovx a,dptrlcall delaymov b,#02hdiv abmov 71h,amov b,70hadd a,bmov 72h,a ;平均值mov b,#5div abmov 79h,bmov
42、 b,#2mul abmov 73h,a ;100(64h) mov a,79hmov b,#4mul ab mov b,#10 div abadd a,73h;100+1mov 73h,amov 7ah,bmov b,#100div abmov 74h,a ;百位mov a,bmov b,#10div abmov 75h,a ;十位mov a,bmov 76h,a ;个位mov a,7ahmov 78h,a mov a,#02h 多加通道,用来观察比较 mov dptr,#9000h movx dptr,a lcall delay movx a,dptr lcall delay mov b,
43、#5 div ab mov b,#2 mul ab mov 43h,a retdelay:mov r6,#02hdelay2:mov r7,#0ffhdelay1:djnz r7,delay1 djnz r6,delay2 retconver: ;做调整mov 53h,52hmov a,51hmov b,#10mul abadd a,53hmov 53h,amov a,50hmov b,#100mul abadd a,53hmov 53h,amov 63h,62hmov a,61hmov b,#10mul abadd a,63hmov 63h,amov a,60hmov b,#100mul a
44、badd a,63hmov 63h,a retoutput: ;输出程序mov dptr,#8000hmov a,#80hmovx dptr,a ;写数据mov a,#00hmovx dptr,ainc dptrmov a,#42hmovx dptr,a ;写指令lcall dy;设置图形显示起始地址mov dptr,#8000hmov a,#00hmovx dptr,a ;写数据mov a,#00hmovx dptr,ainc dptrmov a,#40hmovx dptr,a;写指令lcall dy;设置文本显示起始地址mov dptr,#8000hmov a,#10hmovx dptr,
45、amov a,#00hmovx dptr,ainc dptrmov a,#41hmovx dptr,alcall dymov dptr,#8000hmov a,#10hmovx dptr,amov a,#00hmovx dptr,ainc dptrmov a,#43hmovx dptr,alcall dy;设置图形显示范围mov a,#0a7hmovx dptr,alcall dy mov a,#80hmovx dptr,alcall dy;选择or模式mov a,#9chmovx dptr,alcall dy; 文本开,图形开mov dptr,#8000hmov a,#00hmovx dptr,amov a,#00hmovx dptr,amov a,#24hinc dptrmovx dptr,alcal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准砂石购销合同文本
- 粮油采购及供应协议
- 购销摄像机合同
- 饲料添加剂采购合同的合同风险防范
- 车库出租合同书范例
- 云服务迁移合同
- 项目服务合同的法律责任认定
- 煤矿安全文明生产与质量标准化
- 自驾车服务畅行无阻
- 家居采购合同的签订要点
- JBT 1472-2023 泵用机械密封 (正式版)
- 二级公立医院绩效考核三级手术目录(2020版)
- 6人小品《没有学习的人不伤心》台词完整版
- 多媒体技术多媒体技术
- Y3150齿轮机床电气控制技术课程设计
- 人教版小学数学六年级上册第一单元测验双向细目表
- 部编本小学五年级上册语文期末考试(选择题)专项训练题及答案
- 读《让儿童在问题中学数学》有感范文三篇
- 陈述句改成双重否定句(课堂PPT)
- 人教版六年级数学上册总复习教案
- 自闭症儿童行为检核表学前版
评论
0/150
提交评论