找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

【求助】关于STC12C2052AD单片机0-99v直流电压表

查看数: 6875 | 评论数: 28 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-6-19 16:03

正文摘要:

是这样的,原贴的内容来源于本网站,但是我没有做出来,时间又比较急,原作者又没有回复我,所以我就发帖来求助了。原作者对不住了,我也是没办法的。。。。 始终做不出来原作的效果,我做出来的结果却是只显示最后 ...

回复

ID:95809 发表于 2017-1-16 17:58
安羽 发表于 2017-1-14 00:16
本人亲测了一次,此程序确实有问题。数码管动作有问题

在开发板上搭了一下,确实有问题,但还没细查。
ID:157268 发表于 2017-1-14 00:16
本人亲测了一次,此程序确实有问题。数码管动作有问题
ID:99130 发表于 2016-6-21 16:16
wc86110 发表于 2016-6-21 13:58
LZ,这个电压表真能测量到 99 V ?

这个主要是看程序,硬件没多大影响
ID:96682 发表于 2016-6-21 13:58
LZ,这个电压表真能测量到 99 V ?
ID:7485 发表于 2016-6-20 22:25
wc86110 发表于 2016-6-19 23:43
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?

对于图中的外设,11.0592,12.0000都不会有楼主说的问题。
ID:99130 发表于 2016-6-20 14:33
yzwzfyz 发表于 2016-6-20 14:32
定义一个计数器(一个变量),起个名子叫K.

哦 明白了
ID:123289 发表于 2016-6-20 14:32
定义一个计数器(一个变量),起个名子叫K.
ID:99130 发表于 2016-6-20 14:23
yzwzfyz 发表于 2016-6-20 13:59
改正:
做个时间中断(建议5ms),每次中断如下处理:
k=k+1(让K=0-3,=4就复0),K由你增加。

没看懂
ID:123289 发表于 2016-6-20 13:59
改正:
做个时间中断(建议5ms),每次中断如下处理:
k=k+1(让K=0-3,=4就复0),K由你增加。
关所有LED;(就是你的这一句:P1=0xff;     //关闭所有数码管)
根据K的值,决定显示哪一位LED(就是从你做的个十百千中选择一个显示;注意,先送数据,后开开关)
要点:先关所有,每次只显示一个位的LED,先送数据,后开开关显示。
ID:123289 发表于 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都是关闭,要看么,闪一下,又无法看清。
ID:123289 发表于 2016-6-20 13:16
我给你建议的东西,教师未必能讲到。
不采用,也一样“行”。
你考虑一下,其中的道理,都是从产品的可靠性来考虑的。这是实用与实验的区别。
学生没有经验。通常不会想到,教书先生如果做少,或看得少,也不一定能考虑到。
况且,这些都是潜在的失效,也只是在特定条件下,才有可能发生意外。
这些对你来说不一定重要,至少不是迫切的问题。

ID:123289 发表于 2016-6-20 13:06
ABCDEFG,应尽可能放在同一个口上,比如全在P1,这样软件编写更方便。这是小事。
ID:123289 发表于 2016-6-20 13:04
能成功,不保证设计有充足的余量,比如,冬天OK,夏天NG;或偶尔不OK,或时间长了NG。
ID:99130 发表于 2016-6-20 12:54
yzwzfyz 发表于 2016-6-20 12:41
电源用78L05是有风险的。你查一下手册就明白了,不给建议了。
这是一般想不到的问题。
不就别的,就一个L ...

那为什么这个图原作者能成功?
ID:123289 发表于 2016-6-20 12:45
关于C2,C3的设计,麻烦,就不说了,
直接建议:
C2不小于220uF吧,
C3保持。
ID:123289 发表于 2016-6-20 12:41
本帖最后由 yzwzfyz 于 2016-6-20 12:58 编辑

电源用78L05是有风险的。你查一下手册就明白了,不给建议了。
这是一般想不到的问题。
不说别的,就一个LED,如果8个段同时亮显示”8.“。我建议加电阻后的电流是20*8=160mA ,你现在的电路无电阻限流估计会比这个大许多,再加上其它用电的部分,你计算一下78L05的供电能力。如果不是扫描显示,显8888呢?70*4。
更要命的是,电流不是恒定的,扫描显示,LED内容又不确定,电流脉动大,设计电源总要有富裕吧。
明白后就很好处理了。
ID:123289 发表于 2016-6-20 12:29
TL431上并个电容(17脚),以降低参考电压的噪声。
ID:123289 发表于 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,都不好,热!
ID:123289 发表于 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脚被异常电压攻击(或者是瞬间的),会出什么情况,就无法预料了。包括你现在的现象也会发生。
ID:123289 发表于 2016-6-20 12:14
7楼:
“LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?”
不认同这一点,用哪个都可以,只是在相关时间的细节处理上注意一下就可以了。估计对本例无所谓。
ID:99130 发表于 2016-6-20 11:34
wc86110 发表于 2016-6-19 23:43
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?

12M更准确 问题不是在这现在是连显示都不行
ID:99130 发表于 2016-6-20 11:34
wc86110 发表于 2016-6-19 23:13
只是好奇 LZ 用啥软件设置烧录到单片机的?

有一个软件叫STC ISP
ID:96682 发表于 2016-6-19 23:43
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。
这不是犯了低级错误嘛?
ID:96682 发表于 2016-6-19 23:13
只是好奇 LZ 用啥软件设置烧录到单片机的?
ID:79544 发表于 2016-6-19 17:47
大家发出来的东西就是让大家相互学习进步的,要不发出来干什么,自己留着就是啦。何必。
ID:99130 发表于 2016-6-19 17:23
yzwzfyz 发表于 2016-6-19 16:21
附图,未以许可,不能引用。

又不是你的,而且本来就是开源的东西,我问了他他没回我我才发的,我会跟他说的,而且我说了抱歉了,如果你不是来提供技术支持的那请你不要管。谢谢
ID:123289 发表于 2016-6-19 16:21
附图,未以许可,不能引用。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表