站点首页  |  产品中心 视频软件  |  下项目开发  |  学习单片机  |  购物指南  |  发货信息  |  进入淘宝店  |  联系我们  |

您现在位于: 云龙电子 → 源码下载

 

59秒计数器

-------------------------------------------------------------------------------------------------------------------------------------

 

[实验要求]

   使用软件延时的方法实现0-59秒自动计数器,用数码管的前两位显示出来。

[实验目的]

   练习进位操作,数码管动态显示。

[硬件电路]

[源代码]

//59秒自动计数器

#include<reg51.h>

#define uchar unsigned char

uchar j,k,i,a,A1,A2,second;

sbit dula=P2^6;

sbit wela=P2^7;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

    0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数字编码

void delay(uchar i)       //延时函数

{

  for(j=i;j>0;j--)

    for(k=125;k>0;k--);

}

void display(uchar sh_c,uchar g_c)   //显示函数

{

   dula=0;

   P0=table[sh_c];     //显示十位

   dula=1;

   dula=0;

  

   wela=0;

   P0=0xfe;

   wela=1;

   wela=0;

   delay(5);         //5ms

  

   P0=table[g_c];    //显示个位

   dula=1;

   dula=0;

  

   P0=0xfd;

   wela=1;

   wela=0;

   delay(5);          //5ms

}

 

void main()

  {

     while(1)

       {

         second++;      //秒加一

         if(second==60)   //判断是否到60

         second=0;      //如果到了则清零

         A1=second/10;  //没到则分离出十位和个位

         A2=second%10;

         for(a=50;a>0;a--)  //显示部分。至于时间大概是多少

         {                //请用户用软件仿真看时间约等于1

display(A1,A2);};//便可,如果需要精确定时请用定时器

         }

}

 

本站部分软件资料来源于网络,如有涉及版权问题,请及时联系站长删除
yunlongdz@126.com   397596891