标题: 基于51单片机的60计时,文档中分别采用了两种书写方式实现计时,内有仿真加程序 [打印本页]

作者: 476阿飞    时间: 2017-6-30 15:21
标题: 基于51单片机的60计时,文档中分别采用了两种书写方式实现计时,内有仿真加程序
本帖最后由 476阿飞 于 2017-6-30 15:25 编辑

仿真:


部分程序:
        /*查询方式实现59S计时*/
/*#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,         0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极0~F的段码
uchar data_I,data_H;                //计数值低,高位
uchar t,a;
void delay(uint k)                //延时约0.1ms
{
uint m,n;                for(m=0;m<k;m++)
for(n=0;n<120;n++);         }
void display(void)
{                 P2=0x01;                P0=tab[data_H];                delay(1);
P2=0x02;                P0=tab[data_L];                delay(1);         }
void Timer0(void)          //50ms定时
{                 if(TF0==1)                {                        t++;                        TH0=0x3c;
TL0=0xb0;                        TF0=0;                }         }
void data_tim(void)        //59s计时
{                 Timer0();                if(t==20)                {                        a++;                        t=0;                        if(a==60)                        a=0;                }         }
void data_in(void)         {                 data_L=a%10;                data_H=a/10;         }
void T0_init(void)                //T0初始化
{                 TMOD=0x01;                TH0=0x3c;                TL0=0xb0;                ET0=0;                        //不允许T0中断
TR0=1;                        //启动T0
EA=1;         }
void main(void)
{                 a=0;
T0_init();
while(1)
{                        data_tim();
data_in();
display();                }         }





59计时.rar

32.48 KB, 下载次数: 5, 下载积分: 黑币 -5

仿真和程序,适合初学者






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1