产品选型

单片机 测量 脉冲宽度 定时器计数器综合应用实例讲解

小编 2025-06-18 产品选型 23 0

定时器计数器综合应用实例讲解

【例1】 编写定时器T0产生1秒的定时程序,通过P1.0口输出高、低电平均为1s的方波(假设单片机采用12MHz的晶振)。

分析如下:

12MHz的晶振,机器周期为1us,各种工作方式直接定时的最大定时时间分别为:

方式0: 2 13 =8192us=8.192ms

方式1: 2 16 =65536us=65.536ms

方式2、3: 2 8 =256us

编程思路:

任何一种方式都无法直接实现1s的定时,可以考虑采用方式1实现50ms定时中断,设置一变量对中断的次数进行计数,计数到20时即为1秒。

c语言源程序如下:

【例2】 脉冲宽度的检测:要求对外部输入的高电平脉冲持续的时间进行检测,即检测高电平脉冲宽度,将检测的脉宽以微秒为单位显示在数码管上(假设单片机的晶振频率为12MHz)。

脉宽检测系统电路如图5-8所示。

图5-8 脉冲宽度检测系统电路图

分析如下:

TMOD的GATE位为门控位,当GATE置1时,只有当对应的外部中断引脚

为1,且TRn置1时,定时器n才会启动定时(n=0或1)。利用该特点,可以检测

口脉冲高电平持续的时间,在信号的上升沿启动定时器,下降沿停止定时器。

在本实例中,采用T0的方式1定时功能对脉冲宽度进行测量,直接测量的最大值为65535,如果晶振为12MHz,则机器周期为1us,直接可检测的最大脉冲宽度为65.535ms。如果需要检测更宽的脉冲,可对定时器0溢出的次数进行计数,将溢出次数乘以65536,来计算。将外部中断设为下降沿触发,当检测到下降沿信号时,将进入外部中断处理程序,读取定时器的数值,此数值即为脉冲信号的宽度,通过数码管(关于数码管显示的知识参见8.3节)动态扫描显示检测的脉冲宽度值。

c源程序如下:

【例3】 单片机时钟:由6个数码管的动态扫描显示分别显示小时、分钟、秒,由四个按键对时间进行调节。数据调整采用移位的方式,根据移位键触发的次数去调节不同的时间对象,加1、减1键分别对时间进行加1和减1调整,清零键将时间清零。

单片机时钟系统电路如图5-9所示。

分析如下:

根据题目的功能要求,系统主要包括数码管动态扫描显示程序、按键检测调时程序、时间产生程序、系统初始化等程序模块。

➢ 时间产生的思路 :由定时器产生50毫秒定时中断,中断20次为1秒,当秒加到60时,秒清零,分钟加1,当分钟加到60分时,分钟清零,小时加1,当小时加到24时,小时清零。

➢ 按键检测调时思路 :设置时间变量setNum对移位按键的次数进行记录,默认为0,不进入调时状态,随着移位按键的触发,setNum值加1,程序根据setNum的值分别处于调节秒、分钟、小时状态,当setNum加到4时回到0。

➢ 数码管动态扫描显示思路 :将秒、分、时时间分别拆分出个位和十位数,通过查询数字显示的代码表,送至P0口,通过P2.0~P2.5动态扫描驱动对应的数码管显示。

图5-9 单片机时钟系统电路图

c源程序如下:

【例4】 单片机频率计:将外部脉冲从P3.5口输入,利用利用单片机的定时/计数器功能,计算脉冲频率并将频率值通过数码管进行显示。

频率计系统电路如图5-10所示。

分析如下:

频率是周期的倒数,即每秒钟产生的周期信号的个数。根据频率的定义,充分的利用单片机的定时/计数器资源,由定时器0实现1秒定时,定时器1则对外部脉冲个数进行计数,这样1秒钟内所计的脉冲个数即为输入信号的频率。

编程说明:

在8051单片机中有两个16位的定时/计数器,分别为T0和T1,在这里设置T0为工作方式1定时,T1为工作方式1计数,则TMOD=0x51。

计数脉冲由单片机的P3.5口输入,利用定时器0产生50毫秒定时,定时中断20次即为1秒钟,将单片机定时器1设为计数模式,由P3.5(T1)口输入外部计数脉冲,在1秒钟计数的脉冲信号数即为所测信号的频率,然后由数码管动态扫描显示对应的频率值。

