51单片机怎么查找相同的单元格30-3F单元中的相同数个数

51单片机原理及应用期末考试试题汇总5_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
51单片机原理及应用期末考试试题汇总5
JAVA程序设计师|
总评分4.1|
用知识赚钱
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩3页未读,
定制HR最喜欢的简历
你可能喜欢当前位置: >>
实验八查找相同数个数实验
实验八 查找相同数个数实验一、实验目的 熟悉汇编语言编程。 二、实验内容 在 7000H~700FH 中查出有几个字节是零,统计“00 ”的个数 并送显示缓冲区。 三、实验程序框图开始字节数送 R0,查找字节送 R1相同否?YR1+1NDPTR+1N字节数到吗?YR1 送显示缓冲区调显示子程序 2、参考程序:FIND: MOV SP,#60H MOV R0,#10H MOV R1,#00H MOV DPTR,#7000H FIND1: MOVX A,@DPTR CJNE A,#00H,FIND2 INC R1 FIND2: INC DPTR DJNZ R0,FIND1 MOV A,R1 MOV R0,#79H ANL A,#0FH MOV @R0,A INC R0 MOV A,R1 SWAP A ANL A,#0FH MOV @R0,A INC R0 MOV A,#10H MOV R4,#04H FIND3: MOV @R0,A INC R0 DJNZ R4,FIND3 FIND4: LCALL DISP SJMP FIND4 DISP: SETB 0D4H MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISP1: MOV DPTR,#0FF21H MOV A,R2 MOVX @DPTR,A MOV DPTR,#DATA1 MOV A,@R1 MOVC A,@A+DPTR MOV DPTR,#0FF22H MOVX @DPTR,A DISP2: DJNZ R3,DISP2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISP1 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4H RET DATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH END四、调试方法 用单步运行, 分别看 R0, DPTR 单元中内容是否与程序一致。 R1, 五.思考 要查找 30-3F 单元中的相同数个数的程序怎样编号。
实验八 查找、排序的应用 一、实验目的 1、本实验可以使学生更进一步巩固各种查找...[count].a3)/3;//求 平均数 printf(&是否继续(y/n):&); fflush(stdin)...实验八 实验八 查找相同数个数 1.实验目的 熟悉汇编语言编程。 2.实验内容 在7000H~700FH 中查出有几个字节是零,统计“00”的个数送R1中。 3.实验程序...实验八查找相同数个数实验 3页 免费 实验八 查找排序 11页 2财富值 实验8查找...实验三、类的设计 4页 5财富值如要投诉违规内容,请到百度文库投诉中心;如要提...折半查找数据结构实验报... 8页 免费数​据​结​构​-​实​验...{ KeyT InfoT } NodeT //定义表中最多记录个数 //...实验8查找与排序算法的实现和应用_数学_自然科学_专业资料。陕西科技大学实验报告...顺序查找: 在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置...实验八 查找算法的应用 实验目的:掌握查找算法的比较,熟练掌握各种查找方法的函数...(&\n 输入错误或表中数据个数少于%d 个,请重输要分的块数! &,bi); ...实验二顺序表 实验三顺序变查找 实验四顺序表排序 实验五链表实验 1/2 相关文档...(&请输入矩阵的行数,列数及非零元素的个数:&); scanf(&%d%d%d&,&(a-&...实验8_数据结构_计算机软件及应用_IT/计算机_专业资料。实验 8:查找、排序姓名...(3)简单选择排序 思路很简单,就是每次选出最小/大的数,和前面的第 i 个数...实验八 9页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见...“&&”,不能找出不同的项,所找到的项比原来的要多很多, 因为两个表之间是...实​验​八​ ​数​组 暂无评价|0人阅读|0次下载|举报文档实验八 ...在数组 a 的元素中查找与 x 相同的元素,如果找到输出 x 在数组 a 中的下标...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。51单片机C语言编程时能不能比较两个数的大小,能不能进行加减法运算_百度知道
51单片机C语言编程时能不能比较两个数的大小,能不能进行加减法运算
我有更好的答案
完全没问题
采纳率:21%
C语言嘛,只要是标准C能干的,单片机都能干,没问题!
这还用说吗,一看你就是刚想入门51单片机.......要不怎么连这个都不知道
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51单片机中.怎么用c语言比较2个单元中的数的大小_百度知道
51单片机中.怎么用c语言比较2个单元中的数的大小
试用c语言编写程序,比较20H和30H单元中两个无符号数的大小,5.并将较小的数存放在40H单元.若相等. 任存一个。有详细的说明
我有更好的答案
我来给你写这个程序;void main(){
unsigned char *D1,*D2,*D3; //先定义两个指针变量。
D1=0x20;//分别指向相应的地址。
if((*D1)&=(*D2))
*D3 = *D2;
//将较小的数存到D3所指向的空间(0x40)
*D3 = *D1;
采纳率:48%
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。基于51单片机的 电容数字测量仪
我的图书馆
基于51单片机的 电容数字测量仪
&&&&& 基于51单片机的 电容数字测量仪
电容测量的常规方法
§1.2 单片机最小系统
§1.3  课题介绍
§1.4 本课题所做的主要工作
二、 电容测量仪的硬件组成
§2.1 AT89C51单片机工作原理
§2.2 地址锁存器(74HC573)工作原理
§2.3 LED数码管的工作原理
§2.4 555时基振荡器的典型应用
三、 电容测量仪硬件电路的实现
§3.1 电路模块图
§3.2 电路原理图
§3.3 电路工作原理简介
四、 电容测量仪的软件设计
§4.1 程序流程图
§4.2 系统功能模块的设置
§4.3 稳压直流电源的实现
§4.4 AT89C51单片机最小化系统的测试
§4.5 单片机驱动573的实现
§4.6 显示器件正正常显示的实现
§4.7 555时基定时器在本系统中的应用
§4.8 单片机测量电容的原理分析
§4.9 量程档位选择的实现
§4.10 系统功能正常运行的实现
§4.11 系统的扩展
§4.12 工业方面
§4.13 民用方面
五、 结束语
§5.1 致 谢
§5.2 参考书目
一、 前 言
§1.1电容测量的常规方法
电容式传感器是将被测量的变化转换成电容量变化的一种装置。电容式传感器具有结构简单、分辨力高、工作可靠、动态响应快、可非接触测量,并能在高温、辐射和强烈振动等恶劣条件下工作等优点已在工农业生产的各个领域得到广泛应用。例如在气力输送系统中,可以用电容传感器来获得浓度信号和流动噪声信号,从而测量物料的质量流量;在电力系统中,采用电容传感器在线监测电缆沟的温度,确保使用的安全;由英国曼彻斯特科学与技术大学(UMIST)率先开发的电容层析成像(ECT)技术是解决火电厂煤粉输送风-粉在线监测等气固两相流成分和流量检测的有效途径,其中微小电容测量是关键技术之一。电容传感器的电容变化量往往很小。结果电容传感器电缆杂散电容的影响非常明显。特别在电容层析成像系统中被测电容变化量可达0.01pF,属于微弱电容测量,系统中总的杂散电容(一般大于100 pF)远远大于系统的电容变化值,且杂散电容会随温度、结构、位置、内外电场分布及器件的选取等诸多因素的影响而变化,同时被测电容变化范围大。因此微小电容测量电路必须满足动态范围大、测量灵敏度高、低噪声、抗杂散性等要求。
1 充/放电电容测量电路充/放电电容测量电路基本原理如图1所示。 由CMOS开关S1,将未知电容Cx充电至Ve,再由第二个CMOS开关S2放电至电荷检测器。在一个信号充/放电周期内从Cx传输到检波器的电荷量Q=Ve·Cx,在时钟脉冲控制下,充/放电过程以频率f=1/T重复进行,因而平均电流Im=Ve·Cx·f,该电流被转换成电压并被平滑,最后给出一个直流输出电压 Vo=Rf·Im=Rf·Ve·Cx·f(Rf为检波器的反馈电阻) 。充/放电电容测量电路典型的例子为差动式直流充放电C/V转换电路,如图2所示。 Cs1和Cs2分别为源极板和检测极板与地间的等效杂散电容(通过分析可知,它们不影响电容Cx的测量)。S1-S4是CMOS开关,S1和S3同步,S2和S3同步,它们的通断受频率f的时钟信号控制,每个工作周期由充/放电组成。分析可得电路输出为Vo=2KRfVeCxf (1)式中,K为差分放大器D3的放大倍数。该电路的主要优点是能有效地抑制杂散电容,而且电路结构简单,成本很低,经过软件补偿后电路稳定性较高,获取数据速度快。缺点是电路采用的是直流放大,存在较大的漂移;另外,充/放电是由CMOS开关控制,所以存在电荷注入问题。目前该电路已成功应用于6、8、12电极的ECT系统中。其典型分辩率可达3*10-15F。
图22 AC电桥电容测量电路AC电桥电容测量电路如图3所示,其原理是将被测电容在一个桥臂,可调的参考阻抗放在相邻的一个桥臂,二桥臂分别接到频率相同/幅值相同的信号源上,调节参考阻抗使桥路平衡,则被测桥臂中的阻抗与参与阻抗共轭相等。这种电路的主要优点是:精度高,适合作精密电容测量,可以做到高信噪比。 图3电路的缺点是无自动平衡措施,为此可采用图4所示的自动平衡AC电桥电容测量电路。 该系统输出Vd为一直流信号,ΔC为传感器的电容变化量。 式中,2/π为相敏因子。结合平衡条件,在理论上输出Vd可写成 获得该电桥的自动平衡过程的步骤为:保证电桥未加载时ΔC=0,测量电桥非平衡值并利用公式(3)计算出电桥输出为零时所需的反馈信号Ve的值。重新测量桥路的输出,若输出为零,则桥路平衡;若输出不为零,重复上述测量步骤,直至桥路输出为零,即桥路平衡为止。该电桥电容测量电路原理上没有考虑消除杂散电容影响的问题,为此采取屏蔽电缆等复杂措施,而且其效果也不一定理想。通过实验测得其线性误差能达到±1*10-13F。
3 交流锁相放大电容测量电路交流型的C/V转换电路基本原理如图5所示。 正弦信号Ui(t)对被测电容进行激励,激励电流流经由反馈电阻Rf、反馈电容Cf,和运放组成的检测器D转换成交流电压 Uo(t): 若jωRfCf&&1,则(4)式为 式(5)表明,输出电压值正比于被测电容值。为了能直接反映被测电容的变化量,目前常用的是带负反馈回路的C/V转换电路。这种电路的特点是抗杂散性、分辨率可高达0.4*10-15F。由于采用交流放大器,所以低漂移、高信噪比,但电路较复杂,成本高,频率受限。
4 基于V/T变换的电容测量电路测量电路基本原理如图6所示。 电流源Io为4DH型精密恒流管,它与电容C通过电子开关K串联构成闭合回路,电容C的两端连接到电压比较器P的输入端,测量过程如下:当K1闭合时,基准电压给电容充电至Uc=Us,然后K1断开,K2闭合,电容在电流源的作用下放电,单片机的内部计数器同时开始工作。当电流源对电容放电至Uc=0时,比较器翻转,计数器结束计数,计数值与电容放电时间成正比,计数脉冲与放电时间关系如图7所示。电容电压Uc与放电电流Io的关系为: 令Uc=0,则有: 式中,N为计数器的读数;Tc为计数脉冲的周期;它是一个常数;在Us和Io为定值时,C与N成正比。基于V/T变换的电容测量电路,对被测电容只进行一次充放电即可完成对被测电容的测量。采用了电子技术中准确度较高的时间测量原理,克服了传统测量微弱信号电路中放大器的稳定性不好、零点漂移大等缺点,且电路结构简单、测量精度和分辨率高。
5 基于混沌理论的恒流式混沌测量电路恒流式混沌电路如图8所示。其工作原理如下:当K1、K2断开时,K3闭合。电容C充电使Uc=Ux,然后K3断开,待周期为t的脉冲序列δ中的一个脉冲到达G(逻辑电路)时,G的输人信号使K2闭合,K1保持断开(此时相当于图9中的X1点),电容开始以-0.5Io的恒定电流放电。当Uc=0时,相当于电路中的A点,比较器翻转,输出电压Up由高电平变为底电平,Up的变化促使G变化,使G控制K1闭合、K2断开,此时电容C由恒定电流Io充电,使Uc按A-X2方向上升。当又一个脉冲到来时(相当于图8中X2点),G又开始变化,使K1断开、K2闭合,又一个放电充电过程开始。这样周而复始的放电充电使Uc的变化如图9所示,只要适当调整,Io和t就可以使电路处于混沌状态。 这种方法突出的优点是测量的分辨率高,测量的绝对误差不随被测电容值的变化而改变,对作为传感器的元件只要求稳定即可。当被测电容很大时,相对误差还会减小。此方法除了可以直接测量电容外,也可以作为电容式传感器测量其它电量和非电量。
6 基于电荷放大原理的电容测量电路基于电荷放大原理的电容测量电路如图10所示,该电路是通过测量极板上的激励信号所感应出的电荷量而得到所测电容值的。图中Cx为被测电容,它的左侧极板为激励电极,右侧极板为测量电极。Cas和Cbs表示每个电极所有杂散电容的等效电容,Cas由激励信号源驱动,它的存在对流过被测电容的电流无影响。电容Cbs在测量过程中始终处于虚地状态,两端无电压差,因而它也对电容测量无影响,因此整个电路对杂散电容的存在不敏感。 基于电荷放大原理的电容测量电路,一方面该电路对被测电容只进行一次充放电,就可完成对电容的测量,由于测量结果是直流稳定信号,不存在脉动成分,故电路中无需滤波器。因此大大提高了基于该电路的数据采集系统的数据采集速度。同时该电路具有很强的抗杂散电容的性能。另一方面该电路可以对各开关的控制时序进行合理的设计,用以较好地解决了电子开关的电荷注入效应对测量精度的影响问题,使电路达到了较高的分辨率。现在此电路成功应用于12电极ECT系统中,在不实时成像的情况下,数据采集速度可达600幅/s,对杂散电容具有较强的抑制能力,系统灵敏度4.8 V/pF,可达最高分辨率为5*10-15F。
§1.2 单片机最小系统
1 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图(图1):
2 详细说明如下:
(1) 复位电路:
由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C 取10u,R取10K。原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。
(2) 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作),在本电路中,取12M。
(3) 单片机:一片AT89S51/52或其他51系列兼容单片机。对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。
1) AT89C51单片机的共40个引脚功总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个,剩下还有34个。29脚PSEN,30脚ALE为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑,这样,就只剩下32个引脚,它们是:P0端口P0.0 - P0.7共8个;P1端口P1.0 - P1.7共8个;P2端口P2.0 - P2.7共8个;P3端口P3.0 - P3.7共8个;
§1.3 课题介绍
1 所选课题的题目及课题来源
本人所选课题的题目为《 基于51单片机的 电容数字测量仪 》。
在一般的电容测量系统中,几乎都是根据普通的电路原理,用一些常规的方法来测量的,近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入。
本课题采用脉冲计数法,即利用555定时品来产生RC多谐振荡频率和单片机CPU的高速强大的计算及可编程功能,用软件查表的方法实现电容量高精度智能化的测量。它克服了以上的一些据点,充分利用单片机智能化的优势,操作方便,并且可以提供友好的人机界面。
2. 课题研究的目的、意义
本课题研究的目的:实现电容测量的低成本,高效率,高可靠性。
本课题研究的意义,提供一种更新颖更合理的电容测量方法。
§1.4 本课题所做的主要工作
本课题的主要工作:利用单片机最小系统外加尽可能少的元器件
1. 脉冲计数的法的设计思想是把电容C通过RC三点式振荡转换成频率信号f,这样就把模拟理转为数字量,然后送入单片机进行计数后再对数据进行处理和软件查表等一系列运算求出电容C,并送显示器显示。
2. 本设计主要由测理电路,和控制电路两部分组成,测量电路主要用于产生RC振荡频率f,而控制电路则用于对所产生的振荡频率进行计数,处理,控制并送显示等。
二、 电容测量仪的硬件组成
§2.1 AT89C51单片机工作原理
1. 单片机的雏形:
MCS-48单片机是美国INTE公司于1976年推出,它是现代单片机的雏形,包含了数字处理的全部功能,外接一定的附加外围芯片即构成完整的微型计算机,其主要的功能特征为:  8位CPU(中央处理器)、内置程序存储器(ROM)、随机存取数据存储器(RAM)和输入输出端口(I/O)全部集成在单一的芯片上而构成了完整的微型计算机。
1) 8位CPU。
2) 双列直插40PinDIP封装。
3) 所有指令均为1-2个机器周期。
4) 96条指令,大部分为单字节指令。
5) 2个工作寄存器。
6) 2个可编程定时/计数器。
7) 8层堆栈。
8) 单一+5V电源供电。使用6MHz外接石英晶体管振荡器,此时机器周期为2.5us。
2. 单片机的发展,MCS-48系列单片机:
是最早期的产品,8048本身具有64x8位RAM,1kx8位的ROM,而后期的8049中的RAM大到256字节,ROM却增加到了4kBytes,这个成绩在当时是相当可喜的。还有一类的产品本身是不带程序存储器的,象,它的程序存储器只能外接,当时常用的是EPROM(紫外线擦除电写只读程序存储器)一类的ROM。
MCS-48系列单片机还有几个产品,象单片机,8021该系列中的低价型单片机,而8022则是包含了单片机所有功能,并集成了A/D转换器的产品。
现在MCS-48系列单片机已完全退出了历史舞台,由MCS-51系列单片机取而代之。
§2.2 地址锁存器(74HC573)工作原理
图12(1)74HC/LS573 及74HC/LS574叫八d锁存器 ,结构如下图(图12)所示:
LE=1, Qn=/Dn, /Dn表示Dn的反相;
LE=0, Qn数据锁存为当前的/Dn;
OE=1, 输出为高阻态;
OE=0, On=/Qn;
(2)74HC/LS574 引脚图如(图13)所示
(2) 真值表如下图(图14)所示
§2.3 LED数码管的工作原理
(1)LED介绍
LED是一种较为常用的发光元件。目前以LED为发光元件而研制的显示屏应用可作为实时工业控制系统中的远距离实时信息显示器,对高要求的工艺流程进行实时显示。  目前,LED显示器的主要形式有两种,一种是能够显示各种字符、汉字和图像信息的阵列式LED。另一种则是只能显示0~9这10个阿拉伯数字及少数几个英文字母的数码式LED,即八段数码管。尽管阵列式LED从功能上来说完全取代数码式LED,但由于前者的成本造价要比后者高得多,实现方法要比后者复杂,故在很多场合还经常用到数码式LED。
(2)本电路采用共阴的七段LED。
§2.4 555时基振荡器的典型应用
图15555电路在应用和工作方式上一般可归纳为3类。每类工作方式又有很多个不同的电路。  在实际应用中,除了单一品种的电路外,还可组合出很多不同电路,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。这样一来,电路变的更加复杂。我们按555电路的结构特点进行分类和归纳,把555电路分为3类,下面将分别介绍这3类电路。
  单稳类电路单稳工作方式,它可分为3种。见图示。   第1种(图15)是人工启动单稳,又因为定时电阻定时电容位置不同而分为2个不同的单元,并分别以1.1.1和1.1.2为代号。他们的输入端的形式,也就是电路的结构特点是:“RT-6.2-CT”和“CT-6.2-RT”。
