蓝桥杯单片机之模块代码《35定时器测量频率》

过往历程

历程1:秒表

历程2:按键显示时钟

历程3:列矩阵按键显示时钟

历程4:行矩阵按键显示时钟

历程5:新DS1302

历程6:小数点精确后两位ds18b20



前期准备

1:本文使用的头文件是由stc生成
在这里插入图片描述
点击保存文件之后,保存至自己文件目录下方即可
在这里插入图片描述
2:本文使用的都是官方提供的底层驱动代码
在这里插入图片描述

35定时器介绍

555,全称“通用单双极型定时器”(General-purpose Single Bipolar Timer),意思是555的一个芯片中包含一个(单)用三极管做成的(双极型)定时器。它在外接一个电阻和一个电容后,能够精确地实现延时功能。利用这个功能我们可以实现很多种电路,最常用的有三种:

  • 无稳态电路
  • 单稳态电路
  • 双稳态电路

引脚图

在这里插入图片描述

  • 引脚1:GND(地),接地,作为低电平(0v)参考点。
  • 引脚2:TRIG(触发),当此引脚电压降至1/3VCC(或由控制端决定的阈值电压)时,输出端给出高电平。也作为下比较器的反向输入端,即触发输入端。
  • 引脚3:OUT(输出),输出高电平(+VCC)或低电平。
  • 引脚4:RST(复位),当此引脚接高电平时定时器工作,当此引脚接地时芯片复位,输出低电平。不用时应接高电平或悬空。
  • 引脚5:CTRL(控制),控制芯片的阈值电压。当此引脚外接电压时,可改变内部两个比较器的基准电压,该端不用时,应将该端串入一只0.01uF电容接地,以防引入干扰。若此管脚接空时默认两阈值电压为1/3VCC与2/3VCC。
  • 引脚6:THR(阈值),是上比较器的同相输入端。当此引脚电压升至2/3VCC (或由控制端决定的阈值电压)时,输出端给出低电平。该端与放电管集电极相连,用做定时器时电容的放电。
  • 引脚7:DIS(放电),内接OC门,用于给电容放电。
  • 引脚8:V+,VCC(供电),提供高电平并给芯片供电,双极型时基电路VCC的范围是4.5 ~ 16V。

总代码

#include<stc15f2k.h>
char dula[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
char disdula[]={0,0,0,0,0,0,0,0};
int diswela;
int a,con,hz;
void buzz()
{
	P2=((P2&0x1f)|0xa0);
	P0=0x00;
	P2&=0x1f;
	
	P2=((P2&0x1f)|0x80);
	P0=0xff;
	P2&=0x1f;
}

void din()
{
	TMOD=0x16; // 定时器1定时,定时器0计数 0001 0110
	TH1=(65536-11059/12)/256;
	TL1=(65536-11059/12)%256;
	TH0=0XFF;
	TL0=0XFF;
	EA=1;
	ET1=1;
	ET0=1;
	TR1=1;
	TR0=1;
}

void display()
{
	P2=((P2&0x1f)|0xe0);
	P0=0xff;
	P2&=0x1f;
	
	P2=((P2&0x1f)|0xc0);
	P0=1<<diswela;
	P2&=0x1f;
	
	P2=((P2&0x1f)|0xe0);
	P0=dula[disdula[diswela]];
	P2&=0x1f;
	
	if(++diswela>=8)diswela=0;
}

void display_1()
{
	disdula[0]=con/10000%10;
	disdula[1]=con/1000%10;
	disdula[2]=con/100%10;
	disdula[3]=con/10%10;
	disdula[4]=con/1%10;
	disdula[5]=11;
	disdula[6]=11;
	disdula[7]=11;
}

void main()
{
	buzz();
	din();
	while(1)
	{
		display_1();
	}
}


void aq() interrupt 1
{
	hz++;
}

void qa() interrupt 3
{
	TH1=(65536-11059/12)/256;
	TL1=(65536-11059/12)%256;
	display();
	a++;
	if(a==1000)
	{
		con=hz;
		a=0;
		hz=0;
	}
}

省赛代码传送门

第三届蓝桥杯单片机省赛
第四届蓝桥杯单片机省赛
第五届蓝桥杯单片机省赛
第六届蓝桥杯单片机省赛
第七届蓝桥杯单片机省赛
第八届蓝桥杯单片机省赛
第九届蓝桥杯单片机省赛
第十届蓝桥杯单片机省赛
第十一届蓝桥杯单片机省赛

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值