用AT89C2051单片机制作的数字电容表

用AT89C2051单片机制作的数字电容表

吴汉清

AT89C2051作为AT89C51的简化版虽然去掉了P0、P2等端口,使I/O口减少了,但是却增加了一个电压比较器,因此其功能在某些方面反而有所增强,如能用来处理模拟量、进行简单的模数转换等。本文利用这一功能设计了一个数字电容表,可测量容量小于2微法的电容器的容量,采用3位半数字显示,最大显示值为1999,读数单位统一采用毫微法(nf),量程分四档,读数分别乘以相应的倍率。

电路工作原理

本数字电容表以电容器的充电规律作为测量依据,测试原理见图1。电源电

图1

压E+经电阻R给被测电容CX充电,CX两端原电压随充电时间的增加而上升。当充电时间t等于RC时间常数τ时,CX两端电压约为电源电压的63.2%,即0.632E+。数字电容表就是以该电压作为测试基准电压,测量电容器充电达到该电压的时间,便能知道电容器的容量。例如,设电阻R的阻值为1千欧,CX两端电压上升到0.632E+所需的时间为1毫秒,那么由公式τ=RC可知CX的容量为1微法。

测量电路如图2所示。A为AT89C2051内部构造的电压比较器,AT89C2051

图2

的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对充电时间进行计数,再将计数结果显示出来即得出测量结果。

整机电路见图3。电路由单片机电路、电容充电测量电路和数码显示电路等

图3

部分组成。

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的某一端口输出低电平时其对应的字段笔划不点亮,而当其输出高电平时,则对应的上拉电阻即能点亮相应的字段笔划。

软件设计

程序使用C语言编写,详细源程序见本刊网站。

程序由主程序、定时中断服务子程序等模块组成。定时器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[11]获得。数据

at89c2051 定时器用法 c语言编程资料,用AT89C2051单片机制作的数字电容表.doc相关推荐

  1. at89c2051 定时器用法 c语言编程资料,用AT89C2051单片机制作的厨房定时器

    该制作以5分钟为一个计时单位,最多计时1小时,3V电池做电源,有蜂鸣器报警,工作时功耗为6mA左右(使用AT89C2051),可以使用3V钮扣电池,具有自动关机功能,不运行时耗电量可以忽略不计,单键操 ...

  2. c语言编程 完美数,用完美数的数字之美激发学生学习C语言编程的兴趣

    崔孝凤 摘要:对于c语言的初学者来说,激发出学习c语言的兴趣至关重要,该文通过探讨完美数的多种实现方法的案例教学,同时列举完美数特有性质,激发学生的学习兴趣,提高教学质量. 关键词:c语言;完美数;案 ...

  3. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...

    描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...

  4. 单片机c语言数字频率计课程设计,基于单片机的数字频率计设计开题报告.doc

    基于单片机的数字频率计设计开题报告.doc 皖西学院本科毕业设计(论文)开题报告学院信息工程学院专业通信工程学生姓名裴晓晴学号2010013513指导教师傅思勇职称助教毕业设计(论文)题目基于单片机的 ...

  5. C语言编程单片机相关资料,单片机的C语言编程资料.ppt

    内 容 提 要 C51程序结构 C51的数据类型及运算符 C51的函 数 C51程序设计 小结 ; 应用C51编程具有以下优点:? (1)C51管理内部寄存器和存贮器的分配,编程时,无需考虑不同存储器 ...

  6. ncae的c语言编程高阶怎么考,ncae考试科等目.doc

    全国信息化应用能力考试(NCAE) 考试名称信息技术类岗位技能描述计算机网络应用系统管理该证书获得者掌握数据通信基础.局域网和广域网技术.TCP/IP协议.Internet/Intranet应用技术等 ...

  7. 硬件工程师c语言编程,硬件工程师:单片机编程,我用C语言

    首先解释一下什么是单片机. 单片机也被称为微控制器,英文为Microcontroler,它最早被用在工业控制领域."单片机由芯片内仅有CPU的专用处理器发展而来.最早的设计理念是通过将大量外 ...

  8. 单片机c语言编程教学大纲,2014《单片机原理及应用》课程教学大纲.doc

    <单片机原理及应用>课程教学大纲 第一部分 大纲说明 一.课程的性质.目的与任务 <单片机原理及应用>是计算机科学与技术.计算机应用技术.电子信息工程专业的专业课.本课程是以M ...

  9. 485通信c语言编程linux,Rs485通信单片机C程序

    /******************************************************************************* *  标题:              ...

最新文章

  1. 2021年广东省高考英语听说成绩查询,广东2021年高考准考证今起自行打印 成绩及分数线6月24日左右公布...
  2. MyEclipse10整合Axis2插件
  3. 曾获Jolt大奖,“Python之父”龟叔推荐的书,又双叒叕更新了
  4. Java线程详解(9)-并发协作
  5. java 图片刷新页面_js修改img的src属性刷新图片时的图片缓存问题
  6. ssms2008 代码自动提示_使用 SSMS 的提示和技巧 - SQL Server Management Studio (SSMS) | Microsoft Docs...
  7. IoT -- (八)MQTT优缺点
  8. django filter查询多选_django model filter查询
  9. Golang闭包的典型应用
  10. 【java学习之路】(数据结构篇)001.数组
  11. html模板里处理数组,HTML模板 - 散列数组
  12. iOS xcode Bundle identifier is missing. NotificationServiceTest doesn't have *****
  13. #图# #SPFA# ----- codevs1021 玛丽卡
  14. vue-cli项目中使用Mint-ui中的mt-cell、mt-popup、mt-picker实现仿淘宝添加收货地址页面(地址三级联动 附全国省市区json文档)
  15. 显示器是计算机多媒体的什么设备,多媒体输入设备有哪些
  16. 按计算机应用领域来分 电子邮件属于,计算机考试题库和答案.doc
  17. matlab将矩阵分解成lu,MATLAB中矩阵LU分解
  18. 董事局主席董事长总裁首席执行官CEO总裁董事监事区别
  19. 2020年拼多多数据分析一面
  20. 情侣空间显示服务器失败,情侣空间error是什么意思

热门文章

  1. jQuery Mobile 列表视图
  2. Hybird A*算法
  3. 工作奇谈——公司OA逻辑BUG
  4. 《你要如何衡量你的人生》笔记与感想(三)不提供答案,只提供寻找答案的方法
  5. 河南漯河警方承认交警代司机交罚款有错-罚款-交警罚款
  6. 基于java jsp的健身房会员卡管理系统ssh框架
  7. 图像传感器binning_CMOS图像传感器调试问题汇总
  8. 东北大学第二场算法题解报告
  9. 金戒指用计算机怎么算,大姐拿来一个金戒指,先卖后当有蹊跷,鉴定后发现有问题,假的...
  10. jsp页面读取txt乱码