使用时需注意将J3的SIGNAL与P34将相连接,RB3调节频率:
main.c
#include "main.h"
#include "bsp_seg.h"
unsigned int count_f = 0;
unsigned int dat_f = 0;
unsigned char cnt_f = 0;
void main()
{
P2=(P2&0X1F)|0X80; P0=0XFF; P2=(P2&0X1F)|0X00;//关闭LED
P2=(P2&0X1F)|0XA0; P0=0X00; P2=(P2&0X1F)|0X00;//关闭蜂鸣器和继电器
P2=(P2&0X1F)|0XC0; P0=0X00; P2=(P2&0X1F)|0X00;//关闭SEG
Timer_Init();
while(1)
{
display_seg();
}
}
void display_seg()
{
seg_display(1,15);
seg_display(2,16);
seg_display(3,16);
if(dat_f>9999)
seg_display(4,dat_f/10000%10);
if(dat_f>999)
seg_display(5,dat_f/1000%10);
if(dat_f>99)
seg_display(6,dat_f/100%10);
if(dat_f>9)
seg_display(7,dat_f/10%10);
seg_display(8,dat_f%10);
}
void TM0(void) interrupt 1
{
count_f++;
}
void TM1(void) interrupt 3
{
// uchar num;
cnt_f++;
if(cnt_f==20)
{
// num++;
// LED_light(num%8);
dat_f=count_f;
cnt_f=0;
count_f=0;
}
}
void Timer_Init(void) //50毫秒@12.000MHz 定时器0做计数8为自动 定时器1做计时16为自动
{
AUXR &= 0x3F; //定时器时钟12T模式 0011 1111
TMOD = 0x14; //设置定时器模式 0010 0100
TH0 = 0xff; //设置定时初值
TL0 = 0xff; //设置定时初值
TH1 = (65535-50000+1)/256; //设置定时初值
TL1 = (65535-50000+1)%256; //设置定时初值
// TF0 = 0; //清除TF0标志
// TF1 = 0; //清除TF0标志
EA = 1;
ET0 = 1;
ET1 = 1;
TR0 = 1; //定时器0开始计时
TR1 = 1; //定时器1开始计时
}
main.h
#ifndef _MAIN_H_
#define _MAIN_H_
#include <STC15F2K60S2.H>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define Y0 P2=(P2&0x1f)|0x00;
#define Y1 P2=(P2&0x1f)|0x20;
#define Y2 P2=(P2&0x1f)|0x40;
#define Y3 P2=(P2&0x1f)|0x60;
#define Y4 P2=(P2&0x1f)|0x80; //LED
#define Y5 P2=(P2&0x1f)|0xa0;
#define Y6 P2=(P2&0x1f)|0xc0; //SEG_W
#define Y7 P2=(P2&0x1f)|0xe0; //SEG_D
void Timer_Init(void); //
void display_seg();
#endif