找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机数码管闪烁 总有一个比其他微微亮

[复制链接]
跳转到指定楼层
楼主
ID:1113963 发表于 2024-4-5 22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是数码管显示界面,数码管出现闪烁,总有一个比其他微微亮,求助求助
这是为什么呢,问题在哪里?



void Delay600us(void)        //@12.000MHz
{
        unsigned char data i, j;

        i = 7;
        j = 254;
        do
        {
                while (--j);
        } while (--i);
}
void single_SMG(unsigned char pos,unsigned char dat)
{

         select_channel(6);
         P0=0x01<<pos;
         select_channel(7);
         P0=dat;
         Delay600us();                    //找到最合适的参数  两个都是1ms
   select_channel(6);
         P0=0xff;
         select_channel(7);
         P0=0xff;
         Delay600us();

}
//***************************************************


//**************************************************8                       

void SMG_display()
{
        
        switch(stat)
        {
                case 1:                                   //时间界面
                   single_SMG(7,SMG_nodot[time[0]%16]);
                  
                  single_SMG(6,SMG_nodot[time[0]/16]);
                  
                  single_SMG(5,0xbf);
                  
                  single_SMG(4,SMG_nodot[time[1]%16]);
                  
                  single_SMG(3,SMG_nodot[time[1]/16]);
                  
                        single_SMG(2,0xbf);
                  
                  single_SMG(1,SMG_nodot[time[2]%16]);
                  
                  single_SMG(0,SMG_nodot[time[2]/16]);
                  select_channel(6);
            P0=0xff;
            select_channel(7);
            P0=0xff;
                  
                        
                break;
                case 2:                                       //回显温度界面
                        
                        if(action_n==0)
                        {
                                single_SMG(7,0xff);
                    
                    single_SMG(6,0xff);
                    
                    single_SMG(5,0xff);
                    
                    single_SMG(4,0xff);
                    
                    single_SMG(3,0xff);
                    
                          single_SMG(2,0xff);
                    
                    single_SMG(1,0xff);
                    
                    single_SMG(0,SMG_nodot[12]);             //C
                    

                        }
                        else
                        {
                                single_SMG(7,SMG_nodot[temper_aver%10]);
                    
                    single_SMG(6,SMG_dot[(temper_aver%100)/10]);
              
                                single_SMG(5,SMG_nodot[(temper_aver/100)]);
                    
                    single_SMG(4,0xbf);
                    
                    single_SMG(3,SMG_nodot[temper_max%10]);
                    
                          single_SMG(2,SMG_nodot[temper_max%100/10]);
                    
                    single_SMG(1,0xff);
                    
                    single_SMG(0,SMG_nodot[12]);
                    

                        }
                        
                break;

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

使用道具 举报

沙发
ID:366877 发表于 2024-4-6 21:25 | 只看该作者
没有硬件电路说明,怎么分析?
回复

使用道具 举报

板凳
ID:276663 发表于 2024-4-7 09:10 | 只看该作者
主函数都没有,这程序能跑就很厉害了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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