2739|1

72

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

为什么我写电子时钟程序烧进去后乱码显示一次后就不显示了 [复制链接]

本人菜鸟一只,前一段时间突然想起用6位数码管做一个显示秒、分、钟的一个简单的电子时钟,结果弄了很久也没弄出来。现在是程序烧进去后就只是很快的乱码显示一下就不显示了。查了很久也没查出原因。
麻烦各位大侠帮我看看我的是程序哪里出了问题:

#include
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7;

uchar miao, feng, zhong, i ,zg,zs,fg,fs,mg,ms;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};

void delay(uchar j,uchar k)
{
for(j=100;j>0;j--)
        for(k=125;k>0;k--);
}
       
void display(uchar zg,uchar zs,uchar fg,uchar fs,uchar mg,uchar ms)        

        {
   duan=1;
         P0=table[zg];   //钟个位显示
         duan=0;
         
         wei=1;
         P0=0xfd;       //第一个数码管亮
         wei=0;
         delay();
               
         duan=1;
         P0=table[zs];  //钟十位显示
         duan=0;
         
         wei=1;
         P0=0xfe;   //第二个数码管亮
         wei=0;
         delay();
       
        //
         duan=1;
         P0=table[fg];   //分个位显示
         duan=0;
         
         wei=1;
         P0=0xf7;      //第三个数码管亮
         wei=0;
         delay();
               
         duan=1;
         P0=table[fs];  //分十位显示
         duan=0;
         
         wei=1;
         P0=0xfb;      //第四个数码管亮
         wei=0;
         delay();
               
       
        //
         duan=1;
         P0=table[mg];   //秒个位显示
         duan=0;
         
         wei=1;
         P0=0xdf;     //第五个数码管亮
         wei=0;
         delay();


         duan=1;
         P0=table[ms];  //秒十位显示
         duan=0;
         
         wei=1;
         P0=0xef;   //第六个数码管亮
         wei=0;
         delay();
}

        void zhongduan()interrupt 1
{
  TH0=(65536-46080)/256;
        TL0=(65536-46080)%256;
        i++;
        if(i==20)
{miao++;
        i=0;
        }
}


void mian()

{
  miao=6;
        feng=7;
        zhong=12;

        TMOD=0x01;
        TH0=(65536-46080)/256;//设50毫秒一次
        TL0=(65536-46080)%256;
       
        EA=1;
        ET0=1;
        TR0=1;
               
                while(1)
        {       
        if(miao==60)   //秒逢60进1
        {miao=0;        feng++;
        if(feng==60)
                {feng=0; zhong++;
        if(zhong==24)
        {zhong=0;}
}
                }
       
        mg=miao%10;   //秒个位
        ms=miao/10;   //秒十位
        fg=feng%10;   //分个位
        fs=feng/10;   //分十位
        zg=zhong%10;  //钟个位
        zs=zhong/10;  //钟十位
        display(zg,zs,fg,fs,mg,ms);
        }
}


此帖出自单片机论坛
点赞 关注
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
不好意思,好像发错版块了,本来要发个单片机版块里的,但我刚看了一下,好像删不了了
此帖出自单片机论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表