找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求解数码管显示问题。

[复制链接]
跳转到指定楼层
楼主
ID:1017989 发表于 2022-8-18 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include"public.h"
#include"smg.h"


void main()
{       
        uchar temp_buff[1];
        while(1)
        {
        temp_buff[0]=0x5b;
        led_display_bit(temp_buff[0],2);
        }
}

以下为数码管刷新程序
void led_display_bit(uchar local,uchar num[])
{
                uchar i;
                uchar a=0;
                   switch(local-1)//位选
                {
                        case 0: A0=1;A1=1;A2=1; break;
                        case 1: A0=0;A1=1;A2=1; break;
                        case 2: A0=1;A1=0;A2=1; break;
                        case 3: A0=0;A1=0;A2=1; break;
                        case 4: A0=1;A1=1;A2=0; break;
                        case 5: A0=0;A1=1;A2=0; break;
                        case 6: A0=1;A1=0;A2=0; break;
                        case 7: A0=0;A1=0;A2=0; break;       
                }
                segment_port=num[a];
                delay_while(100);                        //延时一段时间,等待显示稳定
                segment_port=0x00;                 //消影
}


以上程序编译后,数码管不显示。主要目的是想,给一个段码数据,在指定的数码管上显示

求高手 指点  谢谢谢谢谢谢谢谢

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

使用道具 举报

沙发
ID:1023753 发表于 2022-8-20 07:40 | 只看该作者
显示一次,没有循环扫描
回复

使用道具 举报

板凳
ID:451718 发表于 2022-8-20 11:43 | 只看该作者
你这位选是硬件通过38译码来工作的吧,但是你位选函数的形参 0x5b 这个值是怎么来的? 在switch case 的范围内么?   你都没有选中段码,如何刷新?
回复

使用道具 举报

地板
ID:883242 发表于 2022-8-20 15:53 | 只看该作者
switch(local-1)
改成
switch((local-1)&7)
试试
回复

使用道具 举报

5#
ID:123289 发表于 2022-8-20 17:05 | 只看该作者
建议走单步调试看看,在哪里明、暗。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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