基于51单片机的数字电流表设计
基于51单片机的数字万用表设计(1)

基于51单片机的数字万用表设计摘要本文介绍一种以AT89S52单片机为核心的智能型数字式多用表,该系统采用AD0808为采样元件,对待测交直流电压信号进行实时采样,数据处理,输出显示,并可以直流电流和电阻,且具有键盘选择测量对象、量程和自动量程转换功能。
关键词:A/D转换器,单片机,模拟开关,自动量程转换第一章前言功能:实现交直流测量,量程自动转换,过电压自动报警。
仿真及编译软件:Proteus,Keil ,Wave主要元件:AT89C52,CD4511,AD0808,7段数码管(8个),蜂鸣器预定性能指标:直流电压:范围-40—+50V,精度20mv,实时无间断测量,4%。
交流信号:测量范围-5—+5V,频率范围:300Hz到100Khz误差5%。
初步方案及进展:小组成员及任务分配:组长:陈文豹硬件电路设计参数确定和调试组员:庞明软件程序设计邓玉龙资料查询并辅助电路设计数字万用表设计分析本设计可以分为直流电压测量电路;交流/直流转换电路;电流/电压转换电路;电阻/电压转换电路;功能控制和数据显示电路这五个的主要电路模块。
在设计直流电压测量电路时,利用反相比例运算电路,加上自己设计的四选一模拟开关,组成了一个直流电压测量电路。
但该电路在实践中存在问题,不能实现预期的结果。
做了适当的修改,改为由电阻、模拟开关和运放组成放大倍数可调的比例电路。
由于无论是指针式万用表还是普通的真有效值或平均值响应的数字万用表,其交流电压档的频率特性都较差,一般只能测量几十赫兹到几千赫兹的低频电压。
我发现对于指针式万用表造成频率特性较差的原因主要是万用表的分压电阻采用精密电阻器,其本身的分布电容较大,在对高频电压信号进行测量时,由于分布电容的容抗大为减少使得测量值明显低于实际电压值,而对于数字万用表除上述原因以外,另一主要原因是受平均值响应,转换器本身频率特性的限制。
但此缺陷可通过采用宽频带运算放大器加以改善。
因此,消除分压电阻器分布电容的影响就可以提高万用表工作频率的上限,大大改善其频率特性。
基于51单片机的电子表设计

1 绪论电子表是20世纪50年代才开始出现的新型计时器。
最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。
这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。
它的走时部分与机械手表完全相同,被称为第一代电子手表。
1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。
这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。
它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。
1969年,日本精工舍公司推出了世界上最早的石英电子表。
石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。
石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。
当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。
这样的性质在很多结晶体上也可见到,称为“压电效果”。
石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。
1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
基于51单片机的数字电容表的设计

基于51单片机的数字电容表的设计数字电容表,具有准确度和灵敏度高,测量速度快等特点,利用多谐振荡电路的频率计算公式,间接求得所测电容的电容值。
一.硬件系统1.1 单片机硬件设计选用具有低功耗特性的单片机可以大大降低系统功耗。
可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。
1.1.1 选用尽量简单的CPU内核在选择CPU 内核时切忌一味追求性能。
8 位机够用,就没有必要选用16 位机,选择的原则应该是“够用就好”。
现在单片机的运行速度越来越快,但性能的提升往往带来功耗的增加。
一个复杂的CPU集成度高、功能强,但片内晶体管多,总漏电流大,即使进入停止状态,漏电流也变得不可忽视;而简单的CPU 内核不仅功耗低,成本也低。
1.1.2 选择低电压供电的系统降低单片机的供电电压可以有效地降低其功耗。
当前,单片机从与TTL 兼容的5 V 供电降低到3.3 V、3 V2 V 乃至1.8 V 供电。
供电电压降下来,要归功于半导体工艺的发展。
从原来的3 μm 工艺到现在的0.25、0.18、0.13 μm 工艺, CMOS 电路的门限电平阈值不断降低。
低电压供电可以大大降低系统的工作电流,但是由于晶体管的尺寸不断减小,管子的漏电流有增大的趋势,这也是对降低功耗不利的一个方面。
目前,单片机系统的电源电压仍以5 V为主,而过去5 年中,3 V 供电的单片机系统数量增加了1 倍,2V 供电的系统也在不断增加。
再过五年,低电压供电的单片机数量可能会超过5 V 电压供电的单片机。
如此看来,供电电压降低将是未来单片机发展的一个重要趋势。
1.1.3 选择带有低功耗模式的系统低功耗模式指的是系统的等待和停止模式。
处于这类模式下的单片机功耗将大大小于运行模式下的功耗。
过去传统的单片机,在运行模式下有wait和stop两条指令,可以使单片机进入等待或停止状态,以达到省电的目的。
等待模式下,CPU 停止工作,但系统时钟并不停止,单片机的外围I/O 模块也不停止工作;系统功耗一般降低有限,相当于工作模式的50%~70%。
基于单片机的高精度交流电流表的设计与实现

