安羽 发表于 2017-1-14 00:16 在开发板上搭了一下,确实有问题,但还没细查。 |
本人亲测了一次,此程序确实有问题。数码管动作有问题 |
wc86110 发表于 2016-6-21 13:58 这个主要是看程序,硬件没多大影响 |
LZ,这个电压表真能测量到 99 V ? |
wc86110 发表于 2016-6-19 23:43 对于图中的外设,11.0592,12.0000都不会有楼主说的问题。 |
yzwzfyz 发表于 2016-6-20 14:32 哦 明白了 |
定义一个计数器(一个变量),起个名子叫K. |
yzwzfyz 发表于 2016-6-20 13:59 没看懂 |
改正: 做个时间中断(建议5ms),每次中断如下处理: k=k+1(让K=0-3,=4就复0),K由你增加。 关所有LED;(就是你的这一句:P1=0xff; //关闭所有数码管) 根据K的值,决定显示哪一位LED(就是从你做的个十百千中选择一个显示;注意,先送数据,后开开关) 要点:先关所有,每次只显示一个位的LED,先送数据,后开开关显示。 |
现在说软件: 你的显示程序部分: 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都是关闭,要看么,闪一下,又无法看清。 |
我给你建议的东西,教师未必能讲到。 不采用,也一样“行”。 你考虑一下,其中的道理,都是从产品的可靠性来考虑的。这是实用与实验的区别。 学生没有经验。通常不会想到,教书先生如果做少,或看得少,也不一定能考虑到。 况且,这些都是潜在的失效,也只是在特定条件下,才有可能发生意外。 这些对你来说不一定重要,至少不是迫切的问题。 |
ABCDEFG,应尽可能放在同一个口上,比如全在P1,这样软件编写更方便。这是小事。 |
能成功,不保证设计有充足的余量,比如,冬天OK,夏天NG;或偶尔不OK,或时间长了NG。 |
yzwzfyz 发表于 2016-6-20 12:41 那为什么这个图原作者能成功? |
关于C2,C3的设计,麻烦,就不说了, 直接建议: C2不小于220uF吧, C3保持。 |
本帖最后由 yzwzfyz 于 2016-6-20 12:58 编辑 电源用78L05是有风险的。你查一下手册就明白了,不给建议了。 这是一般想不到的问题。 不说别的,就一个LED,如果8个段同时亮显示”8.“。我建议加电阻后的电流是20*8=160mA ,你现在的电路无电阻限流估计会比这个大许多,再加上其它用电的部分,你计算一下78L05的供电能力。如果不是扫描显示,显8888呢?70*4。 更要命的是,电流不是恒定的,扫描显示,LED内容又不确定,电流脉动大,设计电源总要有富裕吧。 明白后就很好处理了。 |
TL431上并个电容(17脚),以降低参考电压的噪声。 |
本帖最后由 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,都不好,热! |
第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脚被异常电压攻击(或者是瞬间的),会出什么情况,就无法预料了。包括你现在的现象也会发生。 |
7楼: “LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。 这不是犯了低级错误嘛?” 不认同这一点,用哪个都可以,只是在相关时间的细节处理上注意一下就可以了。估计对本例无所谓。 |
wc86110 发表于 2016-6-19 23:43 12M更准确 问题不是在这现在是连显示都不行 ![]() |
wc86110 发表于 2016-6-19 23:13 有一个软件叫STC ISP |
LZ,原作者用的是 11.0592Mz 的晶振,你却用 12MHz 的晶振。 这不是犯了低级错误嘛? |
只是好奇 LZ 用啥软件设置烧录到单片机的? |
大家发出来的东西就是让大家相互学习进步的,要不发出来干什么,自己留着就是啦。何必。 |
yzwzfyz 发表于 2016-6-19 16:21 又不是你的,而且本来就是开源的东西,我问了他他没回我我才发的,我会跟他说的,而且我说了抱歉了,如果你不是来提供技术支持的那请你不要管。谢谢 |
附图,未以许可,不能引用。 |