请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4614|回复: 4

C51单片机程序烧入

[复制链接]

2

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2021-2-20 10:02:21 | 显示全部楼层 |阅读模式
1金钱
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA =P2^2;
sbit LSB =P2^3;
sbit LSC =P2^4;
sbit k1=P3^1;

u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};

void delay(u16 i){
while(i--);
}

void Digdisplay ()
{
   u8 i;
   for(i=0;i<8;i++)
   {
      switch(i)
          {
          case 7: LSA=0;LSB=0;LSC=00=0x00;break;
          case 0: LSA=1;LSB=0;LSC=00=smgduan[i];break;
          case 2: LSA=0;LSB=1;LSC=00=smgduan[i];break;
          case 5: LSA=1;LSB=1;LSC=00=smgduan[i];break;
          case 4: LSA=0;LSB=0;LSC=10=smgduan[i];break;
          case 6: LSA=1;LSB=0;LSC=10=smgduan[i-5];break;
          case 3: LSA=0;LSB=1;LSC=10=smgduan[i];break;
          case 1: LSA=1;LSB=1;LSC=10=smgduan[i];break;
          }
          delay(100);
          P0=0x00;
   }
}

void keypress ()
{
    if (k1==0)
        {delay(1000);
        if (k1==0){
         Digdisplay();
        }while(!k1);
        }
        }

void main()
{
  while(1)
  {
   keypress();
   }
}
为什么这段代码运行后没显示,我想用k1控制数码管显示出1314520

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有3人回答

回复

使用道具 举报

2

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2021-2-20 10:07:35 | 显示全部楼层
我尝试改代码,然而没成功
回复

使用道具 举报

2

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2021-2-20 10:44:03 | 显示全部楼层
这个问题解决了,for循环只执行了一个,没有进入死循环,while()得去掉,上面进入死循环后,下面应该是没用了(我是删掉了才有了显示,原因不清楚)
回复

使用道具 举报

3

主题

11

帖子

47

积分

新手上路

Rank: 1

积分
47
发表于 2021-3-29 02:09:05 | 显示全部楼层
你现在程序是  按键判断按下成功后,循环一次1314520,然后返回按键扫描函数,在while(!k1);这里检测是否松开按键,确认松开后返回主函数继续while死循环。 如果你想改成那种按键按一下开启显示,再按一下可以关闭显示的。建议加一个变量,变量初始值设置为1,当按键扫描函数两次判断成功后的Digdisplay();改为变量取反,然后在主函数里写一个if函数,判断变量是否等于1,如果等于则进入Digdisplay();函数。也就相当于一个标志位。
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-29 00:34 , Processed in 0.098042 second(s), 35 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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