找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

萌新在搞智能台灯设计,论坛找到的仿真运行不了,数码管显示也有问题,有没有大佬...

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

正文摘要:

代码如下 #include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int /*uchar code table[]= { 0x3F,0x06,0x66,0x4F,        &nbs ...

回复

ID:332444 发表于 2020-6-7 06:50
学些新的数码管动态知识,可参http://www.51hei.com/bbs/dpj-189201-1.html,有代码有示例工程下载。
ID:267719 发表于 2020-6-6 23:30
楼主的硬件电路只能在仿真里做做,做成实物会
1:程序跑不起来,因为EA接了VCC,没接地;
2:三极管Q1,Q3会烧毁,单片机可能会烧毁;因为三极管基极没有电阻,低电平时,电源对地等效接二极管短路。
3:D10-D25发光二极管会烧毁,因为没有限流电阻;
4:数码管可能会烧毁,也是因为没有限流电阻;
5:继电器驱动不起来;因为串联220欧电阻能否驱动,要看你继电器的选型了;

软件方面:
1:你注释掉的译码是对的;
2:
if(key3==0)
{
  DelayMs(10);
  if(key3==0)
  {
   num2+=10;
   if(num2==990)
    num2=0;
  }
  while(!key3);
}
边界有问题。刚开始你是uint scale,num,num1,num2=990,num3;
按了key3,结果num2+10=1000;1000!=990,所以num2不会被变为0。结果就是1000,超过了990.
key4存在同样问题,当num变为0后,按了key4键,num=65526。。。
4:如果单片机时钟是12MHz,12T,那定时器1定时周期50ms,被num分频20,就是1000ms,被num3分频60,就是1分钟。意味着num1要等1分钟才会变一次。仿真显示你有没有等一分钟后看过结果?

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

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

Powered by 单片机教程网

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