基于STC12C5A32S2单片机数控电源兼电子表电路模块设计

最新更新时间:2014-11-15来源: 互联网关键字:STC12C5A32S2  单片机  数控电源 手机看文章 扫描二维码
随时随地手机看文章

  系统利用STC12C5A32S2用其自带的8路AD、2路PWM 来实现数控电源的控制部分和信息的采集部分, P0到P4个IO4实现数据的显示部分,既可以作为数控稳压电源使用又可以做数字钟和闹钟,既可以用数码管显示又可以1602液晶显示。其实充分利用 STC12C5A32S2自带的8路AD、2路PWM完全可以实现全自动充电的多功能数字钟,单片机既可以来显示数字钟,又可以对电池进行充电,电池给单片机供电,当电池没电时,系统自动充电,可是最后由于硬件的原因没有完成,但是当时进行数字钟改进时的一个思想。

  单片机部分主要是用来控制系统的运行,采集电压和通过PWM给充电器提供一个基准电压,利用内置AD对电源输出的电压,电流进行检测,单片机控制1602液晶进行显示,控制数码管进行数码管显示,控制按键对各个界面进行切换,蜂鸣器用来实现报警,闹钟时间到了就进行蜂鸣器报警。显示部分分为两种,1602液晶显示和数码管显示,数码管可以显示电压值和电流值,时间,闹钟。按键用来切换数码管显示不同的界面。

  系统的硬件部分:

  一、电源(模拟)部分

  

  图2 电源仿真图

  通过此电路,将电源电压稳定在5V,此时取的基准点位3.6V,当输出电压高于7.2V时,这时,U1:A的反向端电压会高于3.6V,这时输出会减小,从而使输出电压减小,反之,当输出电压偏小时,使输出电压增大。通过调节基准电压,可以实现电源电压可变,本系统就是利用这一原理对电池进行充电。对于电流取样,就好比B3位电池,R4是一个比较小的电阻,对电路的影响不大,当对电阻两端的电压进行采样之后,在除以电阻就可以算出其流过电池的电流,对于电池两端的电压取样,利用的是R7和R8,采集R7两端的电压U7,则u=U7/R7*(R7+R8),对于电流的采集,利用的是同向比例放大器,取样电阻选择的是0.2欧姆,当电压放大五倍时正好采集到的电压值等于电流的值,不过仿真和实际的电路会有区别。

  

  还有另一种做智能充电器的方案,利用减法器实现对电流的采集,感觉这种采集电流的要比我的要好。这一个电路,利用两路PWM来实现对电源基准点的调节作用,两路ADC分别进行对电压的采样和对电流的采样。利用二极管的单向导电性将两路PWM进行隔离,当电流大时,二极管导通,从而使输出的压降减小,当电流偏小时,二极管截止,控制电压的一路起作用,使电源电压增加,从而达到稳流的作用,当进行恒压充电时,电流一般较小,二极管截止。

  

 利用减法器对信号进行采集,在信号的采集方面具有一定的优势。

    

  减法器电路

   二、数字电路模块设计部分

  系统选择的是STC12C5A32S2,此类单片机具有4个16位定时器,P0到P4个IO口,其中P1口可以作为8路AD采集,具有10位精度的ADC,转换速率可达250K/S;2路PWM,既可以当两路DA,又可以再实现两个定时器,还具有双串口的功能(以前用过,通过这次再次使用,更加进一步了解了串口通信的原理,接受和发送的区别)。

  1、单片机最小系统

  

  图4 单片机最小系统

  单片机最小系统由震荡电路,复位电路,单片机和电源组成,单片机的P0口加了上拉电阻。

  2、系统的显示部分

  此系统的显示部分有两个,1602液晶显示和数码管显示,1602液晶利用其自带的英文字库在液晶中显示信息,数码管根据二极管的导通和截止显示不同的数字。

  

  图5 1602单元

  VCC和GND为1602液晶提供电源,滑动变阻器用来调节1602的亮度,单片机通过P0口和RW、RS、E为1602写地址和写命令,从而时液晶进行显示。

  

  图6 数码管显示单元

  数码管分为共阴极数码管和共阳极数码管,这里我选择的是4位连体共阳极数码管,由于单片机驱动能力有限,故不能直接用单片机给数码管供电令其显示,在这里三极管的功能像是开关的作用,当IO口位高电平时三极管截止,数码管不显示,当IO口位低电平时,三极管导通,数码管显示。

  3、时钟电路

  由于单片机实现数字钟的方法很多,有定时器的还有通过时钟芯片的,定时器的芯片有点误差较大于是选择运用时钟芯片,这里时钟芯片选择的时DS1302。 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。 工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

  

  图7 时钟芯片电路

  4、蜂鸣器报警

  在这里蜂鸣器实现的功能主要是报警的功能,当脑钟时间到,蜂鸣器报警一分钟,当电池充电充满时进行报警,起到保护和提醒的作用。

  

  图8 蜂鸣器报警电路

  单片机给低电平时,三极管导通,从而有电流流过蜂鸣器,当单片机给高电平时没有电流流过蜂鸣器,从而蜂鸣器截止,IN4148主要是用来保护蜂鸣器,防止电流从蜂鸣器的负级流向正级。

