标题: 【求助】关于STC12C2052AD单片机0-99v直流电压表 [打印本页]

作者: 越快乐越堕落    时间: 2016-6-19 16:03
标题: 【求助】关于STC12C2052AD单片机0-99v直流电压表
是这样的,原贴的内容来源于本网站,但是我没有做出来,时间又比较急,原作者又没有回复我,所以我就发帖来求助了。原作者对不住了,我也是没办法的。。。。
始终做不出来原作的效果,我做出来的结果却是只显示最后一个零。本来是三极管放大,基极接1K电阻,然后发射极接正极,集电极接数码管,基极的电阻接单片机,这样的结果是只显示最后一个零。后来我在数码管的公共端6 8 9 12脚分别接了一根线,另一端直接接在单片机,于是乎数码管全部显示0,小数点也全部显示。跟死机了似的。。。当然了,不管怎么接都不能测量。


测量的分流电阻原文是75K,我觉得不妥,遂改成的30K。数码管是四位共阳没错。。。


我想问的是程序和电路图是不是有错误或者对不上号的地方???还是我搭的电路有问题???请各位大神指教一番。。。原作者再次对不住啦。。。
以下是原作者的实物图,原理图和程序。


程序源码:


作者: yzwzfyz    时间: 2016-6-19 16:21
附图,未以许可,不能引用。
作者: 越快乐越堕落    时间: 2016-6-19 17:23
yzwzfyz 发表于 2016-6-19 16:21
附图,未以许可,不能引用。

又不是你的,而且本来就是开源的东西,我问了他他没回我我才发的,我会跟他说的,而且我说了抱歉了,如果你不是来提供技术支持的那请你不要管。谢谢
作者: 越快乐越堕落    时间: 2016-6-19 17:42
这是原理图,原作者的图正常上电是显示后面三个0,数码管第二位的小数点显示。正文的图被举报了。没意思
作者: 腾飞的龙    时间: 2016-6-19 17:47
大家发出来的东西就是让大家相互学习进步的,要不发出来干什么,自己留着就是啦。何必。
作者: wc86110    时间: 2016-6-19 23:13
只是好奇 LZ 用啥软件设置烧录到单片机的?
作者: wc86110    时间: 2016-6-19 23:43
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?
作者: 越快乐越堕落    时间: 2016-6-20 11:34
wc86110 发表于 2016-6-19 23:13
只是好奇 LZ 用啥软件设置烧录到单片机的?

有一个软件叫STC ISP
作者: 越快乐越堕落    时间: 2016-6-20 11:34
wc86110 发表于 2016-6-19 23:43
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?

12M更准确 问题不是在这现在是连显示都不行
作者: yzwzfyz    时间: 2016-6-20 12:14
7楼:
“LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?”
不认同这一点,用哪个都可以,只是在相关时间的细节处理上注意一下就可以了。估计对本例无所谓。

作者: yzwzfyz    时间: 2016-6-20 12:18
第18脚,是电压输入吧?
你在17脚用TL431将参考电压置于2.5V,那么18脚的正常工作电压就是0-2.5V,电压输入依此据来分压即可。
但是你不能保证:超过VCC的电压,传到18脚来伤及IC(外接100V或更高的意外入侵),所以建议用一只稳压二极管(稳压值大于2.5V,在VCC附近)并在18脚,用于吸收意外超过VCC的电压,保护IC。这样就将输入至18脚的电压限制在:-0.7至VCC之间。当正常工作时,二极管不工作(<2.5V),不影响电阻分压。而出现异常时,比如输入100V接反了,变成-100V,18脚电压就会被限制在-0.7V,从而保护IC。
在没有保护的情况下,一旦18脚被异常电压攻击(或者是瞬间的),会出什么情况,就无法预料了。包括你现在的现象也会发生。

作者: yzwzfyz    时间: 2016-6-20 12:28
本帖最后由 yzwzfyz 于 2016-6-20 12:59 编辑

数码管ABCDEFGH,应分别加一个电阻(共用八个),再接入IC。
电阻阻值=[电源电压VCC(5V)-Q1或4的导通压降(取0.4V)-LED段压降(取1.4V)-IO口低电平输出电压(取0.5V)]/(LED段电流,扫描显示取大一点,20mA吧,如果不是扫描显示就取10mA。)
不加电阻电阻不一定坏,但一定不好,对IC或电源7805,都不好,热!

作者: yzwzfyz    时间: 2016-6-20 12:29
TL431上并个电容(17脚),以降低参考电压的噪声。
作者: yzwzfyz    时间: 2016-6-20 12:41
本帖最后由 yzwzfyz 于 2016-6-20 12:58 编辑