湖南涉外经济学院本科毕业论文(设计)题目基于单片机的高精度交流电流表设计与实现作者学院信息科学与工程学院专业学号指导教师二〇一五年五月七日湖南涉外经济学院本科毕业论文(设计)诚信声明本人声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立开展工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或创作过的作品成果。
对本文工作做出重要贡献的个人和集体均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
本科毕业论文(设计)作者签名:二〇一五年五月七日摘要数字交流电流表随着电子技术的发展,在电子行业所需的测量高精度的交流电流的需要,它逐渐成为一种必不可少的测量仪器。
在电量的测量中,电压,电流和频率是最基本的三个被测量,其中电流量的测量最为常见。
本设计主要是将交流电流转换为直流电流,但是在单片机检测电流的过程中,因为电流是模拟量,并且对于电流量不能直接进行读取,所以需要将电流转化为电压量,在通过A/D 转换进行读取和处理。
单片机对模拟信号的读取是通过A/D转换来实现的,本设计使用了ADC0809芯片,关于此芯片的功能和特点将在本文中做详细介绍。
从电流量到电压量的转换是电流检测电路来实现的。
本设计核心芯片采用的是AT89S51单片机,显示部分采用的是四位数码管显示。
关键词:AT89S51 ;ADC0809;电流测量ABSTRACTAs the development of electronic technique and the high-accuracy requirement o f alternating-current, Digital AC current meter has becomes an essential measuring de vice. In the progress of power measurement, voltage, current and frequency are the ba sic factors which will be measured. The most common factor is current. The device w as designed to convert alternating-current into direct current. But in the progress of de tecting current in SCM, magnitude of current can’t be read directly, as current is analo g quantity. So it need to convert current to voltage, then it can be read and manage by A/D conversion. Analog signal reading of SCM was applied by A/D conversion. The design use ADC0809 chip and you can find the features and function of the chip in th e text. The conversation from current into voltage was applied by detection of current circuit. The core chip adopts AT89S51 SCM and the partial of display adopts four dig ital tube.Keywords:AT89S51;ADC0809;Electric current detection诚信声明 (I)摘要 (II)ABSTRACT (III)前言 (1)第一章系统的整体设计 (2)1.1 系统的硬件组成 (2)1.2 测量电路的工作原理 (2)第二章电流测量系统硬件设计 (4)2.1 AT89S51单片机的结构 (4)2.2 ADC0809的结构 (5)2.3 整流滤波电路的设计 (6)2.4 电流转换电压 (7)2.5 数据采集电路设计 (9)2.6 显示电路的设计 (11)2.7 时钟频率电路设计 (12)2.8 复位电路设计 (12)第三章系统的软件设计 (13)第四章电流测量系统性能分析及调试 (14)第五章系统原理仿真图 (15)5.1 原理图 (16)5.2 仿真图 (16)结论 (17)参考文献 (19)致谢 (20)附录 (21)数字电流表是工业生产过程中经常遇到的过程控制,特别是在科研、教学、工厂等领域中,具有举足重轻的作用,因而研究电流检测控制系统是非常有价值的。
基于51单片机的电子表设计

