课程设计 一个60秒定时器 给出电路图 详细点 好的加分

如题所述

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

void delay(uchar);

void display();

uchar numl[]={

0x3f,0x06,0x5b,0x4f,0x66,  

0x6d,0x7d,0x07,0x7f,0x6f};

uchar t0,flag;

static uint num,n0;

sbit start=P3^5;

sbit stop=P3^6;

sbit reset=P3^7;

uchar ge,shi,bai;

void main()

 EA=1;     

 TMOD=0x01;    

 ET0=1;     

 TH0=0x3c;    

 TL0=0xb6;     

while(1)

 {

 if(!start) TR0=1;     

 if(!stop)   TR0=0;

  if(flag>=2)

  {

  t0=flag*5;//单位0.01s

  flag=0;

  num+=t0;

  if(num>=6000)num=0;

  }

  if(!reset)

    num=0;

  display();

 }

 

}

void display()

{ n0=num/10;

 bai=n0/100;

 shi=(n0%100)/10;

 ge=n0%10;

 P2=numl[ge];

 P1=numl[shi];

 P0=numl[bai];

}

void timer0() interrupt 1 using 3

 flag++;

 TH0=0x3c;    

 TL0=0xaa;     

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-14

主体思路:用两片74160接成60进制计数器,将59作为进位输出端。

将CLK端接1Hz的时钟脉冲信号。

你看看行不行

本回答被提问者采纳
第2个回答  2010-01-15
有很多种方法,关键看你有什么硬件
相似回答