图16双稳类电路  这里我们将对555双稳电路工作方式进行总结、归纳。555双稳电路可分成2种。  第一种(见图1)是触发电路,有双端输入(2.1.1)和单端输入(2.1.2)2个单元。单端比较器(2.1.2)可以是6端固定,2段输入;也可是2端固定,6端输入。
第2种(见图16)是施密特触发电路,有最简单形式的(2.2.1)和输入端电阻调整偏置或在控制端(5)加控制电压VCT以改变阀值电压的(2.2.2)共2个单元电路。
双稳电路的输入端的输入电压端一般没有定时电阻和定时电容。这是双稳工作方式的结构特点。2.2.2单元电路中的C1只起耦合作用,R1和R2起直流偏置作用。
  无稳类电路  第三类是无稳工作方式。无稳电路就是多谐振荡电路,是555电路中应用最广的一类。电路的变化形式也最多。为简单起见,也把它分为三种。   第一种(见图16)是直接反馈型,振荡电阻是连在输出端VO的。
第二种(见图17)是间接反馈型,振荡电阻是连在电源VCC上的。其中第1个单元电路(3.2.1)是应用最广的。第2个单元电路(3.2.2)是方波振荡电路。第3、4个单元电路都是占空比可调的脉冲振荡电路,功能相同而电路结构略有不同,因此分别以3.2.3a 和3.2.3b的代号。
三、 电容测量仪硬件电路的实现
§3.1 电路模块框图
本电路采用基于MCS-51单片机,用LED进行显示的硬件设计方法,电路硬件模块图如下:
§3.2 电路原理图
硬件电路原理图
§3.3 电路工作原理简介
振荡电路的振荡频率f是由相位平衡条件决定的,RC振荡电路有桥式振荡电呼,双T网络式和移相式振荡电路等类型 。
建立振荡,就是要使电路自激,从面产生持续的振荡,由直流电变为交流电,对于RC振荡电路来说,直流电源即是能源,自激的因素是微弱的信号经过放大,通过正反馈的选频网络,使输出幅度愈来愈大,最后受电路中非线性元件的限制,使振荡幅度自动地稳定下来,为此采用555定时器来产生RC振荡频率。
  电源接通后,定时器进入稳态。此时定时电容CT的电压为:VCT=VCC=5V。对555这个等效触发器来讲,两个输入都是高电平,即VS=0。
