文档详情

单片机测电容实验.doc

发布:2025-03-18约1.46万字共16页下载文档
文本预览下载声明

一、实验目的:

1,熟悉MCU51单片机的基本工作原理和组成结构;

2,掌握汇编语言,能用汇编语言编写简单程序;

3,以实验板为基础用MCU51单片机系统实现测量电容功能

二、实验要求:

1.频率值能循环不断地被测量读取;

2.测量结果显示在外部LCD屏上;

3.利用本设计测量102、103、104三个电容的容值。

三、实验原理

原理电路:555多谐振荡电路

由555定时器组成的多谐振荡器如左图所示,其中R1、R2和电容C为外接元件。其工作波如右图所示。

电容充电时,定时器输出,电容放电时,0,电容不断地进行充、放电,输出端便获得矩形波。多谐振荡器无外部信号输入,却能输出矩形波,

其实质是将直流形式的电能变为矩形波形式的电能。

振荡周期。为电容充电时间,为电容放电时间。

充电时间

放电时间

矩形波的振荡周期

因此改变、和电容C的值,便可改变矩形波的周期和频率。

由此得到本实验的R1=R2=20K

所以我们发现,通过测量该振荡器的频率,通过逆变换就可以得到待测的电容C。

四、实验分析:

整个程序可以采用自底向上的,模块化的设计思想进行设计,即一个一个功能模块进行设计调试,完成后再组合完整,其中可细分为以下几个模块:

eq\o\ac(○,1)外部中断计数:定时/计数器T0和T1的工作方式设置,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC=11.0592MHz,对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,采用定时50ms,共定时20次,即可完成1秒的定时功能,每定时1秒(0.1秒,10秒)中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理,送到LCD显示;

eq\o\ac(○,2)数据处理:具体分析见实验原理。

eq\o\ac(○,3)LCD显示输出:控制器接收来着来自数据总线DB0~DB7和E,R/W,RS三个输入控制端与MPU接口,并从CGROM中找到欲显示的字符的字符码,送入DDRAM,在LCD显示屏上与DDRAM存储单元对应的规定位置显示出该字符;

五、实验过程:

1,主程序流程图如下:

其中计时子程序采用中断方式。

2.频率电容换算

由于采用的555多谐振荡电路计算公式不是准确的,只是一个估计出来的公式,为了调整,我们采用了查表法。

六、设计感想:

在查找了大量资料后终于完成了此次单片机频率计的实验任务,实现了实验要求中的各项功能。通过这次实验,我加深了对51单片机的工作原理和内部组成结构及LCD液晶显示器件的理解,熟悉用汇编语言编写简单的程序,掌握了单片机程序调试的基本方法,提高了自己的编程能力。

此次实验相对前一次数字时钟的实验较为简单,但对了新内容LCD的使用,通过这次单片机的实验我收获了很多,在前次实验的基础上进一步加深了单片机知识的学习

后附:实验程序源代码

ORG0000H

AJMPSTART

ORG000BH

JMPINTERUPT_T0 ;计数中断

ORG001BH

JMPINTERUPT_T1 ;定时1秒中断

CAP1 EQU 41H

CAP2 EQU 42H

CAP3 EQU 43H

CAP4 EQU 44H

CAP5 EQU 45H

CAPH EQU 46H

CAPL EQU 47H

ORG0100H

START:;初始化部分

MOVSP,#90H

MOVTMOD,#15H;Timer0和Timer1工作于模式

01且Timer0处于计数状态

SETBEA

SETBET0

SETBET1

MOVIP,#08H;中断优先级控制

MOV38H,#00H;计数器高八位辅助进位

MOVTH0,#00H

MOVTL0,#00H

MOVTH1,#4CH

MOVTL1,#08H

MOV3EH,#00H

MOVR3,#0

MOVR4,#0

MOVR5,#0

MOVR6,#0

MOVR7,#0

MOV3DH,#0

MOVCAP1,#0

显示全部
相似文档