找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大佬帮助看看单片机程序,右面的数码管怎么没办法正常显示?

[复制链接]
跳转到指定楼层
楼主

#include<reg51.h>
sbit shi = P3^0;  //十位位选
sbit ge = P3^1;   //个位位选

char led_mod[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管

unsigned char num = 1;    //数码管显示内容

void init_int0();
void delay(unsigned int time);
void display();         

void main()
{
    init_int0(); //中断初始化

           while(1)
    {                        
            display();  //数码管显示
    }
}

void display()
{
    shi = 0;   //显示十位
    ge = 0;
    P2 = led_mod[((num/10)%10)];    //显示十位
    delay(10);
    P2 = 0x00;   //消隐

    shi = 1;   //显示个位
    ge = 0;
    P2 = led_mod[(num%10)];    //显示个位
    delay(10);
    P2 = 0x00;  //消隐
}

void delay(unsigned int time){
        unsigned int j = 0;
        for(;time>0;time--)
                for(j=0;j<125;j++);
}

void init_int0()
{
IT0=0;       //低电平触发
   IT0=0;       //下降沿触发
   EX0=1;
   EA=1;
}

void int0_press() interrupt 0    //键控中断函数
{
    delay(10);  //延时消抖

    if((P0 & 0x0f) != 0xf0)     //检测按键是否有按下
    {
        if((P0 & 0x01) == 0x00)   //按键1按下
        {
            if(num < 99)
                num++;
        }
        if((P0 & 0x02) == 0x00)   //按键2按下
        {
            if(num > 0)
                num--;
        }
        if((P0 & 0x04) == 0x00)   //按键3按下
        {
            ;
        }
        if((P0 & 0x08) == 0x00)   //按键4按下
        {
            ;
        }
    }
}

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

使用道具 举报

沙发
ID:867594 发表于 2020-12-28 23:00 | 只看该作者
左边数码管是用P2口驱动的,右边数码管是用P1口驱动的,你的显示函数里面
void display()
{
    shi = 0;   //显示十位
    ge = 0;
    P2 = led_mod[((num/10)%10)];    //显示十位
    delay(10);
    P2 = 0x00;   //消隐

    shi = 1;   //显示个位
    ge = 0;
    P2 = led_mod[(num%10)];    //显示个位
    delay(10);
    P2 = 0x00;  //消隐
}

这个只有P2口的显示,没有P1口
回复

使用道具 举报

板凳
ID:65956 发表于 2020-12-29 08:18 | 只看该作者
你的显示程序就没有P1这边数码管的驱动显示功能,所以当然不会显示,复制一份显示驱动,把P2改为P1,然再显示调用两组的就可以了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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