图20  按一下按钮开关S之后,定时电容CT立即放到电压为零。于是此时555电路等效触发的输入成为:R=0、S=0,它的输出就成高电平:V0=1。Q端输出高电平,按钮开关按一下后立即放开,于是电源电压就通过RT向电容CT充电,暂稳态开始。当电容CT上的电压升到2/3VCC既3.3伏时,定时时间已到,555等效电路触发器的输入为:R=1、S=1,于是输出又翻转成低电平:V0=0。Q端输出为0,暂稳态结束,有恢复到稳态。
S4,S5,S6为量程档位选择开关,  流电时间计算公式为:T=1.1RT*CT。本电路提供参数的延时时间约为1秒~2分钟,可由电位器RP调整和设置。
四、 电容测量仪的软件设计
§4.1程序流程图
主程序流程图
调用显示子程序=
2 测量子程序流程图
3 显示子程序流程图
§4.2 系统功能模块的设置
§4.3 稳压直流电源的实现
注:实际设计过程中,为节约成本,此部分电路功能由改装的手机充电器代替。
(1) 稳压直流电源原理图
图25稳压直流电源原理框图
§4.4 AT89C51单片机最小化系统的测试
单片机的最小化系统是指单片机能正常工作所必须的外围元件,主要可以分成时钟电路和复位电路,我采用的是AT89C51芯片,它内部自带4K的FLASH程序存储器,单片机的时钟电路有一个12M的晶振和两个30P的小电容组成,它们决定了单片机的工作时间精度为1微秒。复位电路由10UF的电容和10K的电阻组成。
判断单片机芯片及时钟系统是否正常工作的办法,用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。
§4.5 单片机驱动573的实现
n 74HC573有如下特性
1) 74HC573的输入是和标准CMOS 输出兼容的;
2) 加上拉电阻,他们能和LS/ALSTTL 输出兼容。
3) 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
4) 输出能直接接到CMOS,NMOS 和TTL 接口上
5) 操作电压范围:2.0V~6.0V
6) 低输入电流:1.0uA
7) CMOS 器件的高噪声抵抗特性
8) 74HC573功能表
本电路中利用74HC573的锁存特性,作数码管的驱动电路,利用IO端口P1.0作为使能端。
§4.6 显示器件正常显示的实现
按原理图正确搭接电路,如图所示
(1) 先让两位数码管显示数字“5 5”
附程序清单如下:
;CPU:AT89C51
;********************
;资源配置申明
;P0口段控(com1)
;P2口段控(com2)
;P1.0~18b20信号灯
;P1.1~报警器
;74HC573驱动数码管
;本程序测量温度范围: 18℃ ~80℃
;本程序测量精度1℃
LJMP START
TESTOVER_FLAG BIT P1.0 ;电容测量结束PIN
LE573 BIT P1.1
TESTSTAR_FLAG BIT P1.2 ;电容测量开始标志位
ONLYONE_FLAG BIT 24H.0 ;单次只允许测试一次标志位
COM4 BIT P2.0
COM3 BIT P2.1
COM2 BIT P2.2
COM1 BIT P2.3
DISP_NUM EQU 30H ;显示变量
DISP_NUM1 EQU 31H
DELAY_DATA1 DATA 40H ;延时子参数1
DELAY_DATA2 DATA 41H ;延时子参数1
DELAY_DATA3 DATA 42H ;延时子参数1
NUM_OV1 DATA 37H ;定时器T0溢出次数放在37H中
NUM_OV2 DATA 39H ;定时器T0溢出次数放在39H中
TESTNUM DATA 38H ;测试数据放在38H单元中
a_bit DATA 20H ;数码管个位数存放内存位置
b_bit DATA 21H ;数码管十位数存放内存位置
c_bit data 22数码管百位数存放内存位置
D_BIT DATA 23H
MOV B_BIT,#5 ;十位在B
MOV A_BIT,#5 ;个位在A
MOV C_BIT,#5 ;百位在C
MOV DISP_NUM1,#4
MOV DISP_NUM,#250
MOV DPTR,#NUMTAB ;指定查表启始地址
MOV A,A_BIT ;取个位数
CLR LE573 ;LE使能
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
LCALL DELAY_1开个位显示
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
CLR COM3 ;开十位显示
LCALL DELAY_1ms
MOV A,C_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
CLR COM2 ;开十位显示
LCALL DELAY_1ms
DJNZ DISP_NUM,CIRCLE
MOV DISP_NUM,#50
DJNZ DISP_NUM1,CIRCLE
;*******************
;延时750Us子程序
;*******************
DELAY_1ms:
MOV DELAY_DATA1,#3
DELAY_1ms_LOOP:
MOV DELAY_DATA2,#79H
DJNZ DELAY_DATA2,$
DJNZ DELAY_DATA1,DELAY_1ms_LOOP
MOV DELAY_DATA1,#5
DJNZ DELAY_DATA1,$
;*****************
;延时3S子程序
;*****************
MOV DELAY_DATA3,#0FFH
DELAY_3S_LOOP:
CALL DELAY_1ms
DJNZ DELAY_DATA3,DELAY_3S_LOOP
;**************
;7段共阴数码管0~9数字的共阴显示代码
;**************
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
(3)“5 5”显示正常,说明单片机工作正常,74HC 573工作正常,显示器件工作正常。
§4.7 555时基定时器在本系统中的应用
图19硬件电路
§4.8 单片机测量电容的原理分析
(1)S4对应10uF的档位,S5对应1uF的档位,S6对应0.1uF的档位。
(2)先插好电容,再选择对应的量程开关,最后按下测试键S3,则显示当前测量值。
(3)空闲状态显示四个0;
完整的 全套程序清单:
;CPU:AT89C51
;********************
;资源配置申明
;P0口段控(com1)
;P2口段控(com2)
;P1.0~18b20信号灯
;P1.1~报警器
;74HC573驱动数码管
;本程序测量温度范围: 18℃ ~80℃
;本程序测量精度1℃
LJMP START
TESTOVER_FLAG BIT P1.0 ;电容测量结束PIN
LE573 BIT P1.1
TESTSTAR_FLAG BIT P1.2 ;电容测量开始标志位
ONLYONE_FLAG BIT 24H.0 ;单次只允许测试一次标志位
COM4 BIT P2.0
COM3 BIT P2.1
COM2 BIT P2.2
COM1 BIT P2.3
DISP_NUM EQU 30H ;显示变量
DISP_NUM1 EQU 31H
DELAY_DATA1 DATA 40H ;延时子参数1
DELAY_DATA2 DATA 41H ;延时子参数1
DELAY_DATA3 DATA 42H ;延时子参数1
NUM_OV1 DATA 37H ;定时器T0溢出次数放在37H中
NUM_OV2 DATA 39H ;定时器T0溢出次数放在39H中
TESTNUM DATA 38H ;测试数据放在38H单元中
a_bit DATA 20H ;数码管个位数存放内存位置
b_bit DATA 21H ;数码管十位数存放内存位置
c_bit data 22数码管百位数存放内存位置
D_BIT DATA 23H
;主程序入口
MOV SP,#60H
LCALL CLR_STORE
; MOV CLR_VOICE,#2
LCALL DISPLAY
JB ONLYONE_FLAG,WAITING_KEYOFF
AJMP WAITING_TESTFIRST
WAITING_KEYOFF:
JNB TESTSTAR_FLAG,CIRCLE ;TEST STAR?
WAITING_TESTSECOND:
MOV A_BIT,#0
MOV B_BIT,#0
MOV C_BIT,#0
MOV D_BIT,#0
LCALL DISPLAY
JB TESTSTAR_FLAG,WAITING_TESTSECOND
AJMP TESTSTAR
WAITING_TESTFIRST:
LCALL DISPLAY
JB TESTSTAR_FLAG,WAITING_TESTFIRST ;TEST STAR?
MOV NUM_OV1,#0 ;测试开始内存清零
MOV NUM_OV2,#0 ;测试开始
CLR ONLYONE_FLAG ;清允许测试标志位
WAIT_TESTOVER:
JB TESTOVER_FLAG,HERE ;TEST OVER?
;测试完成,计算测试值
LCALL HANDLE ;调用数据处理子函数
LCALL DISPLAY ;调用数据显示子函数
SETB TESTOVER_FLAG
JB TESTSTAR_FLAG,CLRONLYONE_FLAG
SETB ONLYONE_FLAG ;如果按键仍为开的状态,禁止测试
AJMP CIRCLE
CLRONLYONE_FLAG:
CLR ONLYONE_FLAG ;测试允许
AJMP CIRCLE ;返回主循环
JNB TF0,WAIT_TESTOVER ;timer0 ov ?
INC NUM_OV1 ;circle low bit add 1
MOV A,NUM_OV1
CJNE A,#0FFH,WAIT_TESTOVER
MOV NUM_OV1,#0
INC NUM_OV2 ;circle high bit add 1
MOV A,NUM_OV2
CJNE A,#0FFH,WAIT_TESTOVER ;关定时器两 个条件,要么超时溢出,要么测试完成
MOV NUM_OV1,#0 ;超时退出清零
MOV NUM_OV2,#0
JB TESTSTAR_FLAG,CLRONLYONE_FLAG2
SETB ONLYONE_FLAG ;如果按键仍为开的状态,禁止测试
AJMP CIRCLE
CLRONLYONE_FLAG2:
CLR ONLYONE_FLAG
AJMP CIRCLE
;***************************
;变量初始化
;***************************
CLR_STORE:
MOV P0,#0FFH ;I/O口初始化
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV 42H,A ;内存清零
MOV TMOD,#02H
MOV TL0,#0
MOV TH0,#0
;***************************
;数据处理子程序
;***************************
MOV A,NUM_OV2
JZ DISPTHREEBIT
MOV A,NUM_OV2
MOV B_BIT,A ;十位在B
AJMP DISP_A_BIT
MOV B_BIT,#11 ;HIDE
DISP_A_BIT:
MOV A_BIT,B ;个位在A
MOV C_BIT,#11 ;HIDE
MOV D_BIT,#11 ;HIDE
AJMP HANDLE_OFF
DISPTHREEBIT: ;当测量值较小时,显示小数点
MOV A,NUM_OV1
MOV B,#100
MOV D_BIT,A ;显示0
MOV B_BIT,A ;十位在B
MOV A_BIT,B ;十位在B
MOV C_BIT,#10 ;显示小数点
HANDLE_OFF:
;*******************************
;显示子程序
;******************************
MOV DISP_NUM1,#4
MOV DISP_NUM,#250
DISP_circle:
MOV DPTR,#NUMTAB ;指定查表启始地址
MOV A,A_BIT ;取个位数
CLR LE573 ;LE使能
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P0,A ;送出个位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
LCALL DELAY_1开个位显示
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
CLR COM3 ;开十位显示
LCALL DELAY_1ms
MOV A,C_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
CLR COM2 ;开十位显示
LCALL DELAY_1ms
MOV A,D_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P0,A ;送出十位的7段代码
SETB LE573 ;等于1时,使能.输出端数据等于输入端数据
CLR COM1 ;开十位显示
LCALL DELAY_1ms
DJNZ DISP_NUM,DISP_circle
, ; MOV DISP_NUM,#50
DJNZ DISP_NUM1,DISP_circle
;*******************
;延时750Us子程序
;*******************
DELAY_1ms:
MOV DELAY_DATA1,#3
DELAY_1ms_LOOP:
MOV DELAY_DATA2,#79H
DJNZ DELAY_DATA2,$
DJNZ DELAY_DATA1,DELAY_1ms_LOOP
MOV DELAY_DATA1,#5
DJNZ DELAY_DATA1,$
;*****************
;延时3S子程序
;*****************
MOV DELAY_DATA3,#0FFH
DELAY_3S_LOOP:
CALL DELAY_1ms
DJNZ DELAY_DATA3,DELAY_3S_LOOP
;**************
;7段共阴数码管0~9数字的共阴显示代码
;**************
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH,80H,00H;0A,为80H为小数点,0B为不亮
§4.9 量程档位选择的实现
为了合理的选取测量时间,现把量程设为四档:1-10uF为第一档,
0.1uF-1uF为第二档,0.1uF以下为第三档。它们分别对应相应的R参数。
§4.10系统功能正常运行的实现
(1) 直流稳压电源工作正常
(2) 显示器件正常显示的实现
(3) 555测量电路工作正常
§4.12系统的扩展
(1) 适当添加外设,比如添加可控硅或者继电器,本课件即可做成各种时间智能控制器,比如楼道灯。
(2) 适当添加外设,本课件可以做成电容电感测量仪。
(3) 由于本课件采用了先进的感温设备,占用单片机的资源非常少,本人以为,其功能的扩展亦是非常的方便。
§4.13工业方面
本课件若进一步改进,加上适当的外部电路,分辨力更高、工作更可靠、动态响应更快、并能在高温、辐射和强烈振动等恶劣条件下工作。
例如在气力输送系统中,可以用电容传感器来获得浓度信号和流动噪声信号,从而测量物料的质量流量;在电力系统中,采用电容传感器在线监测电缆沟的温度,确保使用的安全。
由英国曼彻斯特科学与技术大学(UMIST)率先开发的电容层析成像(ECT)技术是解决火电厂煤粉输送风-粉在线监测等气固两相流成分和流量检测的有效途径,其中微小电容测量是关键技术之一。
§4.14民用方面(略)
五、 结束语
§5.1 致 谢
§5.2 参考书目
(1)感谢我的我的指导老师,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。
(2)感谢同学们对我的帮助和指点。没有他们的帮助和提供资料对于我一个对网络知识一窍不通的人来说要想在短短的几个月的时间里学习到电子知识并完成毕业论文是几乎不可能的事情。
(1)《MCS-51系列单片机实用接口技术》
作者: 李华
出版社: 北京航空航天大学出版社
出版日期:
(2)《流行单片机实用子程序及应用实例》
作者: 杨振江 杜铁军 李群
出版社: 西安电子科技大学出版社
出版日期:
(3)《51单片机教程》
EDA学习网(http://eda.sdedu.net)
馆藏&132786
TA的最新馆藏[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 excel查找相同单元格 的文章

 

随机推荐