蓝桥杯单片机底子部分——6、555定时器

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

媒介

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


在NE555中,有3个5K电阻分压,故称为555定时器
555定时器的基本原理:低电平触发端TRIG和高电平触发端THR:
两者电压均小于各自的参考电压时,U0= 1,放电管截止;
两者电压均大于各自的参考电压时,U0= 0,放电管导通;
在蓝桥杯单片机上面,555定时器是一个信号发生电路,通过电位器Rb3可以改变输出信号的频率。
555定时器模块在使用测频率的时候,用跳线帽将J13中的NAL与P34短接,NE555发生的信号输入到单片机的P34引脚
代码

  1. unsigned int count_f=0;//用于频率计数
  2. unsigned int dat_f=0;//用于频率记录
  3. unsigned char count_t=0;//用于定时器定时
  4. void InitTimer()
  5. {
  6.         TMOD=0x16;    //高四位0001,低四位0110,定时器1做定时,16位不自动重装载;定时器0作计数,8位重装
  7.        
  8.         TH0=0xff;
  9.         TL0=0xff;
  10.        
  11.         //定时器1用作定时,时间为50ms
  12.         TH1=(65535-50000+1)/256;
  13.         TL1=(65535-50000+1)%256;
  14.        
  15.         ET0=1;//使能定时器0中断
  16.         ET1=1;//使能定时器1中断
  17.         EA=1;//使能总中断
  18.        
  19.         TR0=1;//开启定时器0
  20.         TR1=1;//开启定时器1
  21. }
  22. void ServiceT0() interrupt 1
  23. {
  24.         count_f++;//每有一个信号,定时器0溢出进入中断,频率计数count_f加1
  25. }
  26. void ServiceT1() interrupt 3
  27. {
  28.         TH1=(65535-50000+1)/256;//重载定时器1计数初始值
  29.         TL1=(65535-50000+1)%256;
  30.        
  31.         count_t++;//定时器定时加1
  32.         if(count_t==20)//如果定时器1溢出20次,即50ms*20=1秒后,将count_f赋给dat_f,再将count_f,count_t清零,重新计数
  33.         {
  34.                 dat_f=count_f;
  35.                 count_f=0;
  36.                 count_t=0;
  37.         }
  38. }
复制代码
这一个模块在蓝桥杯省赛部分中并不常考,各人可以了解一下,看看有个印象,没那么告急,根据之前省赛用到过的模块来看,基本是都已经更新完了,还有一个超声波模块,那边不是很常使用,之前在省赛内里好像只考过一次,这里的更新也就告一段落。本人水平有限,全部代码都是自己的风格书写,但是大致的应该是没有什么题目,希望对各人有帮助假如有哪里堕落大概有更好的解法可以与我私信或在品评区里进行讨论
后面会更新蓝桥杯的省题的代码,尽量全部更新出来,在蓝桥杯单片机赛题内里,假如能进国赛的话,国赛的赛题也会更新,各人一起加油吧
上一节:蓝桥杯单片机底子部分——5、DS18B20温度传感器

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表