图5-10 频率及系统电路图

c源程序如下:

单片机功能——PWM脉冲宽度调制

夏天在户外没有空调的庇护,小风扇就成了我们纳凉的重要工具。热了就把风速调大、凉了就把风扇的风速调小,总的来说风速得跟着体感舒适度走。小风扇的转速控制是利用PWM控制来调节,PWM驱动信号施加到连接至风扇的高侧或低侧的场效应晶体管(field-effect transistor,FET) 上。在特定频率k开关风扇,通过PWM信号的占空比(duty cycle)来控制风扇转速。

而这里说的小风扇风速控制就涉及到了接下来我们要说的单片机知识点——PWM脉冲宽度调制。

PWM是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

PWM脉冲宽度调制具有两个非常重要的参数:频率和占空比。频率和周期是互为倒数的,占空比是指一个周期内高电平所占的比例。PWM信号就是根据需求调节占空比的大小以实现负载端电压的线性变化。

PWM的优点之一是从处理器到控制系统的信号是数字形式的,并且不需要数模转换。只有当噪声强度足以将逻辑1转换为逻辑0或逻辑0转换为逻辑1时,噪声也会影响数字信号。

抗噪声能力的提高是PWM相对于模拟控制的另一个优点,也是PWM在某些时候用于通信的主要原因。从模拟信号切换到PWM可以大大延长通信距离。在接收端,通过适当的RC或LC网络将调制后的高频方波滤除,信号恢复为模拟形式。

芯海的CSU38F20H芯片中带有3路PWM输出,一路互补PWM输出,可适用于个人护理、电池管理、消防标志灯等领域。

相关问答

单片机 计数 脉冲 电压大小?

编码器可以不用5V的电压,但用12V或者24V电源时,输出的脉冲电压应该也在12V或者24V大小,如果直接接单片机I/O口,毫无疑问会损坏单片机。简单的办法就是搭一个...

51 单片机 如何用计数器检测 脉冲 信号(高低电平),程序怎样做!没...

可以利用51单片机的计数器T0、T1,例如用计数器0的外部计数脉冲输入端T0计数,当计满100个脉冲数量后,触发中断。进入计数服务中断程序。计数原理:例如:可以用...

怎么样用 单片机 设计一个频率计用来 测量 人发出的声音频率最好...

[最佳回答]人发声有个声音频域.首先要进行处理选出主频,然后进行单片机处理,单位时间计脉冲,阿里旺旺联系北理科技人发声有个声音频域.首先要进行处理选出主...

肿么用C语言编写51 单片机 测脉宽的程序~ 跪求完整程序!-ZOL问答

while(pulse);//等待脉冲变低TR0=0;//关闭定时器0pulse=TH0*256+TL0;//取...int16t,a;int8b;//电平宽度变化控制变量,控制电平...

怎么 测量 pwm信号?

要测量PWM信号,可以使用示波器或者逻辑分析仪。示波器可以显示信号的波形和频率,可以测量占空比和周期。逻辑分析仪可以捕捉和分析数字信号,可以测量PWM信号的...

单片机 试题1.系列指令中,哪个寻址方式是对源操作数的寄存器...

A.MOVA,#30HB.MOVA,#30HC.MOVA,R0D.MOVA,@R02.MCS-51单片机的最小时序定时单位是()。A.状态B.拍C.机器周期...

单片机 是怎么通过pwm波来控制电机运转的,工作原理是什么?

PWM的英文全称是PulseWidthModulation的缩写,翻译成中文就是脉冲宽度调制,PWM是一种利用数字输出来对模拟电路进行控制的技术,它的实质就是使用数字信号...

单片机 计数输入端最高 脉冲 频率是多少? - 婷小猫_5763E181 的...

外部脉冲的变化必须要比51单片机采样的速度慢才行,否则会丢失计数脉冲的个数。1分析:51单片机在每个机器周期的S5P2对计数端点脉冲进行采样,需...

mc-10 脉冲 控制器工作原理?

脉冲控制仪核心控制由单片机实行,实现按键参数设定、数码显示及循环间隔、脉冲间隔和脉冲宽度控制。各输出端输出控制电磁脉冲阀的开启,喷吹压缩空气清灰,同时...

单片机 pwm口怎么定义?

分两点讨论:1.PWM脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有...

猜你喜欢