【项目总结】基于51单片机的简易电度表proteus8仿真项目

        虽然是第一次总结项目经验,但我深知此重要性。近来接到了一个做简易电度表的项目,芯片是AT89C51,用proteus仿真实现。一路颇为曲折,但最后完美地实现了功能。

        反思后发现所犯错误主要集中在这两个方面:、

目录

    一、对proteus仿真软件的使用错误。

   二、解决问题的思路匮乏


 

    一、对proteus仿真软件的使用错误。

1.1、误用共阴/共阳数码管

        在proteus中,7SEG-MPX4-CA是4位共阳极数码显示管,7SEG-MPX4-CC是4位共阴极数码显示管,两者的外形完全一样,名字的区别也仅在于尾部“CA”和"CC"的不同。

        原来阳极的单词是“anode”,首字母A;阴极的单词是“cathode”,首字母C。

图1-1

 1.2、动态显示方式需要设置数码管的Minimum Trigger Time参数

        Minimum Trigger Time顾名思义就是最短触发时间,这个玩意有待研究。我目前把它理解为数码管最快的刷新速度,也就是亮起到熄灭/熄灭到亮起的速度。

        这个参数默认为1ms。

图1-2

        1ms显然是不行的,因为左边的数码管根本不亮。

图1-3

         简单测试后我发现,当时间设置<0.01S,则能够正常显示。

图1-4

         我程序中定时中断进入的间隔是1ms,也就是每1ms切换一次位选,循环选中4位,人眼无法分辨它闪烁的频率,达到多位显示的效果。这个时间和Minimum Trigger Time有什么关系,还没研究过。

 1.3、没考虑三极管的开关速度

        事实上我到现在都没弄清楚它有什么毛病。

        出错的现象:当速度快了(1ms)之后,尽管满足条件,三极管依然不导通;当速度慢(1s)时,三极管正常工作。

        当P0→P1→P2→P3……依次给予低电平,动态刷新数码管时,W0、W1、W2宛如死了,没有反应,三极管一直处于截止状态。我只得归因于它的开关速度太慢了。

        最后只要把这部分电路去掉,单片机IO口直接接在数码管位选段上,才正常实现了功能。

图1-5

        它是用来当开关管更好的驱动数码管的,电路图如下:(这里我不理解,但是电路都是这样画的,有待研究)

图1-5 箭头所指为位选端

  1.4、不熟悉软件使用

        说实话,犯这么二的错误真丢脸(困扰了我3小时左右),我说点了“开始仿真”咋没反应呢。

         原来开始仿真后默认在暂停状态,需要点击左下角的持续运行按钮。

 

 1.5、“虚焊”问题

        有些点表面看上去没毛病,实际上你把器件拉开看看,就能发现实际并没有连上。当明明没有问题却没反应不起效的时候,就该怀疑是这个问题了。                     

虚焊

1.6、运行时报错问题

        有时仿真久了,会报出一个有关单片机8051的错误。这个问题改一下兼容性后就再也没出现。


二、解决问题的思路匮乏

        客户仅仅是要proteus的仿真文件,因此给了我一个程序。为了省事,我开始抱着“搭个电路,程序一加就完事”的想法搭建了电路。

        结果哪哪都不对,我一直怀疑是程序的问题。最后绝望之下自己写程序,一个模块一个模块地调试,最后做完了项目。

        如此简单的项目却让我获得了地狱级的体验感。

        回顾这一路我犯的数个愚蠢错误。究其原因,一方面是项目经验不足,另一方面恐怕就是没有运用解决问题的策略。

        高数中的“求极限”的思想是不断扩大“已知”来逼近“未知”,化用在项目中就是对模块逐个调试逐步完成项目,像是盖房子,先搭好地基,继续向上盖才有意义。

        当这个过程倒过来时,我在此想让自己记住如下的策略:

        倘若见楼顶在晃,我们就将房子砍掉一半的高度,看它是否平稳,如果还晃,就再砍掉一半。重复这个过程,找到不晃的高度,从这里向上搭起。

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值