单片机电容表56.docx
- 文档编号:3203062
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:25
- 大小:662.49KB
单片机电容表56.docx
《单片机电容表56.docx》由会员分享,可在线阅读,更多相关《单片机电容表56.docx(25页珍藏版)》请在冰点文库上搜索。
单片机电容表56
漳州职业技术学院
电子技术课程设计总结报告
题目:
单片机数字电容表
专业应用电子技术
班级09电子
(2)班
姓名张玮晶
同组人陈铧森张积源
学号0901001256
指导教师廖传柱施众
电子工程系
2011年12月29日
摘要
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
单片机,是集CPU,RAM,ROM,计数和多种接口于一体的微控制器。
自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。
它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本课题选用AT89C51单片机来设计数字电容表,数字电容表程序由用C语言编写,由主程序、定时中断服务子程序等模块组成。
调试工作主要是通过对RPl的调节来调整基准电压。
51单片机通过软件编程,通过对时间的换算而得到容值的大小;本文并详细介绍了AT89C51单片机的基本原理,分析了AT89C51各个管脚的功能及它在设计电路中的作用。
【关键词】:
单片机,LED显示,数字电容表
目录
摘要2
第1章绪论4
1.1课题设计的内容及指导思想4
1.1.1课题设计的内容4
1.1.2设计的指导思想4
1.2课题设计的方法和目的、意义4
1.2.1设计的方法4
1.2.2设计的目的及意义5
1.3ATMEL公司的AT89C2051单片机5
1.3.1AT89C2051性能及特点5
1.3.2AT89C2051主要性能5
1.3.3内部结构及引脚6
第2章系统的硬件电路设计与实现8
2.1系统的硬件组成部分8
2.2主要单元电路设计10
2.2.1单片机电路10
2.2.2电容充电测量电路11
2.2.3数码显示电路11
2.2.4经典电源电路13
第3章电容测试系统设计13
3.1软件的总体设计14
3.2软件流程图15
3.3电容放电装置15
第4章安装与模拟调试16
结论17
参考文献19
附录20
致谢22
第1章绪论
1.1课题设计的内容及指导思想
1.1.1课题设计的内容
(1)设计的电容表可测量容量小于2μF的电容。
(2)可以用十进制数字显示测量结果,最少显示4位。
(3)测量误差:
σ≤±1%。
(4)自行扩展功能,使之更加完善。
1.1.2设计的指导思想
单片机的应用方面很广,这次我把单片机应用在简易数字电容表的设计,这次设计最重要的是如何选用一款合适的单片机,这主要是由于应用系统的性质、规模、投资大小等因素千差万别,单片机的种类又名目繁多,因此选用单片机很难有一个固定的规范。
要测量一个电容的容量,常用的是通过测量RC充放电回路的时间常数来测量电容量。
设计一个单片机数字电容表,测试原理见图2.1,电源电压E+经电阻R给被测电容CX充电,CX两端原电压随充电时间的增加而上升。
当充电时间t等于RC时间常数τ时,CX两端电压约为电源电压的63.2%,测量电容器充电达到该电压的时间,便能知道电容器的容量。
为了判断电容C上的充电电压是否达到电源电压的63.2%,可以用电压比较器来检测,这样我们就必须选用一个有比较器的单片机。
测量结果采用4位数码管显示,采用动态扫描的显示方式,如果不用译码电路,采用数码管直接和单片机相连的方式,字段要占用7个I/O口,数码管位选要占4个口I/O,加上电压比较器的2个I/O口,因此所选用的单片机不能少于13个I/O口。
Atmel公司的单片机AT89C2051可以满足要求。
1.2课题设计的方法和目的、意义
1.2.1设计的方法
过查阅和学习单片机方面的资料,熟悉单片机的结构及功能。
根据电容充放电的原理,设计测电容的方法。
结合单片机知识及功能选择一款合适的单片机,并设计出电路图。
根据电路图实测并显示电容,用汇编语言设计此单片机设计与PC机通信。
1.2.2设计的目的及意义
本课题选用AT89C2051单片机来设计数字电容表。
目前大部分电容测量方法集成化水平低,精度低,因而对电容特别是对微小电容的精确测量始终是一个很重要的课题.在某些场合,传感电容的变化量往往仅有几个或几十个皮法大小,这就对电容测量电路提出了更高的要求。
1.3ATMEL公司的AT89C2051单片机
1.3.1AT89C2051性能及特点
AT89C2051(以下简称51)是一种低功耗、高性能的8位CMOS微控制器芯片,片内带2KB的快闪可编程及可擦除只读存储器(FPEROM)。
它与MCS-51指令系统兼容,片内FPEROM允许对程序存储器在线重新编程,也可用常规的EPROM编程器编程。
ATMEL的5l将具有多种功能的8位CPU与FPEROM结合在同一芯片上,为很多嵌入式控制应用提供了高度灵活且价格适宜的方案。
51还增加了在零频下工作的静态逻辑方式及两种软件可选的省电模式。
其中,在闲置模式下,CPU停止工作,但RAM、定时器/计数器、串行口和中断系统仍然在工作。
在掉电模式下,只保存RAM的内容,振荡器停振,关闭芯片的所有其他功能,直到下一次硬件复位为止。
1.3.2AT89C2051主要性能
(1)与MCS-5l产品兼容。
(2)2KB的在线可重复编程快闪存储器,寿命可达1000次写/擦除周期。
(3)宽工作电压范围:
2.7V~6V。
(4)全静态工作方式:
0Hz~24MHz。
(5)两级程序存储器加密。
(6)128×8位SRAM。
(7)15条可编程I/O线。
(8)2个16位定时器/计数器。
(9)5个中断源。
(10)可编程串行通道。
(11)可直接驱动LED。
(12)有片内精密模拟比较器,具备低功耗的闲置与掉电模式。
1.3.3内部结构及引脚
AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。
此外,从AT89C2051内部结构图也可看出,其内部结构与8051内部结构基本一致(除模拟比较器外),引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与51系列单片机相应引脚一致,但P1口、P3口有其独特之处。
2051的内部结构如图1.1所示,引脚分布如图1.2所示。
引脚功能说明如下:
(1)Vcc——供电电源。
(2)GND——电路地。
(3)P1口——为双向8位I/O端口。
P1.2~P1.7引脚有内部上拉电阻,P1.0和P1.1需要外部上拉电阻。
P1.0和P1.l还作为模拟比较的正输入端和负输入端,与片内精密模拟比较器相连。
P1口输出缓冲器能吸收20mA灌入电流并可直接驱动LED显示器。
当向端口P1写入电平“1”时,可作为输入引脚。
因为P1.2~P1.7有内部上拉的作用,此时若有外电路作为输入,引脚会向外灌电流(IIL)。
P1口在快闪编程与校验功能中还承担数据代码接收任务。
(4)P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/0引脚。
P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3口缓冲器可吸收20mA电流。
当P3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部拉低的P3口引脚将用上拉电阻而流出电流(IIL)。
P3口还用于实现AT89C2051的各种功能,如下表1.1所示。
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
(5)RST:
复位输入。
RST一旦变成高电平,所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
(6)XTAL1:
作为振荡器反相放大器的输入和内部时钟发生器的输入。
(7)XTAL2:
作为振荡器反相放大器的输出。
表1.1P3口的功能
P3口引脚
功能
P3.0
RXD(串行输入端口)
P3.1
TXD(串行输出端口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
TO(定时器0外部输入)
P3.5
T1(定时器1外部输入)
从上述引脚说明可看出,AT89C2051没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C2051构成的单片机应用系统不能在AT89C2051之外扩展存储器或I/O设备,也即AT89C2051本身即构成了最小单片
机系统。
AT89C2051是一个有20个引脚的芯片,引脚如图1.2所示,与8051内部结构进行对比可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。
图1.2AT89C2051的引脚结构图
在稳定的状态条件下Io低被外部限制如下:
1、每个管脚的最大IOL15mA注85规格。
2、每个8位口的最大IOL26mA
3、IOL输出最大总和71mA。
4、如果IOL超过测试条件VOL可能会超过相应规格不能保证超过测试电流。
第2章系统的硬件电路设计与实现
2.1系统的硬件组成部分
电路由单片机电路、电容充电测量电路和数码显示电路等部分组成。
AT89C2051作为AT89C51的简化版虽然去掉了P0、P2等口,使I/O口减少了,但是却增加了一个电压比较器,因此其功能在某些方面反而有所增强,如能用来处理模拟量、进行简单的模数转换等。
本文利用这一功能设计了一个数字电容表,可测量容量小于2微法的电容器的容量,采用4位LED数字显示,最大显示值为1999,读数单位统一采用毫微法(nf),量程分四档,读数分別乘以相应的倍率。
电路工作原理:
本数字电容表以电容器的充电规律作为测量依据,测试原理见图2.1。
图2.1测试原理图
A为AT89C2051內部构造的电压比较器,AT89C2051的P1.0和P1.1口除了作I/O口外,还有一个功能是作为电压比较器的输入端,P1.0为同相输入端,P1.1为反相输入端,电压比较器的比较结果存入P3.6口对应的寄存器,P3.6口在AT89C2051外部无引脚。
电压比较器的基准电压设定为0.632E+,在CX两端电压从0升到0.632E+的过程中,P3.6口输出为0,当电池电压CX两端电压一旦超过0.632E+时,P3.6口输出变为1。
以P3.6口的输出电平为依据,用AT89C2051內部的计时器T0对充电时间进行计数,再将计数结果显示出来即得出测量结果。
AT89C2051内部的电压比较器和电阻R2-R7等组成测量电路,其中R2-R5为量程电阻,由波段开关S1选择使用,电压比较器的基准电压由5V电源电压经R6、RP1、R7分压后得到,调节RP1可调整基准电压。
当P1.2口在程序的控制下输出高电平时,电容CX即开始充电。
量程电阻R2-R5每档以10倍递减,故每档显示读数以10倍递增。
由于单片机内部P1.2口的上拉电阻经实测约为200K,其输出电平不能作为充电电压用,故用R5兼作其上拉电阻,由于其它三个充电电阻和R5是串联关系,因此R2、R3、R4应由标准值减去1K,分别为999K、99K、9K。
由于999K和1M相对误差较小,所以R2还是取1M。
数码管DS1-DS4、电阻R8-R14等组成数码显示电路。
本机采用动态扫描显示的方式,用软件对字形码译码。
P3.0-P3.5、P3.7口作数码显示七段笔划字形码的输出,P1.3-P1.6口作四个数码管的动态扫描位驱动码输出。
这里采用了共阴数码管,由于AT89C2051的P1.3-P1.6口有25mA的下拉电流能力,所以不用三极管就能驱动数码管。
R8-R14为P3.0-P3.5、P3.7口的上拉电阻,用以驱动数码管的各字段,当P3的某一端口输出低电平时其对应的字段笔划不点亮,而当其输出高电平时,则对应的上拉电阻即能点亮相应的字段笔划。
图2.2 整机电路图
2.2主要单元电路设计
2.2.1单片机电路
AT89C2051是一带有2K字节闪速可编程可擦除只读存储体(EEPROM)的低压,高性能8位CMOS微型计算机。
如图1.1所示。
它采用ATMEL的高密非易失存储技术制造并和工业标准MCS—51指令集和引脚结构兼容。
通过在单块芯片上组合通用的CPL1和闪速存储器,ATMELAT89C2051是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。
此外,从AT89C2051内部结构图也可看出,其内部结构与8051内部结构基本一致(除模拟比较器外),引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与51系列单片机相应引脚一致,但P1口、P3口有其独特之处。
CPU工作方式:
1、在空闲方式下,CPU保持睡眠状态而所有片内的外设保持激活状态。
这种方式由软件产生。
片内RAM和所有专用功能寄存器的内容在此方式期间保持不变。
空闲方式可由任何允许的中断请求或硬件复位终止。
P1.0和P1.1在不使用外部上拉电阻的情形下应设置为“0”,或者在使用外部上拉电阻的情形下应设置为“1”。
应注意用硬件复位终止空闲方式时,AT89C2051通常从程序停止一直到内部复位算法获得控制之前的两个机器周期处恢复程序的执行。
在这种情况下片内硬件禁止对内部RAM的访问但允许对端口引脚的访问。
要消除硬件复位终止空载方式时对端口引脚意外写入的可能性,则进入空闲方式指令下一条指令不应是些端口引脚或写外部存储器指令。
2、掉电方式
在掉电方式下,振荡器停止工作,进入掉电方式的指令是最后一条被执行的指令。
片内RAM和专用功能寄存器的内容在终止掉电方式前保持不变。
退出掉电方式的唯一方法是硬件复位。
复位重新定义全部专用功能寄存器但不改变片内RAM。
在Vcc恢复到正常工作电平前,复位应不起作用,且必须保持一段时间以使振荡器再启动并稳定。
P1.0和P1.1在不使用外部上拉电阻的情形下应设置为“0”,或者在使用上拉电阻的情形下应设置为“1”。
2.2.2电容充电测量电路
电源电压E+经电阻R给被测电容CX充电,CX两端原电压随充电时间的增加而上升。
当充电时间t等于RC时间常数τ时,CX两端电压约为电源电压的63.2%,即0.632E+。
数字电容表就是以该电压作为测量基准电压,测量电容器充电达到该电压的时间,便能知道电容器的容量。
例如,设电阻R的阻值为1千欧,CX两端电压上升到0.632E+所需的时间为1毫秒,那么由公式τ=RC可知CX的容量为1微法。
图2.3测量电路图
2.2.3数码显示电路
1、概述
设计应用系统使用的显示器主要有发光管显示器,简称LED(LightEmittingDiode);液晶显示器,简称LCD(LiquidCrystalDisplay);近年来也有配置CRT显示器的。
前者价廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口较复杂,成本也较高。
综合性价比考虑,目前在一般的场合液晶显示器占据了大部分的市场,主要原因是液晶显示器具有很多如下显著特点:
(1)低压微功耗工作电压只有3~5V,工作电流只有几个微安/平方厘米。
(2)平板型结构安装时占用面积小,减小了设备的体积。
(3)被动显示其本身不发光,因此适合人的视觉习惯,不会使人眼睛疲劳。
(4)显示信息量大LCD显示器,其像素可以做得非常小,相同面积可容纳更多的信息。
(5)没有电磁辐射在显示期间对环境无污染,有利于人体健康。
(6)寿命长LCD器件本身无老化问题,寿命极长。
由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
如图2.4
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
图2.4LED数码管结构原理图
众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。
本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。
所谓软件译码,即由单片机软件完成从数字到显示码的转换。
从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节。
各段码位与显示段的对应关系如表2.1。
2、码管的选取
LED(发光二极管),它是一种由某些特殊的半导体材料制作成的PN结。
其发光强度与其正向压降VF和电流IF的乘积有关,其乘积越大,则发光强度越大。
工作电流一般在5MA~20MA。
从系统整体考虑,选用的是LDS-5101BH型七段LED数码管。
2.2.4经典电源电路
电源电路由三端稳压集成器件7805及全桥整流、电容滤波电路构成,C3为输入稳定电容,当稳压器输入阻抗降低时,起消振作用,C2为输出稳定电容,可进一步降低输出的纹波电压,输出噪声及负载电流变化的影响。
图2.67805经典电路图
7805是三端集成稳压电路器件,其内有过流和过热保护功能,即使过负载时也不会遭到损坏,一方面限制输出电流,使其不会过大,过热时切断输出,使内部电流不致过热。
7805三端分别为输入Vin、输出端Vo和公共端COM,使用时公共端COM通常接地。
内部等效电路由调整管、控制电路、误差放大器、保护电路等组成。
第3章电容测试系统设计
3.1软件的总体设计
程序由主程序、定时中断服务子程序等模块组成。
定时器T0作被测电容器充电时间的计数用。
定时器T1用于定时中断服务,定时时间为5ms,即5ms产生一次中断。
数组BitTab[4]用来存储位驱动码,DispTab[11]用来存储字形码,数组DispBuf[4]的4个元素分别用来存储从定时器T0读出的数据的个、十百千位的4位数字。
程序显示每一位数码的时间为5ms,因此显示完整的4位数的周期为20ms(4次中断)。
每过240ms(48次中断)刷新一下数据,即每过240ms测一下电容量,测量时间小于2ms,由于这一时间小于中断的时间5ms,因此在测量过程中不会出现中断现象。
测量电容时P1.2口输出高电平,电容开始充电,与此同时定时器T0开始计数,当电容器充电达到基准电压时,P3.6口输出高电平,据此程序作出判断停止T0的计数,并读出数据送数码管显示。
如果被测电容器的容量超出测试档的量程,则计数值大于或等于2000,显示结果为千位数显示1,其它三位数不显示,这和数字万用表超过量程的显示模式相同。
这时可选择大一档的量程进行测试。
经仿真和电路测试,发现单片机判断P3.6口是否输出高电平要化3个机器周期,这会使显示值增加3,因此在程序中对此误差进行了修正,对计数值减去了3。
字形码的输出用了P3口的P3.0-P3.5、P3.7,P3.6为空,P3口输出的数据通过数组DispTab获得。
表3.1数据位和字形的对应关系
数据位
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
字形码
笔段位
A
空
B
C
D
E
F
G
数
字
0
1
1
1
1
1
1
1
0
0xfe
1
0
1
1
1
0
0
0
0
0x70
2
1
1
1
0
1
1
0
1
0xed
3
1
1
1
1
1
0
0
1
0xf9
4
0
1
1
1
0
0
1
1
0x73
5
1
1
0
1
1
0
1
1
0xdb
6
1
1
0
1
1
1
1
1
0xdf
7
1
1
1
1
0
0
0
0
0xf0
8
1
1
1
1
1
1
1
1
0xff
9
1
1
1
1
1
0
1
1
0xfb
不显示
0
1
0
0
0
0
0
0
0x40
3.2软件流程图
否
是
图3.1程序流程图
主要由初始化程序,LED动态显示程序,频率计算及电容值转换程序等组成,其流程图如上图程序流程图所示
3.3电容放电装置
图3.2电容放电装置图
电容C通过电阻R放电,其放电也是按指数规律进行的,放电常数T=RC,
一般认为t=(3~5)T,电容放电完毕。
第4章安装与模拟调试
IC1用AT89C2051单片机集成电路,X1用12MHz的石英晶体,S1选用1×4的波段开关,DS1-DS4选用共阴LED数码管。
安装前先将C语言源程序用KEIL51编译成目标文件即HEX文件,再用编程器将HEX文件写入AT89C2051芯片,程序请见附录。
安装后的调试工作主要是通过对RP1的调节来调整基准电压,最好是通过对一个精度比较高的电容器的测量进行调节,而不是直接测量基准电压。
具体方法是选一个经确认容量比较准确的电容器,如一只15nf的电容器,将S1置于20nf档,调节RP1使测量显示值为1500。
选择的电容器容量至少要大于相应量程的一半,最好是接近满量程,这样才能使调节比较准确。
该档调试好后其它各档也就相应的调好了,如果发现某档精度有问题可改变其相应的充电电阻阻值进行调整。
在使用过程中,当S1置于2nf档时,在没有放入测试电容器时有10pf左右的显示值为正常现象,因为这是电压比较器的输入电容和电路的分布电容,只要在测量读数时减去这一数值即可。
因此在调试时也不要选择该档,以免分布电容影响调试的准确性。
系统软件采用汇编语言按模块化方式进行设计,然后通过KeilC51软件开发平台将程序转变成十六进制程序语言,接着使用Proteous进行仿真。
我们在进行硬件制作前我们都对我们的制作进行了软件仿真,本次我们用了proteus7.0进行了软件的仿真仿真图如下图,根据仿真图的显示结果我的电路设计已经达到了课题的基本要求。
通电前
通电后
结论
毕业设计是一个综合性的实践课程,是将理论联系到实际中的实验过程,是总结大学四年所学知识的最好体现。
从拿到设计任务后,开始查阅资料,对课题进行方案设计并进行理论论证,到设计电路,软件上的程序编写到仿真、调试,硬件上元器件确定、选型及电路搭建,软硬件联调,直到论文文本的撰写。
最终完成所设计项目数字电压、电流表的设计,这一过程锻炼了我们对单片机应用系统的设计及动手能力。
近半年的毕业设计实践,使我深深的体会到理论结合实际的重要性,在设计过程中要特别细心,在软件中可能是一个标点或一个字母的问题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电容 56