找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7749|回复: 9
打印 上一主题 下一主题
收起左侧

STC8F2K16S2单片机直驱共阴极时钟数码管,PCB+源程序设计

  [复制链接]
跳转到指定楼层
楼主
原本只是想做个TM1650驱动4位共阴数码管的板子,但是想了想,还有足够空间(主要是穷,打板子贵,而且麻烦,想尽一切办法在10*10cm中塞入东西),就放了STC8F2K16S2芯片上去,动态扫描,推挽输出。连限流电阻都省了。

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


制作出来的实物图如下:


单片机源码:

这里只贴出主函数:void main(void)
{
        unsigned int num=0,wei=0;
        unsigned char key=0;
        unsigned char state=STATE_NORMAL;
        init_sysclock();
        delay_1ms(50);
        init_dis_io();
        all_sge_light();
        delay_1ms(500);
        init_time0();
        init_key();
        
//        control_8888_flick(0x01,1);
        //select_wei(2);
        while(1)
        {
                key=GetKeycode();        
                //select_wei(key);
               
                switch (state)
                {
                        case STATE_NORMAL:
                        if(flig_200ms)
                        {
                                flig_200ms=0;                                
                                dis_time(time.hour,time.min);
                        }
                        if(key==KEY_SET)
                        {
                                set_time(key);
                                state=STATE_SET_TIME;                        
                        }

                        break;
                        
                        case STATE_SET_TIME:
                        
                                if(set_time(key)==1)
                                state=STATE_NORMAL;               

                        break;               
                        
                        default:
                        break;
                }
               
               
                if(flig_1s)
                {
                        flig_1s=0;
                        going_time();
                        
                }
                if(flig_05s)
                {
                        flig_05s=0;
                        dis_colon_flick();//unit=500ms ðoÅéá˸
                        dis_8888_flick();//unit=500ms
                }
               

                if(flig_50ms)
                {

                }

                if(flig_20ms)
                {
                        flig_20ms=0;
                        scan_key();//unit=20ms
                }

                if(flig_5ms)
                {
                        flig_5ms=0;
                        dis_4X8();//unit=5ms
                }               
        }
        
}



详细代码见附件
TM1650驱动4位共阴数码管 STC8F2K16S2直驱.rar (479.72 KB, 下载次数: 154)
TIME.rar (85.26 KB, 下载次数: 108)


评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:101726 发表于 2019-1-5 02:12 | 只看该作者
非常感谢分享 我下载了
回复

使用道具 举报

板凳
ID:345352 发表于 2019-3-10 00:25 来自手机 | 只看该作者
学习了
回复

使用道具 举报

地板
ID:476909 发表于 2019-8-11 20:56 | 只看该作者
如果用灌电流方式的话是不是可以用单片机的IO直接接数码管段位,用共阳数码管
回复

使用道具 举报

5#
ID:602352 发表于 2019-10-10 15:06 | 只看该作者
非常感谢,学习了!!!!
回复

使用道具 举报

6#
ID:640312 发表于 2020-1-3 19:29 | 只看该作者
下载学习一下,谢谢分享!
回复

使用道具 举报

7#
ID:377247 发表于 2020-5-16 20:24 | 只看该作者
非常感谢楼主您的分享!
回复

使用道具 举报

8#
ID:608007 发表于 2020-5-17 09:10 | 只看该作者
感谢楼主的分享 下载学习啦
回复

使用道具 举报

9#
ID:804011 发表于 2020-7-16 10:06 来自手机 | 只看该作者
我都下了一个就是看不到原理图
回复

使用道具 举报

10#
ID:95703 发表于 2021-3-24 09:31 | 只看该作者
一时 发表于 2019-8-11 20:56
如果用灌电流方式的话是不是可以用单片机的IO直接接数码管段位,用共阳数码管

可以,不过要注意总的电流不要超过MCU所能承受的最大值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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