关键字:STC12C5A32S2  单片机  数控电源 编辑:探路者 引用地址:基于STC12C5A32S2单片机数控电源兼电子表电路模块设计

上一篇:采用555时基全自动快速充电电路设计
下一篇:智能移动加湿器红外避障电路模块设计

推荐阅读最新更新时间:2023-10-12 22:48

单片机中最简单实用的按键程序
我想了很久才写成的这个按键程序;先讲讲我的思路, 我的思路很简单就是一般的按键不是需要去抖动延时,我想单片机够慢的了,用什么方法不要去延时,所以我就想到在定时中断中插入按键扫描程序,如果连续两个中断程序中都有按键,就可以认为有按键。 但是我下面的这个程序中有个缺陷,那就是没有加入去抖动的方法,为了缩短短程序的总长度,我就是没有写,这个我用在一个平时的一个小的测试部件控制程序中,去抖动没什么实际的意义,就没有写! uchar key = 0; uchar key0 = 0; uchar key1 = 0; uchar key2 = 0; uchar key3 = 0; uchar key4 = 0;
[单片机]
PIC单片机实现智能清洁护理机的方案设计
简介: 本文以PIC18F87K22单片机为护理机主控制器,利用西门子GSM模块TC35i,将护理机报警信息以“手机短信”的形式实时发送到设定的卧床病人监护人的手机中,同时,监护人也可用“手机短信”的形式发送命令远程控制家中护理机的运行,创新性地实现了家庭长期卧床病人大小便清洁护理机的“无人护理”功能,将在很大程度上解决我国长期卧床病人家庭的陪护人员紧缺和护理费用高昂这些亟待解决社会难题。 0)引言 本文以PIC18F87K22单片机为护理机主控制器,利用西门子GSM模块TC35i,将护理机报警信息以“手机短信”的形式实时发送到设定的卧床病人监护人的手机中,同时,监护人也可用“手机短信”的形式发送命令远程控制家中护理机的运行,
[单片机]
PIC<font color='red'>单片机</font>实现智能清洁护理机的方案设计
51单片机(七)—— LED进阶控制
在《51单片机(五)》和《51单片机(六)》中,我们对LED的控制比较简单,都只是点亮的操作,在本文中,我们进行一些相对复杂的操作,来更加熟悉单片机IO口的使用。 一、闪灯 在这个实验中,我们只对LED1进行控制,让它闪烁,代码如下所示 #include reg52.h //包含头文件,一般情况不需要改动, sbit LED1=P0^0; //用sbit关键字定义LED1到P00端口, /********************************************************************/ /* 延时函数 */ /*
[单片机]
制作单片机的几点心得体会
  1.在电源的输入端正向串联或反向并联一个二极管,当不小心接反电源的时候,二极管可以保护单片机不受反向电压的袭击,如下左图、下右图所示。   2.在电源的输入端并接一个指示灯,以指示是否有电接入电路,如下图所示。   3.一般在正负之间接一个电容,以消除来自电源的高频噪声。典型值是0.1μF,如下图所示。   4.如果需要串行通信,晶振选择11.0592MHz较好,因为这样可以得到比较稳定的传输波特率。   5.在使用51单片机时,若不用外部程序存槠器,记得将EA引脚接上电源正极(即VCC),否则单片机将不会执行内部程序存槠器的程序,即自己烧进去的程序没有用。   6.51系
