中北大学基于单片机的浓度检测装置设计.doc

中北大学基于单片机的浓度检测装置设计

收藏

压缩包内文档预览:(预览前20页/共22页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:512680    类型:共享资源    大小:88.26KB    格式:RAR    上传时间:2015-11-11 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
毕业设计
资源描述:
中北大学基于单片机的浓度检测装置设计,毕业设计
内容简介:
目 录 一、引言 . 3 二、 浓度采集装置 的基本组成方框 . 3 三、系统硬件组成 . 4 (一 )、 浓度 传感器 AD590及其应用 . 4 (二)、 放大器 . 5 (三)、 A/D转换器 MC14433 . 5 (四)、 LED显示器 . 6 (五)、系统核心单片机部分 -闪电存储器型器件 AT89C51 . 7 (六)、其它 . 12 四 . 浓度采集装置 的流程图 . 12 五、 系统主程序 . 14 六总结和体会 . 24 参 考 文 献 . 24 nts浓度采集装置 设计 摘要 本论文叙述了应用单片机 AT89C51 构成的 浓度采集装置 主要的功能、 硬件的组成和软件的设计。该系统的功能是通过 浓度 传感器对 浓度 进行采集,然后通过 A/D 转换器 MC14433 进行模数转换,传给单片机进行处理,从而实现 浓度 温度的实时显示。整个系统结构紧凑、简单可靠、操作灵活、功能强、性能价格比高,较好地满足了现代农业生产和科研的需要 ,尤其是过程工业中浓度的检测的应用。 关键词 单片机 浓度 传感器 A/D 转换器 实时显示 一、引言 单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方 便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用 CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在单片机在农业上也有了很多的应用。 浓度 是日常生活 、 工业 、医学、环境保护、化工、石油等领域最常遇到的一个物理量。过程工业中浓度的实时采集尤其重 要 。利用单片机和 浓度 传感器构成的电子式智能 浓度采集装置 就可以直接 检测浓度 ,得到 浓度 的数字值,既简单方便,又直观准确。 二、 浓度检测采集装置 的基本组成方框 图 1 1 是 浓度采集装置 的基本组成方框。主要由 浓度 传感器,放大器, A/D 转换器,单片机控制, LED 显示器,电源等组成。 浓度 传感器是把 浓度 转换成电压(或电流)的器件,浓度 传感器输出电压的大小随温度的高低变化而变化,电压值的变化范围从几个微伏到几个毫伏。不同的 浓度 传感器,输出电压的范围也差别很大。放大器的主要功能是把微弱的 浓度电压信号放大到( 0 2)伏或( 0 5)伏的范围内,以便进行 A/D 转换。 A/D 转换器把放大后的模拟 浓度 电压信号转换成对应的数字 浓度 电压信号。单片机 AT89C51 是 浓度采集装置 的控制核心,一方面控制 A/D 转换器实现模拟信号到数字信号的转换,另一方面将采集到的数字 浓度 电压值,经过计算处理,得到相应的 浓度 值,送到 LED 显示器以数字形式显示测量的浓度 。 LED 显示器用于显示 采集的浓度 的结果。 图 1 1 浓度采集装置 方框图 单 片 机 8951 LED 显 示 器 浓度 传 感器 放 大 器 A/D 转 换 器 电 源 nts 三、系统硬件组成 图 1 2 浓度采集 的电路原理。 假定 : 浓度采集范围 : 0 20。 单位 KG/M3 浓度 数字显示: 000.0 或 012.8等,十进制小数点后一位。 (一 )、 浓度 传感器 选型 及其应用 (二)、 放大器 放大器由运算放大器 A 组成,常用的芯片有: LF335, LF336, CA3140 等,主要功能是把模拟的 浓度 电压信号放大到 A/D 转换器要求的输入电压范围。 A/D 转换器 MC14433 要求,模拟输入电压的范围为: 0 2V。 W3 的作用是抵消温度传感器 AD590 在摄氏 0时产生的 温度电压 Vo 273.2mV,使放大器 A 的输出电压为 0.0V。放大器 A 的放大倍数选择为 10,保证温度在 0 150范围内变化,而放大器的输出电压在 0 1。 50V的范围内。电位器 W2用于调整放大器的放大倍数。 (三)、 A/D转换器 MC14433 A/D 转换器由双积分型 3 又 1/2 位 A/D 转换器 MC14433 来完成。因为温度的变化具有惯性,变化缓慢, MC14433的转换速度完全可以满足温度测量的要求。 MC14433的方框图和引脚如图 3所示,它是单片 CMOSA/D转换器 ,它采用双积分原理实现A/D转换。因为转换后的数字量有三位十进制数,而最高位只能输出或,故称为又 1/2位 A/D 转换器该电路需 要外接积分电阻和电容,外接失调补偿电容 C。该电路具有自动调零、自动极性转换功能,它精度高、功耗低、使用方便并能与微机或其他数字电路兼容。它广泛用于数字面板表、数字万用表、数字量具和遥控遥测系统。 nts 图 1 3 MC14433 的方框图和引脚 引脚引线功能如下: G 被测电压 VX 和参考电压 VR的模拟接地端 VR 外接参考电压端( +2V 或 +200Mv) VX 被测电压输入端 R1, R1/C1, C1 外接积分电阻 R1 和积分电容 C1 元件端。外接元件典型值:当量程为2V时, C = 0.1 F,R = 470k;当量程为 200mV时, C1 = 0.1 F, R1 = 27k C01,C02 外接失调电容 C0端。 C0典型值为 0.1 F DU 数据显示控制端。当 DU和 EOC(引脚 14)连接时,每次 A/D转换都输出 CLKI, CLKO 时钟振荡器外接电阻 RC 端, RC 的典型值为 470k,时钟频率随 RC 增加而下降 VEE 模拟负输入端。典型值为 -5V VSS 数字地,除 CLKO端外所有输出端的低电平基准。当 VSS与 VAG相连(即数字地和模拟地相连)时,输出电压幅度为 VAG VDD( 0V +5V) ;当 VSS与 VEE( -5V)相连,输出电压幅度为 VEE VDD( -5V +10V)。实际应用时一般是 VSS与 VAG相连 EOC 转换结束控制端(输出)。每当一个 A/D 转换周期结束, EOC 端输出一个宽度为时钟周期 1/2宽度的正脉冲 OR 过量程标志输出端。平时为高电平。当 VX VR 时(被测电压输入绝对值大于参考电压), OR 端输出低电平 DS1 DS4 多路选通脉冲输出端,对应 DS1千位,对应 DS4个位。每个选通脉冲宽度为18个时钟脉冲,两个相邻脉冲之间间隔为 2个时钟周期 Q0 Q3 BCD 码数据输出线 。其中为 Q0 最低位, Q3 为最高位。当 DS2 、 DS3 和 DS4 选通期间, Q0 Q3 除了表示千位的 0或 1外,还表示了转换值的正负极性和欠量程还是过量程 VDD 正电源端。典型值为 +5V ntsMC14433 的外部连接电路 尽管 MC14433外部连接元件很少,为使其工作于最佳状态,也必须注意外部电路的连接和外接元件的选择,其实际连接电路如图 11 18所示。为了提高电源抗干扰的能力,正、负电源分别通过去耦电容 0.047 F、 0.02 F与 VSS(VAG)相连。 MC14433和单片机 8051采用查询方式连接。 MC14433的多路选通脉冲输出端和 BCD码数据输出端 Q0-Q7 和单片机的 P0口连接。 EOC端和 8051的 /INT0连接,单片机 8051通过不断查询 /INT0端的状态,了解 MC14433的每次 A/D转换是否结束,在 A/D转换结束后,经 P0口读取 A/D转换的结果,存入 CPU内部的输入数据缓冲区。 MC1403是高精度的基准源( 2.5V),它的输出经 10K可调电位器,调整到 2.0V提供 MC14433的基准电压。 (四)、 LED显示器 LED显示器由 4位共阴极 LED 显示器组成,采用动态分时扫描方式。采用 4位共阴极 LED示器使为了保证温度超过 100时,测量结果仍能保持在小数点后一位显示,例如: 110.4,提高测量显示精度。 共阴极 LED显示器的阳极和单片机 CPU的 P1口连接,显示段码由 CPU通过 P1口传送到LED 显示器的阳极。位扫描码由单片机 8051 的 P2 口低四位输出,经同相驱动器传送到 LED显示器的阴极,选通 LED显示器的数位, P2.3, P2.2,P2.1,P2.0 输出电平为 0111时,选通左边的第一位数字, P2.3, P2.2,P2.1,P2.0输出电平为 1011时,选通左边的第二位数字, P2.3, P2.2,P2.1,P2.0 输出电平为 1101时,选通左边的第三位数字, P2.3,P2.2,P2.1,P2.0输出电平为 1110时,选通左边的第四位数字。 (五)、 系统核心单片机部分 -闪电存储器型器件 AT89C51 单片机 AT89C51 有内部 RAM,可以作为各种数据区使用,内部 闪电存储器 存放智能温度计的控制程序。它的主要功能是控制 MC14433,实现温度的数字值采集,完成温度的数字采集值到对应数字温度的转换计算,并把计算的数字温度转换相应的显示段码,控制 LED 显示器以动态扫描方式进行温度显示。 AT89系列单片机是 ATMEL公司生产的。这是当前最新的一种电擦写 8位单片机,与 MCS-51系列完全兼容,有超强的加密功能,可完全替代 87C51/52和 8751/52。它物美价廉,深受用户欢迎。 与 87C51相比, AT89 系列的优越性在于,其片内闪电存储器的编程与擦除完全用电实现;数据不易挥发,可保存 10 年;编程 /擦除速度快,全 4K 字节编程只需时 3s,擦除时间约用10ms; AT89系列了实现在线编程;也可借助电话线进行远距离编程。 AT89C51 是一种低功耗、高性能内含 4K 字节闪电存储器( Flash Memory)的 8 位 CMOS微控制器。这种器件系以 ATMEL高密度不挥发存储技术制造,与工业标准 MCS-51 指令系统和引脚完全兼容。片内闪电存储器的程序代码或数据可在线写入,亦可通过常规的编程器编程。例如, MP-100 这样一种经济型的编程器,它支持通用 EPROM 等各种存储器、 PAL、 GAL 以及INTEL、 ATMEL和 PHILIPS等各公司的全系列 51 单片机的编程。 ME5103和 ME5105 仿真器支持AT89系列所有器件的调试、仿真和编程。 AT89C51 具有下列主要性能: . 4KB可改编程序 Flash存储器 (可 经受 1, 000次的写入 /擦除周期) nts.全静态工作: 0Hz 24MHz .三级程序存储器保密 .128 X 8字节内部 RAM .32 条可编程 I/O线 .2个 16 位定时器 /计数器 .6个中断源 .可编程串行通道 .片内时钟振荡器 另外, AT89C51是用静态逻辑来设计的,其工作频率可下降到 0 Hz,并提供两种可用软件来选择的省电方式 空闲方式( Idle Mode)和掉电方式( Power Down Mode)。在空闲方式中, CPU停止工作,而 RAM、定时器 /计数器、串行口和中断系统都继续工作。在掉电方式中 ,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内 RAM中的内容,直到下一次硬件复位为止。 ( 1)主电源引脚 (a).Vcc 电源端 (b).GND 接地端 ( 2)外接晶体引脚 XTAL1和 XTAL2 (a).XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。 (b).XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部 振荡器时,此引脚应悬浮不连接。 (3).控制或与其它电源复用引脚 RST、 ALE/PROG、 /PSEN和 /EA/Vpp (a).RES 复位输入端。当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 (b).ALE/PROG 当访问外部存储器时, ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器, ALE端仍以不变的频率(此频率为振荡器频率的 1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳 过一个 ALE脉冲。在对 Flash存储器编程期间,该引脚还用于输入编程脉冲( /PROG)。 如果需要的话,通过对专用寄存器( SFR)区中 8EH单元的 D0位置数,可禁止 ALE操作。该位置数后,只有在执行一条 MOVX 或 MOVC 指令期间, ALE 才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止 ALE 位无效。 (c). /PSEN 程序存储允许( /PSEN)输出是外部程序存储器的读选通信号。当AT89C51/LV51由外部程序存储器取指令(或常数)时,每个机器周期两次 /PSEN 有效(既输出 2个 脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 (d)./EA/Vpp 外部访问允许端。要使 CPU 只访问外部程序存储器(地址为 0000HntsFFFFH),则 /EA端必须保持低电平(接到 GND端)。然而要注意的是,如果保密位 LB1被编程,复位时在内部会锁存 /EA端的状态。 当 /EA端保持高电平(接 Vcc端)时, CPU则执行内部程序存储器中的程序。 在 Flash 存储器编程期间,该引脚也用于施加 12V 的编程允许电源 Vpp(如果选用 12V编程)。 ( 4) 输入 /输出引脚 P0.0 P0.7、 P10. P1.7、 P2.0 P2.7 和 P3.0 P3.7 (a).P0端口( P0.0 P0.7) P0 是一个 8位漏极开路型双向 I/O端口。作为输出口用时,每位能以吸收电流的方式驱动 8个 TTL输入,对端口写 1时,又可作高阻抗输入端用。 在访问外部程序和数据存储器时,它是分时多路转换的地址(低 8位) /数据总线,在访问期间激活了内部的上拉电阻。 在 Flash编程时, P0端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。 (b).P1端口( P1.0 P1.7) P1 是一个带有内部上拉电阻的 8位双向 I/O端口。 P1的输出缓冲器可驱动(吸收或输出电流方式) 4个 TTL输入。对端口写 1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在对 Flash编程和程序验证时, P1 接收低 8位地址。 (c).P2 端口( P2.0 P2.7) P2 是一个带有内部上拉电阻的 8 位双向 I/O 端口。 P2 的输出缓冲器可驱动(吸收或输出电流方式) 4个 TTL输入。对端口写 1时,通过内部的上拉电阻把端口拉到高电位,这时 可用作输入口。 P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器和 16 位地址的外部数据存储器(如执行 MOVX DPIR指令)时,P2 送出高 8 位地址。在访问 8 位地址的外部数据存储器(如执行 MOVX RI 指令)时, P2口引脚上的内容(就是专用寄存器( SFR)区中 P2寄存器的内容),在整个访问期间不会改变。 在对 Flash编程和程序验证期间, P2 也接收高位地址和一些控制信号。 ( d) .P3端口( P3.0 P3.7) P3 是一个带有内部上拉电阻的 8位双 向 I/O端口。 P2的输出缓冲器可驱动(吸收或输出电流方式) 4个 TTL输入。对端口写 1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 P3 作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在 AT89C51中, P3 端口还用于一些专门功能,这些兼用功能见表 1 表 1 1 端 口 引脚 兼 用 功 能 P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 /INT0 (外部中断 0) P3.3 /INT1 (外部中断 1) nts P3.4 T0 ( 定时器 0的外部输入) P3.5 T1 (定时器 1的外部输入) P3.6 /WR (外部数据存储器写选通) P3.7 /RD (外部数据存储器读选通) 在对 Flash编程和程序验证时, P3还接收一些控制信号。 ( 5) Flash 存储器的编程和程序校验: AT89C51单片机内部有一个 4K字节的 Flash PEROM。这个 Flash存储阵列通常是处于已擦除状态(既存储单元的内 容为 FFH),随时可对它进行编程。编程接口可接收高电压( 12V)或低电压( Vcc)的允许编程信号。低电压编程方式可很方便地对 AT89C51内的用户系统进行编程;而高电压编程方式则可与通用的 EPROM编程器兼容。 AT89C51 的程序存储器阵列是采用字节写入方式编程的,既每次写入一个字节。要对片内的 PEROM程序存储器写入任何一个非空字节,都必须用片擦除方式将整个存储器的内容清除。 ( 6) 对 Flash存储器编程 编程前,必须按照表 2和图 5建立好地址、数据和相应的控制信号。编程单元的地址加在 P1 端口和 P2 端口 的 P2.0 P2.3( 11 位地址为 0000H 0FFFH),数据从 P0 端口输入。引脚 P2.6、 P2.7和 P3.6、 P3.7的电平选择见表 2。 /PSEN 应保持低电平,而 RST应保持高电平。/EA/VPP是编程电源的输入端,按要求加入编程电压。 ALE/PROG端输入编程脉冲(应为负脉冲信号)。编程时,采用 4 20 MHz的振荡器。对 AT89C51编程的步骤如下: (a)在地址线上输入要编程单元的地址。 (b)在数据线上输入要写入的数据字节。 (c)激活相应的控制信号。 (d)在采用高电压编程方式时,将 /EA/VPP端的电压加到 12V。 (e)每对 Flash存储阵列写入一个字节或每写入一个程序加密位,加一个 ALE/PROG编程脉冲。 改变编程单元的地址和要写入的数据,重复步骤 a e,直到全部文件编程完毕。 每个字节写入周期是自动定时的,通常不大于 1.5ms。 表 1 2 Flash 编程方式 nts( 7)数据查询方式 AT89C51 单片机用数据查询方式来检测一个写周期是否结束。在一个写周期期间,如果想读出最后写入的哪个字,则读出数据的最高位( P0.7)是原来写入字节最高位的反码。写周期一旦完成后,有效的数据就会 出现在所有输出端上,这时可开始下一个写周期。一个写周期开始后,可在任何时间开始进行数据查询。 图 1 5 Flash 编程 图 1 6 程序的校验 nts 图 1 7 Flash 编程和校验的波形(高电平编程方式) ( 8)准备就绪 /忙信号 字节编程的过程也可通过 RDY/BSY输出信号来监视。在编程期间,当 ALE变为高电平后,P3.4( RDY/BSY)端的电平被拉低,表示忙(正在编程)状态。编程完毕后, P3.4的电平变高表示就绪状态。 ( 9)程序的校验 如果加密位 LB1和 LB2没有被编程,那么就可以对 AT89C51内部已编好的程序进行校验。这时采用图 6所示的引脚接法。程序存储器的地址仍由 P1端口和 P2端口的 P2.0 P2.3输入,数据由 P0端口输入。 P2.6、 P2.7和 P3.6、 P3.7的电平见表 1-4。 /PSEN保持低电平,而 ALE、/EA和 RST保持高电平。校验时,在 P0端口上要求外接约 10K 左右的上拉电阻。 程序加密位不能直接校验。加密位的校验可通过观察它们的功能是否被允许来进行。 ntsFlash 存储器编程和程序校验时的时序图见图 1 7(高电平编程 )和图 1 8(低电压编程)。 图 1 8 Flash 编程和校验的波形(低电压编程方式) (六)、其它 为增强系统在工作现场的抗干扰能力,在硬件设计方面采取了一系列措施,例如,信号的输入输出采用电平转换、光电隔离;正确配置接地系统,处理好共地信号;强电信号和弱电信号分开走线,传输线尽可能使用双绞线和屏蔽电缆;设置时钟监视电路,自动监视运行状态,出现故障自动处理,同时具有硬件自诊断功能,避免“死机”现象发生等等。 四 . 智能温度计的流程图 在软件设计上,采用了良好的人机交互环境,可通过选择功能热 键执行特定的程序,如任意设定检测参数值,选择显示方式和控制模式等,还可设置优先权直接进行人为干预以便达到灵活控制的目的,如果某一检测通道被键设置成关闭,那么不管此通道外部情况如何,系统均不作任何反应。 为了提高系统的抗干扰能力,除硬件上采取了相应的措施外,在软件设计中也采取了若干措施,如在数据采集时采用数字滤波;采取指令冗余设计,在程序中适当地插入空操作指令,对一些重要的指令重写等等。从而有效地提高了系统运行的可靠性,使其检测控制工作及时准确、安全稳定,达到良好的环境模拟控制性能要求。 图 9 是智能温度计的流 程图。因为智能温度计的控制和计算相对简单,由该流程方框图可见,该主程序是循环线性结构。在初始化时,清除内部 RAM,设定标志位和标志单元,设置堆栈指针,检测 LED 显示器工作是否正常等。 它主要包括了下述一些子程序: ( 1)从 A/D 转换器 MC14433 读取温度数字电压子程序:查询 A/D 转换状态,一旦本次 A/Dnts转换结束, CPU 将温度电压的 BCD 码数字值送到 RAM 中的输入缓冲区存放。 ( 2)温度电压数字值到温度数字转换子程序;将缓冲区中的温度电压数字 BCD 码转换为实际的温度十进制数字。 ( 3)温度数字到 LED 显示段 码转换子程序:把温度十进制数字转换成相应的 LED 显示段码,存放在显示段码缓冲区供 LED 显示器显示传送子程序 ( 4) LED 显示段码到 LED 显示器显示传送和动态扫描子程序 ( 5) BCD 码加,减,乘,除子程序; ( 6) BCD 码在缓冲器间传送子程序; ( 7) 其它专用子程序; 图 9 智能温度计的流程图 五、 系统主程序 系统主程序 : ORG 0000H LJMP MAIN ORG 0013H LJMP SUB ORG 0100H 开 始 初始化,设堆栈指针,清除 RAM 缓冲区,初始化 LED 显示器,显示 8888 一秒,调用MC14433 的 A/D 转换程序,对温度进行采样,送 LED 显示器,显示当前温度 调用 MC14433 的 A/D 转换子程序,将温度的电压数字值存 放到内部 A/D 输入数据缓冲区 调用 A/D 输入数字值到数字温度转换子程序,将数字温度电压值转换为其相应的温度数字,存放到数字温度的缓冲区 调用送 LED 显示器显示子程序,将数字温度缓冲区的内容变换为相应的 LED 显示段码,然后调用动态扫描子程序,将段码送LED 显示器显示 ntsMAIN: MOV SP,#40H MOV A, #78H MOV R7, #09H MOVX A,DPTR MOV R0,A CLR C SUBB A,#34H JNC LOOP1 CLR C MOV A,R0 SUBB A,#3AH JC LOOP MOV A,R0 ACALL TEMP LOOP:MOV DPTR,#EF00H MOV R1,#0F8H MOV A, #33H MOVX R1, A MOV A,R0 MOVC A,A+DPTR DEC R1 MOVX R1,A MOV A,R2 INC R1 MOVX R1,A INC R0 MOV A,R2 CLR C RRC A MOV R2,A MOV A,#00H MOV DPTR,#00F8H MOVX DPTR,A AJMP GO LOOP1: MOV P1,#8FH AJMP GO LOOP2: MOV P1,#0BFH GO : POP DPH POP DPL POP ACC POP PSW RETI END TEMP: MOV DPTR,TABLE MOV A,R0 MOV B,#04H CLR C MUL AB JNC NOO INC DPH nts NOO: MOVC A,A+DPTR MOV 80H,A INC DPTR MOVC A,DPTR MOV 81H,A AJMP LOOP ORG 0300H TAB: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 83H MAIN:MOV 20H,#0 MOV 21H,#0 MOV R0,#3CH MOV R1,#12 LCALL CLEAR SETB PT0 ML2: NOP NOP NOP MOV A,P1 CJNE A,#0FBH,ML3 AJMP MAIN ML3: MOV A,PIN1 INC A SUBB A,PIN3 CJNE A,#0,ML4 AJMP TEST0 ML4: JC TEST0 JNB E1,TEST0 AJMP COMPP TEST0:MOV PIN3,#0 MOV A,P1 CJNE A,#0FDH,TEST AJMP EXIT TEST:MOV A,P1 CJNE A,#0FFH,TEST1 EXIT:MOV R0,#79H MOV R1,#50H HEX: ACALL HEXASC MOV R2,#6 MOV R0,#5AH ACALL INI CLR FLAG3 SJMP HERE COMPP:AJMP COMP SECOO:JNB P1.5,SSECO AJMP SECO SSECO:AJMP SEC MINII:JNB P1.5,MMINI AJMP MINI MMINI:AJMP MIN HOURR:JNB P1.5,HHOUR nts AJMP HOUR HHOUR:AJMP HOU TEST1:JNB P1.0,SETT TEST2:SETB EA JNB P1.4,EXIT JNB P1.5,DEAL AJMP TEST SETT:CLR EA MOV C,P1.4 MOV F0,C JNB P1.1,SECOO JNB P1.2,MINII JNB P1.3,HOURR AJMP TEST2 DEAL:SETB E1 JNB P1.4,OVER MOV R0,#49H MOV R1,#6 ACALL CLEAR MOV B,#3 MOV A,PIN1 MUL AB ADD A,R4 MOV PIN,A MOV A,PIN1 CJNE A,#4,AAA MOV PIN1,#0 MOV PIN2,#3EH MOV PIN,#3CH AAA: JNB P1.4,OVER JNB P1.1,SECOO JNB P1.2,MINII JNB P1.3,HOURR AJMP AAA OVER:SETB E2 INC PIN1 MOV R2,#6 MOV R0,#3AH MOV R1,PIN1 ACALL INI MOV R0,#49H MOV R2,#3 MOV R1,PIN ZIP: MOV A,R0 MOV R1,A INC R0 MOV A,R0 SWAP A ORL A,R1 MOV R1,A INC PIN nts INC R0 INC R1 DJNZ R2,ZIP AJMP EXIT COMP:MOV A,PIN2 CJNE A,#4AH,J AJMP OVR J: MOV R0,PIN2 MOV R1,#7EH MOV R2,#3 JJJ:MOV A,R0 ANL A,#0F0H SWAP A XRL A,R1 JNZ ENDD DEC R1 MOV A,R0 ANL A,#0FH XRL A,R1 JNZ ENDD DEC R1 DEC R0 DJNZ R2,JJJ SETB FLAG2 INC PIN3 AJMP TEST ENDD:MOV A,PIN2 ADD A,#3 MOV PIN2,A AJMP COMP OVR: MOV PIN2,#3EH AJMP TEST HOUR:ACALL DELY MOV R0,#7EH JNB F0,SUB1 ACALL DAAD1 MOV A,R2 XRL A,#24H JNZ ML0 ACALL CLR0 AJMP ML0 MINI:ACALL DELY MOV R0,#7CH JNB F0,SUB1 ACALL DAAD1 MOV A,R2 XRL A,#60H JNZ ML0 ACALL CLR0 AJMP ML0 SECO:ACALL DELY nts MOV R0,#7AH JNB F0,SUB1 ACALL DAAD1 MOV A,R2 XRL A,#60H JNZ ML0 ACALL CLR0 ML0: MOV R0,#79H MOV R1,#50H ACALL HEXASC MOV R2,#6 MOV R0,#5AH ACALL INI AJMP SETT SUB1:SETB F0 ACALL SUB AJMP ML0 CLEAR:MOV R0,#0 INC R0 DJNZ R1,CLEAR RET HOU: ACALL DELY SETB E0 MOV R0,#4EH ACALL DAAD1 MOV A,R2 XRL A,#24H JNZ ML00 ACALL CLR0 AJMP ML00 MIN: ACALL DELY SETB E0 MOV R0,#4CH ACALL DAAD1 MOV A,R2 XRL A,#60H JNZ ML00 ACALL CLR0 AJMP ML00 SEC: ACALL DELY SETB E0 MOV R0,#4AH ACALL DAAD1 MOV A,R2 XRL A,#60H JNZ ML00 ACALL CLR0 ML00:MOV R0,#49H MOV R1,#30H ACALL HEXASC MOV R2,#6 nts MOV R0,#3AH MOV R1,PIN1 INC R1 ACALL INI AJMP AAA DELY:MOV R1,#0FFH A1: MOV R2,#0FFH LOOP:NOP NOP NOP DJNZ R2,LOOP DJNZ R1,A1 RET PITO:PUSH PSW PUSH 0E0H PUSH DPH PUSH DPL SETB PSW.3 MOV A,P1 MOV TL0,#01H MOV TH0,#1FH CJNE A,#0FDH,SSS MOV TL0,#0EDH MOV TH0,#0FBH SSS: JNB P1.5,GETNUM DDD: MOV A,2FH DEC A MOV 2FH,A JNZ RET0 MOV 2FH,#10H MOV R0,#7AH ACALL DAAD1 MOV A,R2 XRL A,#60H JNZ RET0 ACALL CLR0 MOV R0,#7CH ACALL DAAD1 MOV A,R2 XRL A,#60H JNZ RET0 ACALL CLR0 MOV R0,#7EH ACALL DAAD1 MOV A,R2 XRL A,#24H JNZ RET0 ACALL CLR0 RET0:SETB TR0 POP DPL POP DPH nts POP 0E0H POP PSW RETI GETNUM: JB FLAG1,EE MOV R1,#49H MOV R2,#6 CO: MOV R1,#0 INC R1 DJNZ R2,CO SETB FLAG1 EE: AJMP DDD DAAD1:MOV A,R0 DEC R0 SWAP A ORL A,R0 ADD A,#1 DA A MOV R2,A ANL A,#0FH MOV R0,A MOV A,R2 INC R0 ANL A,#0F0H SWAP A MOV R0,A SETB FLAG3 RET SUB: DEC R0 DEC R0 CJNE R0,#0FFH,RET2 INC R0 CJNE R0,#0,AA DEC R0 MOV R0,#0 RET AA: DEC R0 MOV R0,#9 INC R0 DEC R0 CJNE R0,#0FFH,RET2 MOV R0,#0 SETB FLAG3 RET2: RET SUB0: DE
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:中北大学基于单片机的浓度检测装置设计
链接地址:https://www.renrendoc.com/p-512680.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!