利用定时器产生方波并通过中断调节方波频率

要求:从P1^0口输出50Hz的方波,并通过S1,S2调整方波的频率。按下S1 频率以1Hz为单位增大,按下S2 频率以1Hz为单位减小。

 (代码仅进行过初步验证,可能存在一定的BUG,谨慎使用)

 

#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
	
sbit Iput = P1^0;
	
//------------------------变量区------------------------

float Temp = 50;//初始频率 Hz
uint F ;//周期
float a=0;//中间变量

//------------------------函数区------------------------
void Delay(uint t)//延时函数
{
	while(t--);
}

void Init_ET_0()//定时器初始话函数 50ms
{
	F = a*500000;//将周期值换算成微秒并除二
	TMOD = 0x01;//定时器0 工作方式 1
	EA  = 1;    //开总中断
	ET0 = 1;   //开定时器开关
	TR0 = 1;   //启动定时器
	TH0 = (65536 - F)/256;  //给高八位赋初值
	TL0 = (65536 - F)%256;  //给低八位赋初值
	
  //---------------------外部中断配置-------------------------
	
	EX0 = 1;
	EX1 = 1;
	IT0 = 1;
	IT1 = 1;
}

void Servoic_ET_0() interrupt 1   //定时器服务函数
{
	F = a*500000;//将周期值换算成微秒并除二
	TH0 = (65536 - F)/256;   //重装高八位
	TL0 = (65536 - F)%256;   //重装低八位
	Iput = ~Iput;
}

void Servoic_EX_0() interrupt 0   //外中断0
{
	EX0 = 0;
	Delay(100);
	EX0 = 1;     //消抖处理
	
	Temp = Temp++;//频率加一
}

void Servoic_EX_1() interrupt 2   //外中断1
{
	EX1 = 0;
	Delay(100);
	EX1 = 1;
	Temp = Temp--;//频率减一
}

void main()
{
	Init_ET_0();//定时器0初始化
	while(1)
	{
		a = 1/Temp;//不断更新周期值
	}
}

 

           仿真图如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qSw5ZWK5qSw5ZOm,size_20,color_FFFFFF,t_70,g_se,x_16

 

        都看到这了给个赞支持一下呗🤔🤔

 

 

 

 

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要用Multisim软件设计一个1Hz方波,可以使用555定时器。具体步骤如下: 1. 打开Multisim软件,选择“新建电路”。 2. 在“元件”栏中搜索“555定时器”,将其拖入工作区。 3. 连接电源和地线,将电源电压设置为5V。 4. 将一个电容连接到555定时器的引脚2和6之间,电容值为1μF。 5. 将一个电阻连接到555定时器的引脚2和7之间,电阻值为1MΩ。 6. 将一个LED连接到555定时器的引脚3和地之间。 7. 点击“仿真”按钮,运行仿真。 8. 观察LED的闪烁,可以看到1Hz的方波信号已经生成。 以上就是使用Multisim软件设计1Hz方波的具体步骤。 ### 回答2: 555定时器是一种常用于电子电路设计中的集成电路,它的输出信号可以用于产生不同频率的波形,包括1Hz的方波。下面将介绍如何使用Multisim软件设计一个1Hz的方波。 1. 打开Multisim软件,在工具箱中找到555定时器,将其添加到电路设计区域。 2. 连接器件:将555定时器的引脚连接到合适的器件,包括电源和电容器等。在本例中,我们需要连接电源和一个100uF的电容器。 3. 设置电容器值:在电容器上右键点击,选择“属性”设置电容器的电容值为100uF。 4. 设置电阻器值:连接一个10K欧的电阻器到电容器,右键点击选择“属性”设置电阻器的值为10K欧。 5. 设置定时器:在555定时器上右键点击,选择“属性”窗口,将“Trigger”设置为“低电平触发”,将“Threshold”设置为“高电平输出”,将“Control Voltage”设置为“2/3”的管脚电压。 6. 连接输出:将555定时器的引脚3连接到一个LED灯,以显示输出信号。 7. 完成电路连接后,点击电路设计工具栏上的“运行”按钮,即可观察到LED灯按1Hz频率闪烁的方波信号。 总之,使用Multisim软件设计一个1Hz的方波非常简单。只需连接555定时器、电容器、电阻器和LED灯等器件,并在定时器中正确设置触发、阈值和控制电压等参数即可。同时,我们还可以通过改变电容器和电阻器的值,调整方波频率。 ### 回答3: Multisim是一款电路仿真软件,可以用于设计和测试各种电路。555定时器是经典的计时和脉冲发生器,常用于数字电路和模拟电路中。本题的要求是使用Multisim555定时器制作1hz方波。 首先,在Multisim中打开新建电路文件。从元器件库中选择555定时器,并将其放入电路板中。接下来,选择与555定时器关联的电阻和电容器以控制定时器的计时周期。根据555定时器的公式,需要在电路中使用一个1.44R * C电容器和一个1K的电阻器,其中R表示电阻器的阻值,C表示电容器的电容值,1.44是一个常数。 将电阻器和电容器与555定时器连接,使其形成一个完整的电路。接下来,需要将定时器的输出连接到示波器,以查看输出波形。在Multisim的元器件库中,选择示波器并将其放置在电路板上,将示波器的输入连接到555定时器的输出引脚上。 在Multisim中,可以通过更改电阻和电容的值来调整定时器产生脉冲的频率。在本题中,需要产生1hz的方波。根据555定时器的公式,当电容的值为1µF时,需要一个1000-ohm电阻器才能产生1hz的方波。将这些值输入到Multisim中,仿真定时器的运行并查看输出波形。 最后,检查输出波形是否为1hz的方波,确保电路设计正确。也可以尝试更改电容或电阻的值,观察定时器的输出频率是否发生变化,并对实验结果和Multisim仿真结果进行比较和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值