生产实训日报(10)

姓名:曹佳鑫   日期:6 月 29 号

今日学习任务:课设:电子秒表。

今日任务完成情况:课设的100%。

今日开发中遇到的问题汇总:按下停止按键的时候,不能显示所有的数据,只能显示一个。

今日未解决的问题:无

今日开发收获:再加一个定时器,就可以解决问题。

自我评价:一般

课件代码

#include <reg51.h>
sbit button1 = P3^0;
sbit button2 = P3^1;
sbit button3 = P3^2;
unsigned char code table_duan[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 
0x6f, 0x77, 0x7c};
int flag = 0;
int sec;
unsigned int time = 0;
void display(int num,int num1)
{
int ge, shi,ge1,shi1;
ge = num % 10;
shi = num / 10;
ge1 = num1 % 10;
shi1 =num1/10;

if (time % 4 == 1)    //
{
P0 = 0xf7;
P2= table_duan[ge];
}
else if(time % 4 ==2)
{
P0 = 0xfb;
P2 = table_duan[shi];
}
else if(time % 4 ==3)
{
P0 = 0xfd;
P2 = table_duan[ge1];
}
else
{
P0 = 0xfe;
P2 = table_duan[shi1];
}
}

int main()
{
int tmp = -1;
EA = 1;
ET0 = 1;
ET1 = 1;
TMOD = 0x11;
TH0 = (65535 - 10000) / 256;
TL0 = (65535 - 10000) % 256;
TH1 = (65535 - 5000) / 256;
TL1 = (65535 - 5000) % 256;
TR0 = 0;
TR1 = 1;


while (1)
{
if(button1 == 0)
{

TR0 = 1;

}

if(button2 == 0)
{
TR0 = 0;

}


if(button3 == 0)
{

TR0 = 0;
flag = 0;
 sec =0;
}

                if (flag == 99)

{
flag = 0;
sec ++;
}

              if(sec >=60)

{

                    sec =0;

                    display(flag,sec);

}
return 0;
}


void timer_0() interrupt 1  
TH0 = (65535 - 10000) / 256;
TL0 = (65535 - 10000) % 256;

flag++;
}


void timer_1() interrupt 3 
TH1 = (65535 - 5000) / 256;
TL1 = (65535 - 5000) % 256;

time++;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值