找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 987|回复: 0
收起左侧

Proteus仿真 具有清零功能秒表相关

[复制链接]
ID:893765 发表于 2021-6-17 11:19 | 显示全部楼层 |阅读模式
仿真图如下 不知道为什么没法+1和清零
代码如下
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit K9=P2^4;
sbit K10=P2^5;
sbit K11=P2^6;
uchar code segtab[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xbf};
uchar dbuf[4]={0,0,0,0x10};

void delay(void)
{   uchar i;
    for(i=0;i<200;i++);
}
void disp(void)
{  uchar n,bsel;
   bsel=0x01;
   for(n=0;n<4;n++)
   {   P0=segtab[dbuf[n]];
       P2=bsel|0xf0;
       bsel=_crol_(bsel,1);
       delay();
       P0=0xff;
   }
}
void main(void)
{   uchar i;
    int count=0;
    unsigned int t;
    while(1)
    {disp();
    if((P2&0x30)!=0x30)
    {  for(i=0;i<10;i++)disp();
        if((P2&0x30)!=0x30)
        {   if(K9==0)
            {  count++;
               if(count>999)count=-999;
            }
       if(K10==0)
       {   count--;
       if(count<-999)count=999;
       }
                         else
                                 count=0;
       if(count>=0)
       {    dbuf[3]=0x10;
            t=count;
       }
       else
       { dbuf[3]=0x11;
            t=-count;
       }
       dbuf[2]=t/100;
       dbuf[1]=(t%100)/10;
       dbuf[0]=t%10;
       while((P2&0x30)!=0x30)disp();
    }
    }
    }
}
计数器.jpg
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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