找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

谁能点亮这些数码管和灯啊搞了2天了,芯片是STC12C5204AD单片机

查看数: 2452 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-5-31 09:25

正文摘要:

谁能点亮这些数码管和灯啊搞了2天了,芯片是STC12C5204AD。附件是原理图 目前只能点亮这个几个单片机代码如下: #include<reg51.h> #include "intrins.h" #define uchar unsigned char #define uint un ...

回复

ID:584814 发表于 2023-6-2 08:20
这种问题呵呵。
1、有成品板,通常已有程序;
2、没有,要么是考,要么你懂的;
3、虽不复杂但别人未必有同样的成品板,仿真也要重搭;
4、程序也不复杂,但调试起来你懂的,何况可能要重写;
5、大家只好给思路,都是基本的从简单到复杂,不明白先画导图;
6、九楼的建议很好而且简单省钱易行,实用应该采用 考除外。
ID:213173 发表于 2023-6-1 20:48
LLSSZS 发表于 2023-6-1 11:18
数码管和灯我都差不多点亮了,现在想加一个串口就是电脑发送然后数码管显示,可是就是实现不了,求指教

不是差不多点亮数码管和灯就算基本正常,看你的电路图和代码都有明显的瑕疵。先得把数码管和灯调试正常,再添加串口调试。
ID:1081034 发表于 2023-6-1 11:18
wulin 发表于 2023-6-1 09:43
从你的原理图看这个电路除了驱动16位数码管+14个LED外也没有什么其它功能,换一个STC15W104或STC8G1K08的 ...

数码管和灯我都差不多点亮了,现在想加一个串口就是电脑发送然后数码管显示,可是就是实现不了,求指教
ID:1081034 发表于 2023-6-1 11:17
wulin 发表于 2023-5-31 18:25
STC12C5204AD点亮16位数码管+14个LED本身没有难度,但这个代码肯定不行。U16~U19是啥玩意?竟然用2片MCU, ...

数码管和灯我都差不多点亮了,现在想加一个串口就是电脑发送然后数码管显示,可是就是实现不了,求指教
ID:213173 发表于 2023-6-1 09:43
LLSSZS 发表于 2023-6-1 08:02
是ic,LS145。有原理图的在附件

从你的原理图看这个电路除了驱动16位数码管+14个LED外也没有什么其它功能,换一个STC15W104或STC8G1K08的8脚芯片+TM1640数码管专用芯片,既简单可靠又省银子不好吗?多4个引脚还可以扩展其它功能。推荐电路图:

ID:384109 发表于 2023-6-1 09:37
虽然原理图看着很杂乱,但是硬件设计的人员已经都分配好了,跟普通数码管显示方式是一样的,这个硬件设计的人应该也一样会写代码
ID:1081034 发表于 2023-6-1 08:02
wulin 发表于 2023-5-31 18:25
STC12C5204AD点亮16位数码管+14个LED本身没有难度,但这个代码肯定不行。U16~U19是啥玩意?竟然用2片MCU, ...

是ic,LS145。有原理图的在附件
ID:202023 发表于 2023-5-31 19:11
没仔细看,原来你是有原理图的,
ID:202023 发表于 2023-5-31 19:08
#include<reg51.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code se[]={0xe0,0x0e,0xf9,0xa4,0xb0,0x92,0xf8,0x90};
void delayms(uint j);
void main(void)
{
         uint num,s,g,n;
         num=0;
         s=0;
         g=0;
         g=0;
         while(1)
          {
                num++;             //试数,假若num = 3
                if(num==10000)     //不成立不执行
                   {
                      num=0;
        
                                  }
                g=num%10;       //试数,假若num = 3  g =3
                s=num/10%10;    //试数,假若num = 3  s =0
                n=num/100%10;   //试数,假若num = 3  n =0

                P1=0xcf;   //11001111
                P2=0x90;   //10010000
                P3=se[g];  //试数,假若num = 3  g =3 P3=se[3];  P3 = 0xa4 ;0xa4 二进制 10100100
                delayms(1000);                  
                }
}
void delayms(uint k)
{
          uchar i;
        for(;k>0;k--);
        {
                i=250;
                while(--i);
                i=249;
                while(--i);
        }
}
/*
你没用动态刷新用了延时,delayms(1000)后再自加,再刷新显示。
按照你的程序,p3只能显示一位数码管,或一列(行)LED
不知道你的硬件连接情况,按照这个方法你自己试一下。
*/
ID:213173 发表于 2023-5-31 18:25
STC12C5204AD点亮16位数码管+14个LED本身没有难度,但这个代码肯定不行。U16~U19是啥玩意?竟然用2片MCU,还用了这么多三极管,倒不如用专用芯片TM1640。
ID:1081034 发表于 2023-5-31 17:27

现在就差灯没有点亮了,有原理图,那四个IC是LS145
大神教我点灯
ID:136485 发表于 2023-5-31 17:04
看起来有点像医疗控制的板

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

Powered by 单片机教程网

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