1 绪论电子表是20世纪50年代才开始出现的新型计时器。
最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。
这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。
它的走时部分与机械手表完全相同,被称为第一代电子手表。
1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。
这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。
它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。
1969年,日本精工舍公司推出了世界上最早的石英电子表。
石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。
石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。
当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。
这样的性质在很多结晶体上也可见到,称为“压电效果”。
石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。
1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
基于51单片机的电流测量系统设计[1]
![基于51单片机的电流测量系统设计[1]](https://img.taocdn.com/s3/m/87bd5f1aa76e58fafab0034c.png)
目录1 前言 (1)2 电流测量系统总体设计 (1)3 电流测量系统硬件设计 (2)3.1 转换电路设计 (2)3.2 数据采集电路设计 (2)3.3 数据显示电路设计 (4)4 电流测量系统子程序设计 (6)4.1 AD转换和数据采集程序设计 (6)4.2 16进制转换为BCD码程序设计 (8)4.3 字形查表程序设计 (10)I2通信程序设计 (11)4.4 C5 电流测量系统性能分析及调试 (13)6 设计心得 (14)参考文献 (15)附录一电流测量系统总体电路设计 (15)附录二电流测量系统设计总程序 (17)1 前言单片机微型计算机简称单片机,又称为微控制器(MCU),它以体积小、功能全、性价比高等诸多优点而独具特色,在各种嵌入式应用领域独占鳌头。
51系列单片机是目前国内应用最广泛的一种8位单片机之一。
作为一位工科信息类专业的学生,在学过51单片机原理之后很有必要用实践来巩固理论知识的学习。
通过理解51单片机原理、焊接51单片机硬件、弄懂与之相匹配的外围连接芯片和电路、熟悉使用Keil uVision3编程器和STC_ISP_V3.1下载器、编程调试实现任务要求、撰写设计报告等一系列工作的完成锻炼实际动手能力。
STC89C51开发板使用通用异步串口、USB供电线;支持串口下载和单步调试;带有ZLG7290B,IIC总线通信的键盘扫描和数码管显示芯片,自带8M晶振,最多可扫描64个键盘和8个数码管;8位LED灯接P1口;TLC549,8位串行A/D;TLC5615,10位串行D/A。
可做中断、定时、串口通信、流水灯、数码显示等单片机基本实验,也可以进行数据采集、制作波形发生器、制作电子钟等多项扩展实验。
本次单片机课程设计我所做的项目是基于单片机的电流采集系统,主要用到A/D转换和数码管显示。
2 电流测量系统总体设计需要采集的数据是直流电流,由于TLC549是逐次比较型8位串行CMOS A/D转换器,只能输入电压信号,故在数据采集之前先要把直流电流信号转化为直流电压信号。
基于51单片机的电子表设计

目录目录 (1)第1章概述 (1) (1)第2章设计思路及框图 (1) (1) (2)第3章系统的硬件设计 (2) (2) (3) (3) (4) (4)第4章电路设计原理图 (4) (4)第5章程序设计 (5) (5) (7)第6章系统的验证及调试 (43) (43) (43) (44)第7章总结 (45)第8章参考文献 (45)第1章概述单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广阔领域。
单片机有两种基本结构形式:一种是在通用微型电脑中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本课题讨论的方波发生器的核心是目前应用极为广泛的 51系列单片机。
利用AT89C51单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为0,每中断一次中断计数初值加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在6位LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
第2章设计思路及框图设计思路针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,第一,熟悉AT89S51单片机,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。
基于51单片机的智能电表设计说明书

摘要电表表示着人们日常用电的多少,现在每家每户安装的基本上是带有转盘的那种电表,它只能显示出用电总量。
若想查看上个月的用电量,只能靠电费单计算得来。
现在已经是信息时代了,这种做法很显然跟不上社会潮流。
近几年来,社会提倡低碳、绿色经济和可持续发展,在这种思想的推动下,智能电表将会成为社会的潮流。
智能电表是在传统电表的基础上增加了自动化和智能化的功能,从而进一步提高电网的效率、提高供电的可靠性、电能的质量并且完善用电户的服务,从而更好适应电力市场。
现在智能电网是全球电力部门研究和讨论的热点话题,智能电表是智能电网中的最重要的环节,它支撑着电网的信息化、自动化以及互动化等方面的实现。
微处理器是智能电表的最主要的核心器件。
它可以储存海量的检测数据,同时对测量出的结果进行分析、判断和处理。
本次设计是运用单片机STC89C52为微处理器、CS5460A 芯片进行电能测量和计算、X5045芯片作为外部存储、数码管进行显示进行设计的。
关键词智能电表;自动化;C51单片机;CS5460AAbstractElectricity meter means the number of people everyday electricity, and now every household is basically equipped with the kind of meter, which can only show the total amount of electricity. To see the power consumption last month, only by electricity single calculated. It is now the information age, and this approach is clearly not social trends.In recent years, the social promotion of low-carbon, green economy and sustainable development, in the promotion of this idea, smart meter will become the trend of the society. Smart meter is automatic and intelligent function is added on the basis of traditional meter, energy efficiency so as to further improve the power grid, improve power supply reliability, power quality and perfect service of the users, in order to better adapt to the power market. Now the smart grid is a hot topic in the global power sector research and discussion, the smart meter is the most important part of smart grid, which support the realization of grid informationization, automation and interaction of.The microprocessor is the most important core device of the smart meter.. It can store vast amounts of detection data and analyze, judge and process the results of the measurement.. This design is the use of single-chip microcomputer STC89C52 and CS5460A chip for power measurement and calculation, X5045 chip as the external storage, digital tube display design.Key words Smart meter Automation 51 MCU S5460A目录摘要 (I)Abstract (II)第1章绪论 (1)1.1智能电表的概念 (1)1.2智能电表的发展背景 (1)1.3智能电表的结构 (2)1.4智能电表的主要特点 (2)第2章主要芯片的介绍 (4)2.1微控制器STC89C51单片机 (4)2.1.1 简介 (4)2.1.2 主要特性 (4)2.1.3 引脚功能 (4)2.2电能计量芯片CS5460A (6)2.2.1 简介 (6)2.2.2 主要特征 (7)2.2.3 引脚功能 (7)2.3外部寄存器X5045 (8)2.3.1 简介 (8)2.3.2 主要特性 (8)2.3.3 引脚功能 (9)2.4时钟芯片DS1302 (9)2.4.1 简介 (9)2.4.2 主要特性 (9)2.4.3 引脚功能 (10)2.574HC138译码器 (10)2.5.1 简介 (10)2.5.2 主要特性 (10)2.5.3 真值表 (10)2.6LED数码管 (11)第3章总体设计方案 (11)3.1设计功能要求 (12)3.2智能电表的总体方案设计 (12)第4章硬件部分的组成 (13)4.1电压电流采样模块的设计 (14)4.1.1 电压调理电路 (14)4.1.2 电流调理电路 (15)4.2CS5460A的外部电路 (15)4.3数码管连接电路 (16)4.4组合键盘连接电路 (16)4.5EEPROM连接电路 (18)4.6时钟芯片DS1302连接电路 (18)第5章软件部分的设计 (19)5.1主程序流程 (19)5.2CS5460数据交换方法 (20)5.3时钟芯片的读写流程 (21)5.4外部寄存芯片的读写流程 (21)5.5按键扫描流程 (22)5.6数码管显示功能的实现 (23)结论 (24)参考文献 (25)致谢 (26)附录 (27)第1章绪论1.1 智能电表的概念智能电表它是科技时代的新产物,它能够进行测量、数据处理,因此测量单元、数据处理单元是它的重要组成部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南科技大学单片机课程设计题目基于单片机的数字电流表设计姓名学院专业学号指导教师成绩二〇一一年五月二十六日单片机课程设计任务书一、设计题目:基于单片机的数字电流表设计二、设计要求:1、数字电流表在平常工作环境中能良好工作2、能测0——1000mA电流,至少能达1%的精度3、要求掌握I/V信号转换,A/D转换器的使用和数据采集系统的设计4、电流表能数字显示,且由单片机处理采集数据并驱动LED显示摘要本设计是通过采样电阻及信号放大电路将待测的电流信号I转换成0—1V电压信号, 由A/D转换器采集电压信号,并将电压转换的数字信号传输给单片机,由单片机完成对采样信号的处理、分析,最后输出信号驱动LED显示器,显示被测的电压值。
目录一、功能要求 (1)二、原理及方案论证 (2)三、系统硬件电路的设计 (3)四、系统程序的设计 (4)五、调试及设计结果 (5)参考文献 (6)一、功能要求1、数字电流表在平常工作环境中能良好工作2、能测0——1000mA电流,至少能达1%的精度3、要求掌握I/V信号转换,A/D转换器的使用和数据采集系统的设计4、电流表能数字显示,且由单片机处理采集数据并驱动LED显示二、原理及方案论证1、数字电流表工作原理1.1采样电阻网络原理如下图所示,输入被测电流通过量程转换开关S1——S4,流经采样电阻R1——R4,由欧姆定律可知:U=I*R,因而转换输出电压为0V——0.1V的电压,输出电压可再经后续放大电路放大处理。
1.2高共模抑制比放大电路如下图,由双运放组成的同相输入高共模抑制比放大电路,其闭环输出可表示为: 为使共模输入为0,可令R1/R2=R4/R3,此时电路的差动闭环增益为Kd=1+R1/R2, U0=Kd(U1-U2); 下图即Kd=11,U0=11(U1-U2);1.3通用A/D 转换器ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
ADC0832 具有以下特点:◆ 8 位分辨率;◆ 双通道 A/D 转换;)21)(3*14*22121(21)221(*)3*14*21(0U U R R R R R R U U R R R R U -++++-=◆输入输出电平与TTL/CMOS 相兼容;◆5V 电源供电时输入电压在0~5V 之间;◆工作频率为250KHZ,转换时间为32μS;◆一般功耗仅为15mW;◆8P、14P—DIP(双列直插)、PICC 多种封装;◆商用级芯片温宽为0°C to +70°C,工业级芯片温宽为- 40°C to +85°C;芯片接口说明CS_ 片选使能,低电平芯片使能。
CH0 模拟输入通道0,或作为IN+/-使用。
CH1 模拟输入通道1,或作为IN+/-使用。
GND 芯片参考0 电位(地)。
DI 数据信号输入,选择通道控制。
DO 数据信号输出,转换数据输出。
CLK 芯片时钟输入。
Vcc/REF 电源输入及参考电压输入(复用)。
1.4 AT89C52单片机AT89C52 是美国ATMEL 公司生产的低电压,高性能CMOS 8 位单片机,片内含8k bytes 的可反复擦写的只读程序存储器(PEROM)和256 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产,与标准MCS-51 指令系统及8052 产品引脚兼容,片内置通用8 位央处理器(CPU)和Flash 存储单元,功能强大AT89C52 单片机适合于许多较为复杂控制应用场合。
主要性能参数·与MCS-51 产品指令和引脚完全兼容·8k 字节可擦写Flash 闪速存储器·1000 次擦写周期·全静态操作:0Hz-24MHz·三级加密程序存储器·256 ×8 字节内部RAM·32 个可编程I /O 口线·3 个16 位定时/计数器·8 个断源·可编程串行UART 通道·低功耗空闲和掉电模式功能特性概述AT89C52 提供以下标准功能:8k 字节Flash 闪速存储器,256 字节内部RAM,32 个I /O 口线,3 个16位定时/计数器,一个6 向量两级断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52 可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
2、方案论证本设计采用精密采样电阻(9欧、0.9欧、0.09欧、0.01欧),电阻精度可达0.1%可忽略;八位A/D精度为5/256(V);因而除去放大电路增益误差及线性误差,电流表精度约为(5/256)/11,约为1.7mA;对于1000mA的总量程精度可达0.1%,因而方案可达设计要求。
三、系统硬件电路的设计系统仿真接线简图本设计中用到AT89C52单片机、八位ADC AD0832、发光二极管、六位八段显示数码管LED,通用运放 UA741 、PNP管及必要的电阻、电容元件等。
系统原理方框图电路仿真简图如上图。
系统方框图四、系统程序设计程序流程图如下:系统程序流程图C语言程序如下:#include<reg52.h>//包含相应的头文件#include<intrins.h>#include<math.h>#define uchar unsigned char#define uint unsigned intuchar axs[6],azs[6],ac[10],dc[6];void ITOAZ(int num,uchar *p);void ITOAX(int num,uchar *p);float U,U1;sbit CS=P3^4;//定义数模转换器硬件对应引脚sbit CLK=P3^5;sbit DO=P3^6;sbit DI=P3^7;/******************读写AD0832函数****************/ /************************************************/ unsigned char ReadADC(unsigned char channel){unsigned char j;unsigned char Temp=0;_nop_();_nop_();CS=0;//拉低CS端_nop_();_nop_();CLK=1;//拉高CLK端_nop_();_nop_();CLK=0;//拉低CLK端,形成下降沿1 _nop_();_nop_();CLK=1;//拉高CLK端DI=(channel>>1)&0x1;_nop_();_nop_();CLK=0;//拉低CLK端,形成下降沿2 _nop_();_nop_();CLK=1;//拉高CLK端DI=channel&0x1;_nop_();CLK=0;//拉低CLK端,形成下降沿3DI=1;//控制命令结束_nop_();_nop_();for(j=0;j<8;j++) //处理读入8位数据{CLK=0;_nop_();Temp=(Temp<<1)|DO;_nop_();CLK=1;}CS=1;CLK=0;DI=1;return(Temp); //返回转换值}/************************************************/ /************************************************//******************显示转换函数******************//************************************************///延时函数void delay(uint n){uint a;uchar i;for(a=n;a>0;a--)for(i=0;i<2;i++);}//将浮点数转成函数void ITOC(float f,uchar *c){float zs,xs;int bxs,bzs,i,k=0;xs=modf(f,&zs); //分离整数部分与小数部分函数if(P3==0XFE)bxs=(int)((xs*100)+0.5);elsebxs=(int)((xs*100)+0.5); //小数点后两位有效数字ITOAX(bxs,axs); //把小数部分转换成字符串存入axs数组bzs=(int)zs; //把整数部分转成整型ITOAZ(bzs,azs); //把整数部分转换成字符串存入azs数组for (i=0;axs[i]!='s';i++) //把最终结果存入c数组c[i]=axs[i];c[i]='.';for(k=0,i=i+1;azs[k]!='s';k++,i++)c[i]=azs[k];if(U<0) c[i]='-';else c[i]=0xff;c[i+1]='s';}//将整型数转换成对应的void ITOAZ(int num,uchar *p){uchar w,i=0;do{w=num%10; //将整型数各位分离,并转换成对应的字符存入a中p[i]=w;num=num/10;i++;}while(num);p[i]='s';}//将小数数部分转换成对应的void ITOAX(int num,uchar *p){uchar w,i=0;do{w=num%10; //将整型数各位分离,并转换成对应的字符存入a中p[i]=w;num=num/10;i++;}while(num);while(i<2){p[i]=0;i++;}p[i]='s';w=p[i];}//显示译码函数void decode(uchar *n,uchar *dn){uchar i;for(i=0; n[i]!='s';i++){switch( n[i]){case 0: dn[i]=0x3F;break;case 1: dn[i]=0x06;break;case 2: dn[i]=0x5B;break;case 9: dn[i]=0x6F;break;case 3: dn[i]=0x4F;break;case 4: dn[i]=0x66;break;case 5: dn[i]=0x6D;break;case 6: dn[i]=0x7D;break;case 7: dn[i]=0x07;break;case 8: dn[i]=0x7F;break;case 46: dn[i]=0x80;break;case'-':dn[i]=0x40;break;default:dn[i]=0x00;break;}}dn[i]='s';}/************************************************/ /************************************************//********************主换函数********************//************************************************/ void main(void){uchar i,j,P2_;float A;while(1){U=ReadADC(0)/256.0;switch(P1){case 0xfe:A=U*10*1.025;break;case 0xfd:A=U*100/1.09;break;case 0xfb: A=U*1000;break;default: A=0.0;break;}A=10*A;ITOC(A,ac);decode(ac,dc);P2=0XFf;P2_=0Xfe;for(j=0;dc[j]!='s';j++){P2=0XFf;P0=dc[j];P2=P2_;delay(150);P2_=_crol_(P2_,1);/*P2_<<=1;*/}}}/************************************************//************************************************/五、调试及设计结果1、PROTUSE系统仿真结果系统仿真能正常运行,达设计所有指标,仿真部分电路如下:PROTUSE系统仿真效果图2、实际硬件制作结果湖南科技大学课程设计根据电路图自制电路,测试结果:能正常测量10——1000mA电流,达大部分设计要求。