当前位置: 首页 > news >正文

蓝桥杯单片机基础部分——6、555定时器

前言

NE555是一个纯硬件的设计,旦硬件电路确定了,其功能也确定了,没有可编程的部分,也没什么好去理解的地方,如果理解不了就直接背代码,这里也不是很常考,大家了解一下就可以了,知道大概怎么写有个印象就可以了

555定时器


在NE555中,有3个5K电阻分压,故称为555定时器

555定时器的基本原理:低电平触发端TRIG和高电平触发端THR:
两者电压均小于各自的参考电压时,U0= 1,放电管截止;
两者电压均大于各自的参考电压时,U0= 0,放电管导通;

在蓝桥杯单片机上面,555定时器是一个信号发生电路,通过电位器Rb3可以改变输出信号的频率。

555定时器模块在使用测频率的时候,用跳线帽将J13中的NAL与P34短接,NE555发生的信号输入到单片机的P34引脚

代码

unsigned int count_f=0;//用于频率计数
unsigned int dat_f=0;//用于频率记录
unsigned char count_t=0;//用于定时器定时void InitTimer()
{TMOD=0x16;    //高四位0001,低四位0110,定时器1做定时,16位不自动重装载;定时器0作计数,8位重装TH0=0xff;TL0=0xff;//定时器1用作定时,时间为50msTH1=(65535-50000+1)/256;TL1=(65535-50000+1)%256;ET0=1;//使能定时器0中断ET1=1;//使能定时器1中断EA=1;//使能总中断TR0=1;//开启定时器0TR1=1;//开启定时器1
}void ServiceT0() interrupt 1
{count_f++;//每有一个信号,定时器0溢出进入中断,频率计数count_f加1
}void ServiceT1() interrupt 3
{TH1=(65535-50000+1)/256;//重载定时器1计数初始值TL1=(65535-50000+1)%256;count_t++;//定时器定时加1if(count_t==20)//如果定时器1溢出20次,即50ms*20=1秒后,将count_f赋给dat_f,再将count_f,count_t清零,重新计数{dat_f=count_f;count_f=0;count_t=0;}
}

这一个模块在蓝桥杯省赛部分中并不常考,大家可以了解一下,看看有个印象,没那么重要,根据之前省赛用到过的模块来看,基本是都已经更新完了,还有一个超声波模块,那里不是很常使用,之前在省赛里面好像只考过一次,这里的更新也就告一段落。本人水平有限,所有代码都是自己的风格书写,但是大致的应该是没有什么问题,希望对大家有帮助如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论

后面会更新蓝桥杯的省题的代码,尽量全部更新出来,在蓝桥杯单片机赛题里面,如果能进国赛的话,国赛的赛题也会更新,大家一起加油吧

上一节:蓝桥杯单片机基础部分——5、DS18B20温度传感器


http://www.mrgr.cn/news/91434.html

相关文章:

  • DeepSeek V3和R1
  • C++共享指针实战
  • ls命令的全面参数解析与详尽使用指南
  • 观察者模式原理详解以及Spring源码如何使用观察者模式?
  • gcc和g++的区别以及明明函数有定义为何链接找不到
  • 3.10 企业级AI内容生成引擎:从策略到落地的全链路技术指南
  • 02.05、链表求和
  • 网络安全的态势如何以及如何解决?
  • 投资组合风险管理
  • Day48(补)【AI思考】-设计模式三大类型统一区分与记忆指南
  • Java-数据结构-(HashMap HashSet)
  • 【实用技巧】云服务器+FRP搭建自己的远程控制向日葵
  • 计算机毕业设计Python商品推荐系统 商品比价系统 电商比价系统 商品可视化(代码+LW文档+PPT+讲解视频)
  • Rust中的collections
  • 2013年下半年软件设计师上午题考察知识点及其详细解释(附真题及答案解析)
  • Leetcode2080:区间内查询数字的频率
  • 文档检测校正的重要性
  • Mycat中间件
  • 【TI C2000】F28002x的系统延时、GPIO配置及SCI(UART)串口发送、接收
  • leetcode-495.提莫攻击