找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助,关于数码管内容有误,单片机程序要如何修改?

[复制链接]
跳转到指定楼层
楼主
数码管只能显示0 1 3 5,但是不显示2和4,不知道自己程序哪里出了问题,希望大家帮忙看一下程序哪一步需要修改。

单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={~0xc0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90};//数码管段选
uchar code wela[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//数码管位选
sbit beep=P2^3;
sbit switch1=P2^6;//段选LE
sbit switch2=P2^7;//位选LE
uchar x;
void delay(uint z)//unit是宏定义
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=0;y<100;y++);
            
}
void display()
{
        uchar x;
        for(x=0;x<6;++x)
        { P0=0x00;
                switch1=1;
                switch1=0;
                switch2=1;
                P0=wela[x];
                switch2=0;
                switch1=1;
                P0=table[x];
                switch1=0;
                delay(8);
                switch2=1;
        }
}
void main()
{
        beep=0;
        while(1)
        {
                display();
        }
        
}

1.png (90.56 KB, 下载次数: 35)

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

使用道具 举报

沙发
ID:415064 发表于 2022-1-25 09:06 | 只看该作者
延时哪个地方多看下
回复

使用道具 举报

板凳
ID:878061 发表于 2022-1-25 12:16 | 只看该作者
你把74HC573和DAC0832都接P0口肯定会有冲突啊
回复

使用道具 举报

地板
ID:276663 发表于 2022-1-25 14:36 | 只看该作者
去掉delay(8);下面一行的switch2 =1;这句代码
回复

使用道具 举报

5#
ID:276663 发表于 2022-1-25 14:38 | 只看该作者
程序就是多了那行代码

void display()
{
  uchar x;
  for(x=0;x<6;++x)
  {
    P0=0x00;
    switch1=1;
    switch1=0;

    switch2=1;
    P0=wela[x];
    switch2=0;

    switch1=1;
    P0=table[x];
    switch1=0;

    delay(8);
//  switch2=1;//删掉这行就行了
  }
}

51hei截图20220125143738.jpg (78.1 KB, 下载次数: 19)

51hei截图20220125143738.jpg
回复

使用道具 举报

6#
ID:625730 发表于 2022-1-25 19:09 | 只看该作者
IdeaMing 发表于 2022-1-25 14:38
程序就是多了那行代码

void display()

看懂了。本来想着为啥只有2和4显示不了,其他可以显示,原来是因为这个程序的位选在for循环尾部可以重新赋值,在显示1和3的时候,P0端口的值刚好是2和4的位选不能起作用的值。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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