【蓝桥杯单片机学习】第九节 --- 555定时器采频率

使用时需注意将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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值