蓝桥杯单片机-NE555模块

本文介绍了蓝桥杯中NE555模块的应用,主要功能是输出频率可调的方波,通过电位器调节频率。在开发板上,利用定时器的计数模式来测量NE555产生的频率,并详细说明了如何配置定时器0和定时器1以计算脉冲频率。注意事项包括数据的显示范围和TMOD设置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

1、NE555在开发板中用于输出频率可变,占空比不变的方波。

2、NE555是纯硬件的设计,通过电位器RB3可改变其信号输出频率。不需要编程实现其功能。

        考点:使用定时器的计数模式测量NE555输出的频率

3、开发板上电路

      33127825ace673fba527f1015bf17ea8.png

NET SIG即接P34(P34可以作为定时器/计数器0的外部输口)

 

 

二、应用

考点:使用定时器的计数模式测量NE555输出的频率

实现:

1、定时器0的计数模式计脉冲的个数。

使用STC-ISP软件生成函数后,修改TMOD,TR0

void Timer0Init(void)		//0秒@12.000MHz
{
	AUXR |= 0x80;		//定时器时钟1T模式
    TMOD |= 0x05;       //0x04 0x05都可
	TL0 = 0x00;		    //设置定时初始值
	TH0 = 0x00;		    //设置定时初始值
	TF0 = 0;	    	//清除TF0标志
	TR0 = 0;		          
}

2、定时器1定时1s,处理脉冲的个数,得到脉冲频率。

记得允许定时器1中断和允许总中断

void Timer1Init(void)		//1毫秒@12.000MHz
{
	AUXR |= 0x40;		//定时器时钟1T模式
	TMOD &= 0x0F;		//设置定时器模式
	TL1 = 0x20;		//设置定时初始值
	TH1 = 0xD1;		//设置定时初始值
	TF1 = 0;		//清除TF1标志
	TR1 = 1;		//定时器1开始计时

    ET1 = 1;        //开启定时器中断  
    EA = 1;         //开启总中断
}

void TIME1() interrupt 3
{
	value++;
	if(value==500)
	{
		TR0 = 0;
		value=0;
		fre=TH0<<8;
		fre+=TL0;
		TH0=0;
		TL0=0;
		TR0=1;
	}
}

设置完后记得初始化

 

NOTES:

1、数据提取(NE555输出频率的范围为500Hz-20000Hz,故需要5个数码管进行显示)

void Display_fre()
{
	SMG_Display(0,15);
	if(fre>9999)SMG_Display(3,fre/10000);
	if(fre>999)SMG_Display(4,fre/1000%10);
	if(fre>99)SMG_Display(5,fre/100%10);
	if(fre>9)SMG_Display(6,fre/10%10);
	if(fre>0)SMG_Display(7,fre%10);
}

2、设置TMOD时,先后的赋值方式

TMOD = 0x04;       //设置定时器0计数器模式	
TMOD &= 0x0f;      //设置定时器1 16位自动重装载模式

由stc15的库文件中可以看到,TMOD的复位值为0000,0000
故TMOD &= 0x04; 是无效的赋值方式    可以TMOD = 0x04;   或TMOD |= 0x04;   

(stc15.h    ↓ ↓ ↓ ↓)

a59fb4b99c0c90416cc3fa795e95eb02.png

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值