[单片机]
制作<font color='red'>单片机</font>的几点心得体会
将血压计显示器读数读入单片机的接口电路
  本文以一个全自动血压计为例,介绍将LCD显示器读数读入单片机的接口电路。该血压计显示器为6 1/2位段式LCD显示器,3位显示收缩压,3位显示舒张压。1/2位在两组数码中间,显示4个指示符号。   1 LCD的电极连接结构和工作波形   1.1 LCD的电极连接结构   图1为血压计LCD的电极连接结构及等效电路。其中,图1(a)为公共电极连接排列,图1(b)为段电极连接排列。它共有4个公共电极COM0~COM3,每位数码各有2个段电极Sx-0、Sx-1,其等效电路为一个4行×2列的矩阵,如图1(c)所示。      图1 LCD电极连接结构及等效电路   1.2 LCD的工作
[单片机]
将血压计显示器读数读入<font color='red'>单片机</font>的接口电路
关于单片机的仿真
因为总是习惯于用multisim进行简单电路的仿真,总感觉相比其他软件,它非常人性化。最近师弟用Proteus进行单片机的仿真,我就尝试着用它再来试试,在网上查了很多资料。搞了一天,你以为搞出来了?no,没有!总是到最后的地方出现了问题。而且网上好多都没有涉及这些地方的说明,很多也是汇编语言写的。用c的还都通不过。估计应该是我那个地方还没有注意到,才出现这种情况。然后我又尝试着用Proteus,同样又是半天,好在搞出来了一个LED闪烁的例子。参照的网上资料,起码是实现了仿真。 原理图如下: 代码如下: #include #define uchar unsigned char #define
[单片机]
飞思卡尔单片机DZ60---实时中断
//RTI实时中断实验 //RTC模块包括一个状态和控制寄存器、一个8位计数寄存器和一个8位模数寄存器 //实时中断功能用来产生周期性中断。RTI有三个可选时钟源:LPO 1KHZ内部振荡器,32KHZ内部时钟,以及ERCLK外部时钟 //8位比较器实时比较计数器RTCCNT与TRCMOD值,相等则产生中断 #include hidef.h /* for EnableInterrupts macro */ #include derivative.h /* include peripheral declarations */ #define LEDCPU PTDD_PTDD0 #define LEDCPU_dir PTDDD
[单片机]
51单片机的四种工作模式怎么去设置
学51单片机需要专门把C语言学透吗 大家是不是看了很多网上的视频或者文章,他们的建议是不是教你拿一本C语言书看几个月,当真正开始给单片机编程时你会发现单片机编程语言只用到了c语言的百分之十都不到,浪费了自己的青春,消磨了对电子方面的兴趣!真正学习单片机需要一定的动手能力,不误人子弟的教程,理论和实践相结合的教学模式并没有刚开始教大家一堆C语言知识。 所以建议从一块开发板和教程开始学起,起初的知识对C语言的要求很低。之后发现自己的C语言功底不足以使你的程序如鱼得水的时候再回头认认真真学习C语言。 51单片机的四种工作模式怎么去设置,既然它有四种工作模式,像定时计数器一样,要想使用定时计数器它也有四种工作方式,那必然的要有
[单片机]
51<font color='red'>单片机</font>的四种工作模式怎么去设置
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved