找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机数码管制作秒表程序问题,一直不动

[复制链接]
跳转到指定楼层
楼主
以下是基于51单片机数码管制作秒表的程序,由于是刚学单片机我找不出有错误,运行起来就这样了,一直不动,求大佬帮忙找找错误。

单片机源程序如下:
#include<reg52.h>
sbit addr0=P2^2;
sbit addr1=P2^3;
sbit addr2=P2^4;
sbit addr3=P2^5;
sbit enled=P2^6;
typedef unsigned u8;
typedef unsigned u16;
u8 code ledduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f};//显示0~9的值
u16 ledwei[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char count=0;//记录中断的次数。
unsigned char i=0;//动态扫描的索引。
unsigned char fragile;//一秒定时标志。
void main()
{
unsigned long sec=0;
TMOD=0x01;
TH0=0xfc;
TL0=0x67;
TR0=1;
EA=1;
ET0=1;
addr3=1;
enled=0;
while(1)
{
   if(fragile==1)
   {
    fragile=0;
        sec++;
        ledwei[0]=ledduan[sec%10];
        ledwei[1]=ledduan[sec/10%10];
        ledwei[2]=ledduan[sec/100%10];
        ledwei[3]=ledduan[sec/1000%10];
        ledwei[4]=ledduan[sec/10000%10];
        ledwei[5]=ledduan[sec/100000%10];
        ledwei[6]=ledduan[sec/1000000%10];
        ledwei[7]=ledduan[sec/10000000%10];
        }
  }
}




//定时器中断函数//
void time() interrupt 1
{
TH0=0xfc;
TL0=0x67;
TF0=0;
count++;
if(count==1000)
{
  count=0;
  fragile=1;
  }
  //以下完成数码管的扫描//
P0=0xff;                                                                                                
switch(i)
{ case 0: addr2=0;addr1=0;addr0=0;i++;P0=ledwei[0];break;
  case 1: addr2=0;addr1=0;addr0=1;i++;P0=ledwei[1];break;
  case 2: addr2=0;addr1=1;addr0=0;i++;P0=ledwei[2];break;
  case 3: addr2=0;addr1=1;addr0=1;i++;P0=ledwei[3];break;
  case 4: addr2=1;addr1=0;addr0=0;i++;P0=ledwei[4];break;
  case 5: addr2=1;addr1=0;addr0=1;i++;P0=ledwei[5];break;
  case 6: addr2=1;addr1=1;addr0=0;i++;P0=ledwei[6];break;
  case 7: addr2=1;addr1=1;addr0=1;i=0;P0=ledwei[7];break;
  default:break;
  }
}







IMG_20200808_163706.jpg (4.01 MB, 下载次数: 61)

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

使用道具 举报

沙发
ID:332444 发表于 2020-8-8 19:31 | 只看该作者
回复

使用道具 举报

板凳
ID:213173 发表于 2020-8-8 20:45 | 只看该作者
3处错误:
u16 ledwei[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char count=0;//记录中断的次数。
//以下完成数码管的扫描//
P0=0xff;

纠正:
u8 ledwei[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};
unsigned int count=0;//记录中断的次数。
P0=0xff; //消隐
回复

使用道具 举报

地板
ID:712923 发表于 2020-8-12 11:10 | 只看该作者
wulin 发表于 2020-8-8 20:45
3处错误:
u16 ledwei[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char count=0;//记录中 ...

解决了,谢谢啊
回复

使用道具 举报

5#
ID:712923 发表于 2020-8-12 11:11 | 只看该作者
xianfajushi 发表于 2020-8-8 19:31
可参http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=188820&page=1#pid864549

解决了,谢谢啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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