51单片机秒表C语言程序

此程序的电路图下载:点这里  注意:只需要看数码管部分即可,其他部分可忽略掉. 程序是用c语言编写的,采用的单片机型号是stc89c52

#include <reg52.h>

  typedef unsigned char uchar8;
  typedef unsigned int uint16;
  typedef unsigned long ulong32;
  sbit ENLED = P1^4;
  sbit ADDR0 = P1^0;
  sbit ADDR1 = P1^1;
  sbit ADDR2 = P1^2;
  sbit ADDR3 = P1^3;
  uchar8 led_char[] = {
  0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90
  };
  uchar8 zifu_led[] = {
  0xff,0xff,0xff,
0xff,0xff,0xff
  };
  void main()
  {
  uchar8 cnt = 0;
uchar8 key = 0;
ulong32 sec = 0;
ADDR3 = 1; 
ENLED = 0;
TMOD = 0x01;
TH0 = 0xB7;
TL0 = 0x00;
TR0 = 1;
 while(1)
 {
 if(1 == TF0)
 {
TF0 = 0;
TH0 = 0xB7;
TL0 = 0x00;
cnt++;
if(100 = cnt)
{
cnt = 0;
sec++;
zifu_led[0] = sec%10;
zifu_led[1] = sec/10%10;
zifu_led[2] = sec/100%10;
zifu_led[3] = sec/1000%10;
zifu_led[4] = sec/10000%10;
zifu_led[5] = sec/100000%10;
}
 }
 switch(key)
 case 0:P0 = 0xff;ADDR2 =0; ADDR1 = 0; ADDR0 = 0;P0 = led_char[zifu_led[0]];key++;break;
 case 1:P0 = 0xff;ADDR2 =0; ADDR1 = 0; ADDR0 = 1;P0 = led_char[zifu_led[1]];key++;break;   
 case 2:P0 = 0xff;ADDR2 =0; ADDR1 = 1; ADDR0 = 0;P0 = led_char[zifu_led[2]];key++;break;
 case 3:P0 = 0xff;ADDR2 =0; ADDR1 = 1; ADDR0 = 1;P0 = led_char[zifu_led[3]];key++;break;
 case 4:P0 = 0xff;ADDR2 =1; ADDR1 = 0; ADDR0 = 0;P0 = led_char[zifu_led[4]];key++;break;
 case 5:P0 = 0xff;ADDR2 =1; ADDR1 = 0; ADDR0 = 1;P0 = led_char[zifu_led[5]];key = 0;break;
 default:break;
}
  }
以上是51单片机秒表C语言程序的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>