找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

查看数: 1640 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-1-24 22:06

正文摘要:

数码管只能显示0 1 3 5,但是不显示2和4,不知道自己程序哪里出了问题,希望大家帮忙看一下程序哪一步需要修改。 单片机源程序如下: #include <reg52.h> #include <intrins.h> #define uint unsigned ...

回复

ID:625730 发表于 2022-1-25 19:09
IdeaMing 发表于 2022-1-25 14:38
程序就是多了那行代码

void display()

看懂了。本来想着为啥只有2和4显示不了,其他可以显示,原来是因为这个程序的位选在for循环尾部可以重新赋值,在显示1和3的时候,P0端口的值刚好是2和4的位选不能起作用的值。
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, 下载次数: 38)

51hei截图20220125143738.jpg
ID:276663 发表于 2022-1-25 14:36
去掉delay(8);下面一行的switch2 =1;这句代码
ID:878061 发表于 2022-1-25 12:16
你把74HC573和DAC0832都接P0口肯定会有冲突啊
ID:415064 发表于 2022-1-25 09:06
延时哪个地方多看下

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

Powered by 单片机教程网

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