电源用78L05是有风险的。你查一下手册就明白了,不给建议了。
这是一般想不到的问题。
不说别的,就一个LED,如果8个段同时亮显示”8.“。我建议加电阻后的电流是20*8=160mA ,你现在的电路无电阻限流估计会比这个大许多,再加上其它用电的部分,你计算一下78L05的供电能力。如果不是扫描显示,显8888呢?70*4。
更要命的是,电流不是恒定的,扫描显示,LED内容又不确定,电流脉动大,设计电源总要有富裕吧。
明白后就很好处理了。
作者: yzwzfyz    时间: 2016-6-20 12:45
关于C2,C3的设计,麻烦,就不说了,
直接建议:
C2不小于220uF吧,
C3保持。
作者: 越快乐越堕落    时间: 2016-6-20 12:54
yzwzfyz 发表于 2016-6-20 12:41
电源用78L05是有风险的。你查一下手册就明白了,不给建议了。
这是一般想不到的问题。
不就别的,就一个L ...

那为什么这个图原作者能成功?
作者: yzwzfyz    时间: 2016-6-20 13:04
能成功,不保证设计有充足的余量,比如,冬天OK,夏天NG;或偶尔不OK,或时间长了NG。
作者: yzwzfyz    时间: 2016-6-20 13:06
ABCDEFG,应尽可能放在同一个口上,比如全在P1,这样软件编写更方便。这是小事。
作者: yzwzfyz    时间: 2016-6-20 13:16
我给你建议的东西,教师未必能讲到。
不采用,也一样“行”。
你考虑一下,其中的道理,都是从产品的可靠性来考虑的。这是实用与实验的区别。
学生没有经验。通常不会想到,教书先生如果做少,或看得少,也不一定能考虑到。
况且,这些都是潜在的失效,也只是在特定条件下,才有可能发生意外。
这些对你来说不一定重要,至少不是迫切的问题。


作者: yzwzfyz    时间: 2016-6-20 13:47
现在说软件:
你的显示程序部分:
   P1=0xfe;        //P1.3引脚输出低电平
加注:是P1.0=0,可能是显示一位LED,起个名子叫LED0吧。
   delay(1);
加注:LED0只显示了一个delay(1)的时间,还来不及看清楚,就:
   P1=0xfd;       //P1.2引脚输出低电平
加注:这时P1.0=1,LED0被关闭……进入了LED1的显示
  ……
如此LED0,1,2,4,每个只显示了一个delay(1)的时间,就被

    P1=0xff;     //关闭所有数码管
全部关闭了。
-------------------------------------------------------------------------------------------
也就是:4位LED各闪显一下,就全部灭掉。再等下个处理周期(较长时间)
简化下来:4位LED各闪显一下→灭掉→等较长时间→下个轮回。
大部分时间LED都是关闭,要看么,闪一下,又无法看清。
作者: yzwzfyz    时间: 2016-6-20 13:59
改正:
做个时间中断(建议5ms),每次中断如下处理:
k=k+1(让K=0-3,=4就复0),K由你增加。
关所有LED;(就是你的这一句:P1=0xff;     //关闭所有数码管)
根据K的值,决定显示哪一位LED(就是从你做的个十百千中选择一个显示;注意,先送数据,后开开关)
要点:先关所有,每次只显示一个位的LED,先送数据,后开开关显示。
作者: 越快乐越堕落    时间: 2016-6-20 14:23
yzwzfyz 发表于 2016-6-20 13:59
改正:
做个时间中断(建议5ms),每次中断如下处理:
k=k+1(让K=0-3,=4就复0),K由你增加。

没看懂
作者: yzwzfyz    时间: 2016-6-20 14:32
定义一个计数器(一个变量),起个名子叫K.
作者: 越快乐越堕落    时间: 2016-6-20 14:33
yzwzfyz 发表于 2016-6-20 14:32
定义一个计数器(一个变量),起个名子叫K.

哦 明白了
作者: ahshmj    时间: 2016-6-20 22:25
wc86110 发表于 2016-6-19 23:43
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?

对于图中的外设,11.0592,12.0000都不会有楼主说的问题。
作者: wc86110    时间: 2016-6-21 13:58
LZ,这个电压表真能测量到 99 V ?
作者: 越快乐越堕落    时间: 2016-6-21 16:16
wc86110 发表于 2016-6-21 13:58
LZ,这个电压表真能测量到 99 V ?

这个主要是看程序,硬件没多大影响
作者: 安羽    时间: 2017-1-14 00:16
本人亲测了一次,此程序确实有问题。数码管动作有问题
作者: bxyyhan    时间: 2017-1-16 17:58
安羽 发表于 2017-1-14 00:16
本人亲测了一次,此程序确实有问题。数码管动作有问题

在开发板上搭了一下,确实有问题,但还没细查。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1