7.20

姓名:    尤嘉慧                  日期:  7.20

今日学习任务

设计一个电子秒表,用按键控制,暂停,继续,开始,清空。

今日任务完成情况

代码实现的功能不够完善

 

今日开发中出现的问题汇总

实现清零功能后无法再继续读秒

今日未解决问题

今日开发收获
学习了如何设计一个电子秒表,用按键控制,暂停,继续,开始,清空。

 

自我评价

 基础差,但有认真尽力去完成任务。

其它

代码:

#include<reg51.h>

int flag=0,display_flag=0;

sbit s2=P3^0;
sbit s3=P3^1;
sbit s4=P3^2;

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

void display(int m,int n)
{
    if(display_flag%6==0)
    {
        P0=0xfe;
        P1=table[m/1000];
    }
    else if(display_flag%6==1)
    {
        P0=0xfd;
        P1=table[m/100%10];
    }
    else if(display_flag%6==2)
    {
        P0=0xfb;
        P1=table[m/10%10];
    }
    else if(display_flag%6==3)
    {
        P0=0xf7;
        P1=table[m%10];
    }
    else if(display_flag%6==4)
    {
        P0=0xef;
        P1=table[n/10];
    }
    else if(display_flag%6==5)
    {
        P0=0xdf;
        P1=table[n%10];
    }
}                
int main()
{
    int miao=0,num=0;
    EA=1;   //打开总中断
    ET0=1;  //打开定时器0中断
    EX0=1;
    EX1=1;
    TMOD=0x01;    //设置定时器0工作方式
    TH0=(65535-1000)/256;  //高八位    
    TL0=(65535-1000)%256;  //低八位
    //TR0=1;  //启动定时器
    while(1)
    {    
        if(s2==0)
            {
                TR0=1;
            }                    
        if(flag==1)
        {
            num++;
                if(num==100)
                {
                    miao++;
                    num=0;
                    if(miao==10)
                    {
                        num=0;
                    }
                }     
            flag=0;
        }
        if(s3==0)
        {
            TR0=0;
        }
        if(s4==0)
        {
            TR0=0,miao=0,num=0;
        }
        display(miao,num);
    }
    return 0;
}               
void timer_0() interrupt 1    //中断处理函数(代码尽量少,效率高)
{
    //重装初值
    TH0=(65535-1000)/256;  //高八位
    TL0=(65535-1000)%256;  //低八位
    flag++;
    display_flag++;

void inter_1() interrupt 2     //外部中断1处理函数
{
    P0=0xff;
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值