文档库 最新最全的文档下载
当前位置:文档库 › pto pwm驱动模块

pto pwm驱动模块

pto pwm驱动模块
pto pwm驱动模块

一.脉冲输出(PLS)指令被用于控制在高速输入(Q0.0和Q0.1)中提供的"脉冲串输出"(PTO)和"脉宽调制"(PWM)功能。PTO提供方波(50%占空比)输出,配备周期和脉冲数用户控制功能。

PWM提供连续性变量占空比输出,配备周期和脉宽用户控制功能。脉冲输出范围Q0.0至Q0.1特殊内存PTO / PWM高速输出寄存器

识别S7-200高速输出指令

S7-200有两台PTO/PWM发生器,建立高速脉冲串或脉宽调节信号信号波形。一台发生器指定给数字输出点Q0.0,另一台发生器指定给数字输出点Q0.1

。一个指定的特殊内存(SM)位置为每台发生器存储以下数据:一个控制字节(8位值)、一个脉冲计数值(一个不带符号的32位值)和一个周期和脉宽值(一个不带符号的16位值)。

PTO/PWM发生器和过程映像寄存器共用Q0.0和Q0.1。PTO或PWM功能在Q0.0或Q0.1位置现用时,PTO/PWM发生器控制输出,并禁止输出点的正常使用。输出信号波形不受过程映像寄存器状态、点强迫数值、执行立即输出指令的影响。PTO/PWM发生器非现用时,输出控制转交给过程映像寄存器。过程映像寄存器决定输出信号波形的初始和最终状态,使信号波形在高位或低位开始和结束。

注释:

?在启用PTO或PWM操作之前,将用于Q0.0和Q0.1的过程映像寄存器设为0。

?所有的控制位、周期、脉宽和脉冲计数值的默认值均为0。

?PTO/PWM输出必须至少有10%的额定负载,才能完成从关闭至打开以及从打开至关闭的顺利转换。

?文档光盘"提示与技巧"中的提示7、22、23、30和50包含使用PTO/PWM操作PLS指令的程序。

脉冲串(PTO)功能提供方波(50%占空比)输出或指定的脉冲数和指定的周期。脉宽调制(PWM)功能提供带变量占空比的固定周期输出。

每台PTO/PWM发生器有一个控制字节(8位),一个周期值和脉宽值(不带符号的16位值)和一个脉冲计值(不带符号的32位值)。这些值全部存储在特殊内存(SM)区域的指定位置。一旦设置这些特殊内存位的位置,选择所需的操作后,执行脉冲输出指令(PLS)即启动操作。该指令使

S7-200读取SM位置,并为PTO/PWM发生器编程。

通过修改SM区域中(包括控制字节)要求的位置,您可以更改PTO或PWM的信号波形特征,然后执行PLS指令。

您可以在任意时间向控制字节(SM67.7或SM77.7)的PTO/PWM启用位写入零,禁用PTO或PWM信号波形的生成,然后执行PLS指令。

注释:所有控制位、周期、脉宽和脉冲计值的默认值均为零。

注释:PTO/PWM输出必须至少有10%的额定负载,才能完成从关闭至打开以及从打开至关闭的顺利转换。

PWM操作

PWM功能提供带变量占空比的固定周期输出。可以微秒或毫秒为时间基准指定周期和脉宽。

周期的范围从10微秒至65,535微秒,或从2毫秒至65,535毫秒。

脉宽时间范围从0微秒至65,535微秒或从0毫秒至65,535毫秒。

如上表所示,设置脉宽等于周期(这使占空比为100%)使输出连续运行。设置脉宽等于0(这使占空比为0%)会关闭输出。

脉宽时间/周期反应

脉宽时间>= 周期值占空比为100%:输出连续运行。

脉宽时间= 0 占空比为0%:输出关闭。

周期< 2个时间单位周期的默认值为两个时间单位。

有两种不同的方法可改变PWM信号波形的特征:同步更新和异步更新。

?同步更新:如果不要求更改,即可以执行同步更新。执行同步更新时,信号波形特征的变化发

生在循环边缘,提供顺利转换。

?异步更新:此为常见的PWM操作,脉宽不同,但周期保持不变。因此,不要求改变。但是,如果要求改变PTO/PWM发生器的,则应使用异步更新。异步更新使PTO/PWM发生器被立即禁用,与PWM信号波形异步。这样可能造成控制设备状态暂时不稳。由于此一原因,建议使用同步

PWM更新。选择可用于所有预计周期数值的。

控制字节中的PWM更新方法位(SM67.4或SM77.4)指定更新类型,在执行PLC指令时激活改动。请注意,如果改变,则会发生异步更新,无论PWM

更新方法位的状态如何。

PTO操作

PTO为指定的脉冲数和指定的周期提供方波(50%占空比)输出。PTO可提供单脉冲串或多脉冲串(使用脉冲轮廓)。您指定脉冲数和周期(以微秒或毫秒递增)。

周期范围从10微秒至65,535微秒或从2毫秒至65,535毫秒。

脉冲计数范围从1至4,294,967,295次脉冲。

为周期指定基数微秒或毫秒(例如75毫秒)会引起占空比的失真。

下表定义脉冲计数和周期限制:

脉冲计数/周期反应

周期< 2个时间单位周期的默认值为2个时间单位。

脉冲计数= 0 脉冲计数的默认值为1次脉冲。

状态字节(SM66.7或SM76.7)中的PTO空闲位表示编程脉冲串已完成。另外,也可在脉冲串完成时激活中断例行程序。如果您使用多段操作,则在轮廓表完成时立即激活中断例行程序。请参阅以下多段管线连接。

PTO功能允许脉冲串链接或管线作业。现用脉冲串完成时,新的脉冲串输出立即开始。这样就保证了随后的输出脉冲串的连续性。

该管线作业可以两种方式中的一种完成:单段管线作业或多段管线作业。

单段管线作业

在单段管线作业中,您负责更新下一个脉冲串的SM位置。初始PTO段一旦开始,您必须按照对第二个信号波形的要求立即修改SM位置,并再次执行

PLS指令。第二个脉冲串特征被保留在管线中,直至第一个脉冲串完成。管线中每次只能存储一个条目。第一个脉冲串一旦完成,第二个信号波形输出即开始,管线可用于新的脉冲串规格。您可以重复此一步骤,设置下一个脉冲串的特征。

可在脉冲串之间平稳转换,下列情况除外:

?如果执行改动

?如果现用脉冲串在执行PLS指令捕获到新脉冲串设置之前完成

如果您在管线已满时尝试载入,状态寄存器(SM66.6或SM76.6)中的PTO溢出位被设置。进入RUN(运行)模式时,该位被初始化为0。如果您希望探测随后出现的溢出,则必须在探测到溢出之后以手动方式清除该位。

多段管线作业

在多段管线作业中,S7-200从V内存中的轮廓表自动读取每个脉冲串段的特征。该模式中的SM 位置是轮廓表的控制字节、状态字节和起始V内存偏移量(SMW 168或SMW178)。可以为微秒或毫秒,但该选项适用于轮廓表中的所有周期值,但在轮廓运行时不得变更。然后可由执行PLS指令开始多段操作。

每段输入的长度均为8个字节,由一个16位周期值、一个16位周期闹岛鸵桓?2位脉冲计值组成。

下表说明轮廓表的格式。多段PTO操作的另一个特征是能够通过指定每个脉冲的数量自动增加或减少周期。在周期挠虮喑陶 祷嵩黾又芷冢 谥芷谀

域编程负值会减少周期。若值为零,则周期不变。

如果您指定的周期氖 翟谝欢ㄊ 康穆龀搴蟮贾路欠ㄖ芷冢 蚧岢鱿质 б绯鎏跫 TO功能被终止,输出转换成映象寄存器控制。此外,状态字节(SM66.4或SM76.4)中的募扑愦砦笪槐簧栉 弧?

如果您以手动方式异常中止正在运行的PTO轮廓,状态字节(SM66.5或SM76.5)中的用户异常中止位则被设为一。

运行PTO轮廓时,SMB166(或SMB176)中提供当前现用段数。

多段PTO操作的轮廓表格式

距离轮廓表起始位置的字节偏移量轮廓段数目表格条目说明

0 段数(1至255);数值0生成非严重错误,生成无PTO输出

1 #1 初始周期(2至65535个单位)

3 每次脉冲的周期模ù 诺闹担 ?32768至32767个单位)

5 脉冲计数(1至4294967295)

9 #2 初始周期(2至65535个单位时间基准)

11 每个脉冲的周期模ù 诺氖 担 ?32768至32767个单位时间基准)

13 脉冲计数(1至4294967295)

: : #3 : :

计算轮廓表数值

PTO/PWM发生器的多段管线作业功能在许多应用程序中都很有用,特别是步进电机控制中。

例如,您可以通过简单加速、运行和减速顺序或更复杂的顺序使用配备脉冲轮廓的PTO,控制步进电机,方法是定义一个最多包含255个段的脉冲轮廓,每个段与一个加速、运行或减速操作相对应。下图显示生成加速步进电机(#1段)、按恒速操作电机(#2段)、随后减低电机速度(#3段)的输出信号波形所要求的轮廓表数值样本。

简单步进电机应用程序的频率与时序图举例

在本例中:起始和终止脉冲频率为2 kHz,最大脉冲频率为10 kHz ,要求4000次脉冲才能达到所需的电机转动次数。因为用阶段(周期)表示轮廓表值,而不使用频率,需要将给定频率数值转换成周期数值。因此,起始(最初)和终止(结束)周期为500 ms,与最大频率对应的周期为100 ms。在输出轮廓的加速部分,应在约400次脉冲时达到最大脉冲频率。轮廓减速部分应在约400次脉冲时完成。

您可以用以下公式确定PTO/PWM发生器用于调节某一特定段每次脉冲周期的闹芷谥担?

利用该公式,计算出的加速部分(或#1段)的闹芷谖?2。与此相似,减速部分(或#3段)的闹芷谖?。因为#2段是输出信号波形的恒速部分,该段的闹芷谖 恪?

假定轮廓表位于从V500开始的V内存中,以下显示用于生成所需信号波形的表值。您可以在程序中包括指令,将这些数值载入V内存,或者您可以在数据块中定义轮廓数值。

轮廓表数值举例

V内存地址数值说明

VB500 3 总段数

VW501 500 初始周期 #1段

VW503 -2 初始闹芷?

VD505 200 脉冲数

VW509 100 初始周期 #2段

VW511 0 闹芷?

VD513 3400 脉冲数

VW517 100 初始周期 #3段

VW519 1 闹芷?

VD521 400 脉冲数

利用程序中的指令可将这些表值置于V内存中。另一种方法是定义数据块中的轮廓值。本标题结尾部分举例说明使用多段PTO操作的程序指令

为了确定信号波形段之间的转换是否可接受,您需要确定段中最后一次脉冲的周期。除非闹芷谑?,您必须计算段最后一次脉冲的周期,因为该数值未在轮廓中指定。使用以下公式计算最后一次脉冲的周期:

上例是简化的情况,用于介绍目的,实际应用程序可能要求更复杂的信号波形轮廓。请记住:

?闹芷谥荒苤付ㄎ ⒚牖蚝撩?

?可对每次脉冲执行周期修改

这两个项目产生的效果是计算某个特定段的闹芷谑 悼赡芤 笠桓鲅 贩桨浮<扑隳掣鎏囟ǘ蔚慕崾 芷诨蚵龀迨 渴笨赡芤 笠欢ǖ牧榛钚浴?

特定轮廓段期限对确定正确的轮廓表值程序有用。可利用以下公式计算完成特定轮廓段的时间长度:

PTO/PWM控制寄存器

PLS指令读取存储在指定的SM内存位置的数据,并以此为PTO/PWM发生器编程。SMB67控制PTO 0或PWM 0,SMB77控制PTO 1或PWM 1。PTO/ PWM控制寄存器表描述用于控制PTO/PWM操作的寄存器。您可以将下表用作快速参考,帮助确定放置在PTO/PWM控制寄存器中用于激活所需操作的数值。

您可以改变PTO或PWM信号波形的特征,方法是修改SM区(包括控制字节)中的位置,然后执行PL

S指令。您可以在任何时间禁止PTO或PWM信号波形的生成,方法是向控制字节(SM67.7或SM77.7)的PTO/PWM启用位写入0,然后执行PLS指令。

状态字节中的PTO空闲位(SM66.7或SM76.7)表示编程脉冲串已完成。此外,可在脉冲串完成时激活中断例行程序。(请参阅中断指令说明和"通讯"

指令。)如果您在使用多段操作,在轮廓表完成时激活中断例行程序。

以下条件设置SM66.4(或SM76.4)和SM66.5(或SM76.5):

?指定一个在数次脉冲后导致非法周期的周期氖 瞪 梢桓鍪 б绯鎏跫 锰跫 嶂罩筆TO功能,并将"募扑愦砦?位(SM66.4或SM76.4)设为1。输出回复为映像寄存器控制。

?以手动方式异常中止(禁用)正在执行的PTO轮廓会将"用户异常中止"位(SM66.5或SM76.5)设为1。

?尝试在管线已满的情况下载入会将PTO溢出位(SM66.6或SM76.6)设为1。如果您希望检测随后的溢出,您必须在检测到溢出后以手动方式清除该位。转换至RUN(运行)模式可将该位初始化为0。

注释:当您载入新脉冲计数(SMD72或SMD82)、脉宽(SMW70或SMW80)或周期(SMW68或SMW78)时,在执行PLS指令之前,还需要在控制寄存器中设置适当的更新位。对于多段脉冲串操作,在执行PLS指令之前,您还必须载入轮廓表的起始偏移量(SMW168或SMW178)和轮廓表数值。

PTO/PWM控制寄存器

Q0.0 Q0.1 状态位

SM66.4 SM76.4 PTO轮廓由于募扑愦砦笠斐V兄? 0 = 无错: 1 = 异常中止

SM66.5 SM76.5 PTO轮廓由于用户命令异常中止 0 = 无错: 1 = 异常中止

SM66.6 SM76.6 PTO管线溢出/下溢 0 = 无溢出; 1 = 溢出/下溢

SM66.7 SM76.7 PTO空闲 0 = 进行中; 1 = PTO空闲

Q0.0 Q0.1 控制位

SM67.0 SM77.0 PTO/PWM更新周期值 0 = 无更新; 1 = 更新周期

SM67.1 SM77.1 PWM更新脉宽时间值 0 = 无更新; 1 = 更新脉宽

SM67.2 SM77.2 PTO更新脉冲计值 0 = 无更新; 1 = 更新脉冲计数

SM67.3 SM77.3 PTO/PWM选择 0 = 1 祍/tick; 1 = 1ms/tick

SM67.4 SM77.4 PWM更新方法: 0 = 异步更新; 1 = 同步更新

SM67.5 SM77.5 PTO操作: 0 = 单段操作; 1 = 多段操作

SM67.6 SM77.6 PTO/PWM模式选择 0 = 选择PTO; 1 = 选择PWM

SM67.7 SM77.7 PTO/PWM启用 0 = 禁用PTO/PWM; 1 = 启用PTO/PWM

Q0.0 Q0.1 其他PTO/PWM寄存器

SMW68 SMW78 PTO/PWM周期值(范围:2至 65535)

SMW70 SMW80 PWM脉宽值(范围:0至65535)

SMD72 SMD82 PTO脉冲计值(范围:1至4294967295)

SMB166 SMB176 进行中的段数(仅用于多段PTO操作)

SMW168 SMW178 轮廓表起始位置,用距离V0的字节偏移量表示(仅用于多段PTO操作)SMB170 SMB180 线性轮廓状态字节

SMB171 SMB181 线性轮廓结果寄存器

SMB172 SMB182 手动模式频率寄存器

PTO/PWM控制字节参考

控制寄存器(十六进制值)执行PLS指令的结果

启用选择模式 PTO段操作 PWM更新方法脉冲计数脉宽周期

16#81 是 PTO 单段 1 祍/循环载入

16#84 是 PTO 单段 1 祍/循环载入

16#85 是 PTO 单段 1 祍/循环载入载入

16#89 是 PTO 单段 1 ms/循环载入

16#8C 是 PTO 单段 1 ms/循环载入

16#8D 是 PTO 单段 1 ms/循环载入载入

16#A0 是 PTO 多段 1 祍/循环

16#A8 是 PTO 多段 1 ms/循环

16#D1 是 PWM 同步 1 祍/循环载入

16#D2 是 PWM 同步 1 祍/循环载入

16#D3 是 PWM 同步 1 祍/循环载入载入

16#D9 是 PWM 同步 1 ms/循环载入

16#DA 是 PWM 同步 1 ms/循环载入

16#DB 是 PWM 同步 1 ms/循环载入载入

PTO/PWM初始化和操作顺序

以下是初始化和操作顺序说明,能够帮助您更好地识别PTO和PWM功能操作。在整个顺序说明过程中一直使用脉冲输出Q0.0。初始化说明假定S7-200

刚刚置入RUN(运行)模式,因此首次扫描内存位为真实。如果不是如此或者如果必须对PTO/PWM功能重新初始化,您可以利用除首次扫描内存位之外的一个条件调用初始化例行程序。

PWM初始化

以下PWM初始化和操作顺序说明建议使用"首次扫描"位(SM0.1)初始化脉冲输出。使用"首次扫描"位调用初始化子程序可降低扫描时间,因为随后的扫描无须调用该子程序。(仅需在转换为RUN(运行)模式后的首次扫描时设置"首次扫描"位。)但是,您的应用程序可能有其他限制,要求您初始化(或重新初始化)脉冲输出。在此种情况下,您可以使用另一个条件调用初始化例行程序。

通常,您用一个子程序为脉冲输出初始化PWM。您从主程序调用初始化子程序。使用首次扫描内存位(SM0.1)将脉冲输出初始化为0,并调用子程序,执行初始化操作。当您使用子程序调用时,随后的扫描不再调用该子程序,这样会降低扫描时间执行,并提供结构更严谨的程序。

从主程序建立初始化子程序调用后,用以下步骤建立控制逻辑,用于在初始化子程序中配置脉冲输出Q0.0:

1. 通过将以下一个值载入SMB67: 16#D3(选择微秒递增)或16#DB(选择毫秒递增)的方法配置控制字节。两个数值均可启用PTO/PWM功能、选择PWM操作、设置更新脉宽和周期值、以及选择(微秒

或毫秒)。

2. 在SMW68中载入一个周期的字尺寸值。

3. 在SMW70中载入脉宽的字尺寸值。

4. 执行PLS指令(以便S7-200为PTO/PWM发生器编程)。

5. 欲为随后的脉宽变化预载一个新控制字节数值(选项),在SMB67: 16#D2(微秒)或16#DA(毫秒)中载入下列数值之一。

6. 退出子程序。

为PWM输出更改脉宽

如果您用16#D2或16#DA预载SMB67(请参阅以上第5步),您可以使用一个将脉宽改变为脉冲输出(Q0.0)的子程序。建立对该子程序的调用后,使用以下步骤建立改变脉宽的控制逻辑:

1. 在SMW70中载入新脉宽的字尺寸值。

2. 执行PLS指令,使S7-200为PTO/PWM发生器编程。

3. 退出子程序。

PTO初始化-单段操作

以下PWM初始化和操作顺序说明建议使用"首次扫描"位(SM0.1)初始化脉冲输出。使用"首次扫描"位调用初始化子程序可降低扫描时间,因为随后的扫描无须调用该子程序。(仅需在转换为RUN(运行)模式后的首次扫描时设置"首次扫描"位。)但是,您的应用程序可能有其他限制,要求您初始化

(或重新初始化)脉冲输出。在此种情况下,您可以使用另一个条件调用初始化例行程序。

通常,您用一个子程序为脉冲输出初始化PWM。您从主程序调用初始化子程序。使用首次扫描内存位(SM0.1)将脉冲输出初始化为0,并调用子程序,执行初始化操作。当您使用子程序调用时,随后的扫描不再调用该子程序,这样会降低扫描时间执行,并提供结构更严谨的程序。

从主程序建立初始化子程序调用后,用以下步骤建立控制逻辑,用于在初始化子程序中配置脉冲输出Q0.0:

1. 通过将以下一个值载入SMB67: 16#85(选择微秒增加)或16#8D(选择毫秒增加)的方法配置控制字节。

2. 两个值均可启用PTO/PWM功能、选择PWM操作、设置更新脉宽和周期值、以及选择(微秒或毫秒)。在SMW68中载入一个周期的字尺寸值。

3. 在SMD72中载入脉冲计数的双字尺寸值。

4. (选项)如果您希望在脉冲串输出完成后立即执行相关功能,您可以将脉冲串完成事件(中断类别19)附加于中断子程序,为中断编程,使用

ATCH指令并执行全局中断启用指令ENI。

5. 执行PLS指令,使S7-200为PTO/PWM发生器编程。

6. 退出子程序。

改变PTO周期-单段操作

程序或子程序中的PTO周期,请遵循下列步骤:

?设置控制字节(启用PTO/PWM功能、选择PTO操作、选择、设置更新周期值),方法是在SMB67: 1 6#81(用于微秒)或16#89(用于毫秒)中载入下列一个值。

?在SMW68中,载入新周期的一个字尺寸值。

?执行PLS指令,使S7-200为PTO/PWM发生器编程。更新脉冲计数信号波形输出开始之前,CPU必须完成所有进行中的PTO。

?退出中断例行程序或子程序。

改变PTO脉冲计数-单段操作

对于单段PTO操作,您可以使用中断例行程序或子程序改变脉冲计数。欲使用单段PTO操作在中断例行程序或子程序中改变PTO脉冲计数,请遵循下列步骤:

1. 设置控制字节(启用PTO/PWM功能、选择PTO操作、选择、设置更新周期值),方法是在SMB67: 16#84(用于微秒)或16#8C(用于毫秒)中载入以下两个值之一。

2. 在SMD72中,载入新脉冲计数的一个双字尺寸值。

3. 执行PLS指令(以便S7-200为PTO/PWM发生器编程)。开始用更新脉冲计数生成信号波形之前,S7-200完成所有进行中的PTO。

4. 退出中断例行程序或子程序。

改变PTO周期和脉冲计数-单段操作

改中断例行程序或子程序中的PTO周期和脉冲计数,请遵循下列步骤:

1. 设置控制字节(启用PTO/PWM功能、选择PTO操作、选择、设置更新周期和脉冲计数值),方法是在SMB67: 16#85(用于微秒)或16#8D(用于毫秒)中载入以下两个值之一。

2. 在SMW68中,载入新周期的一个字尺寸值。

3. 在SMC72中,载入新脉冲计数的一个双字尺寸值。

4. 执行PLS指令,使S7-200为PTO/PWM发生器编程。用更新脉冲计数和脉冲时间信号波形输出开始之前,CPU必须完成所有进行中的PTO。

5. 退出中断例行程序或子程序。

PTO初始化-多段操作

通常,您用一个子程序为多段操作的脉冲输出配置和初始化PTO。您从主程序调用初始化子程序。使用首次扫描内存位(SM0.1)将PTO使用的输出初始化为0,并调用子程序,执行初始化操作。当您使用"首次扫描"位调用初始化子程序时,随后的扫描不再调用该子程序,这样会降低扫描时间执行。

从主程序建立对初始化例行程序的调用后,使用以下步骤建立控制逻辑,用于在初始化子程序中配置脉冲输出Q0.0:使用首次扫描内存位(SM0.1)将输出初始化为0,并调用您所需的子程序,执行初始化操作。这样会降低扫描时间执行,并提供结构更严谨的程序。

1. 通过将以下一个值载入SMB67: 16#A0(选择微秒增加)或16#A8(选择毫秒增加)的方法配置控制字节。

两个数值均可启用PTO/PWM功能、选择PTO操作、选择多段操作、以及选择(微秒或毫秒)。

2. 在SMW168中载入一个字尺寸值,用作轮廓表起始V内存偏移量。

3. 使用V内存在轮廓表中设置段值。确保"段数"域(表的第一个字节)正确无误。

4. (选项)如果您希望在PTO轮廓完成后立即执行相关功能,您可以将脉冲串完成事件(中断类别19)附加在中断子程序中,为中断编程。使用

ATCH执行全局中断启用指令ENI。

5. 执行PLS指令,使S7-200为PTO/PWM发生器编程。

6. 退出子程序。

NETWORK 1 // 用于PWM范例的主程序

// 首次扫描时,将映像寄存器位设为低,并调用SBR_0

LD SM0.1

R Q0.1 1

CALL SBR_0

NETWORK 2 // 设置程序中其他位置的M0.0,将脉宽更改为50%占空比

LD M0.0

EU

CALL SBR_1

NETWORK 1 // 子程序0开始

LD SM0.0

MOVB 16#DB SMB77 // 设置控制字节

// - 选择PWM操作

// - 选择毫秒递增和同步更新

// - 设置脉宽和周期值

// - 启用PWM功能

MOVW +10000 SMW78 // 将周期设为10,000毫秒

MOVW +1000 SMW80 // 将脉宽设为1,000毫秒

PLS 1 // 激活PWM操作:PLS1=>Q0.1

MOVB 16#DA SMB77 // 重新载入控制字节,用于随后的脉宽改动

NETWORK 1 // 子程序1开始

LD SM0.0

MOVW +5000 SMW80 // 将脉宽设为5000毫秒

PLS 1 // 断言脉宽改动

二。PTO / PWM 组件

PTO配置中可能存在下列项目组件。在下面的组件名中,憍捊 梦 龀宸⑸ ≡竦氖涑鑫蝗〈 ??挻 鞶0.0,?挻 鞶0.1。此外,向导将通过附加字符慱Z挘 繁U庑┳榧 谟没У南钅恐惺俏ㄒ坏模辉诖薢是一个基于零的指标。Z将不断递增,直至生成唯一的名称。请点击组件名,取得详细说明。

PTO配置的项目组件

PTOx_CTRL(初始化和控制PTO操作)应在每次程序扫描时(于EN输入处)启用,并且由子程序调用而在您的程序中只执行一次。

PTOx_RUN(运行PTO轮廓)用于执行特定运动轮廓。当用户定义了一个或多个运动轮廓后,此子程序将为PTO向导配置生成。

PTOx_MAN(手动PTO模式)子程序可用来在程序控制下指挥脉冲发生。

PTOx_LDPOS(载入位置)子程序用于将某当前位置参数载入PTO操作。当用户选取了脉冲计数的高速计数器时,PTO向导会创建此子程序。

PTOx_ADV(前进)PTOx_ADV子程序会停止当前的连续运动轮廓并按照在向导轮廓定义中规定的脉冲数前进。如果您已在位置控制向导中指定了至少一个启用PTOx_ADV选项的单速连续旋转,此子程序就会得到创建。

PTOx_SYM (全局符号表)用于PTO向导配置中使用的变量。

PTOx_Data (数据块页)由向导配置使用的V内存数据。此数据包含参数表和运动轮廓定义。PWM配置的项目组件

PWMx_RUN (手动PWM模式)用于在程序控制下执行PMW的子程序。

蜂鸣器驱动程序设计

合肥师范学院 嵌入式系统开发技术 课程设计 专业:计算机科学与技术(嵌入式) 班级:嵌入式应用技术 学号: 110441034 1110441047 1110441060 姓名:钱鹏鹏汪新妹郭航峰 设计题目:蜂鸣器驱动程序设计 2014年05月

1.绪论_______________________________________________________________ 3 1.1概要 _________________________________________________________________ 3 1.2设计内容 _____________________________________________________________ 4 2.开发环境的搭建_____________________________________________________ 4 2.1Redhat的安装 _________________________________________________________ 4 2.2安装arm-linux-gcc交叉编译器__________________________________________ 9 2.3安装及编译linux-2.6.29-mini2440-20090708内核_________________________ 9 3.字符设备驱动相关知识_______________________________________________ 9 3.1模块机制 _____________________________________________________________ 9 3.2字符设备开发基本步骤_________________________________________________ 10 3.3主设备号和次设备号___________________________________________________ 11 3.4实现字符驱动程序_____________________________________________________ 12 4.蜂鸣器原理________________________________________________________ 14 4.1蜂鸣器的种类和工作原理_______________________________________________ 14 4.2开发板上蜂鸣器原理图分析_____________________________________________ 15 4.3GPB0参数 ____________________________________________________________ 15 5.总体设计__________________________________________________________ 16 5.1设计思路 ____________________________________________________________ 16 5.2设计步骤 ____________________________________________________________ 16 6. 驱动及测试程序___________________________________________________ 17 6.1beep.c _______________________________________________________________ 17 6.2beep_tset.c __________________________________________________________ 21 7.运行结果及截图____________________________________________________ 22综合设计总结与思考__________________________________________________ 25

单片机 利用蜂鸣器演奏音乐

实验三-利用蜂鸣器演奏音乐 一、实验目的 1.了解BlueSkyC51单片机实验板中蜂鸣器的硬件电路 2.学会利用蜂鸣器实现音乐的演奏 3.掌握蜂鸣器实现音乐演奏的编程 二、实验硬件设计及电路 1. BlueSkyC51单片机实验板 ` 2.单片机最小系统

。 3.蜂鸣器电路连接 三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以

我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。 三、实验原理 1.音调及节拍 用一个口,输出方波,这个方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,就能产生简单的音乐。一般说来,单片机演奏音乐基本都是单音频率,因此单片机奏乐只需控制音调和节拍。 (1)音调的确定 音调是由频率来确定的。通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O 口来回取反,从而让蜂鸣器发出不同频率的声音。只需将定时器给以不同的定时值就可实现。通过延时,即可发出所需要的频率。 … (2)节拍的确定 一拍的时长大约为400—500ms,每个音符的时长通过节拍来计算。详细见程序代码。 2.软件设计相关 (1)头文件 #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long sbit beep=P1^4; 译实验相关问题 ; (1)实际发音颤音重 解决方法为修改蜂鸣器的驱动频率. (2)实际节奏过快或者过慢 调整延时 四、C51程序代码(部分来源于网络) #include<> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long ~ sbit beep=P1^4; //蜂鸣器与口连接 uchar th0_f; //中断装载T0高8位 uchar tl0_f; //T0低8位 uchar code freq[36*2]={ //音阶码表 0xf7,0xd8, //440hz , 1 //0 0xf8,0x50, //466hz , 1# //1

蜂鸣器的介绍

蜂鸣器的介绍 推荐 一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 一、常规电磁蜂鸣器产品是如何工作的? 无源电磁蜂鸣器工作原理是:交流信号通过绕在支架上的线包在支架的芯柱上产生一交变的磁通,交变的磁通和磁环恒定磁通进行叠加,使钼片以给定的交流信号频率振动并配合共振腔发声。产品的整个频率和声压的响应曲线与间隙值、钼片的固有振动频率(可粗略折射为小钼片的厚度)、外壳(亥姆霍兹共振声腔)频率、磁环的磁强漆包线的线径有直接关系。 二、常规电磁无源蜂鸣器产品由哪些材料组成? 三、常规压电蜂鸣器产品是如何工作的?

几种驱动蜂鸣器的编程示例

几种驱动蜂鸣器的编程示例 以下介绍几种在S3F9454/9444下驱动蜂鸣器的编程示例,供参考 A.第一种,普通IO高低电平驱动法 ;运行环境: S3F9454,Fosc= 3.2MHz无分频 ;P2.0为蜂鸣输出端口 ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US BEEP: LD BTCON,#10100011B ;看门狗禁用 DI PUSH R5 PUSH R6 ;首先配置P2.0为普通推挽输出端口 AND P2CONL,#0FEH OR P2CONL,#02H LD R6,#0FAH ;R6设置输出方波个数,本例为250个(计时62.5MS) ONE_BEEP: LD R5,#27H ;R5为频率发生计时器,本例为近似125US(4KHZ) XOR P2,#01H _LOOP: DEC R5 JR NZ,_LOOP DEC R6 JR NZ,ONE_BEEP LD BTCON,#02H ;恢复看门狗运行 EI POP R6 POP R5 RET ;----------------------------------------------------------- B.利用P2.0配置为T0定时器匹配输出方式产生 ;注: 该方式可用于带多位数码显示扫描的软件中,可有效避免因蜂鸣器 ;输出而造成的数码显示抖动闪烁 ;因定时器T0被分配作为T0匹配输出定时器,所以本例中利用看门狗定时器 ;的实时计时器BTCNT作为数码显示实时扫描计时器 ;R0为蜂鸣时间长短计时器,由主调用程序进行予设置 ;运行环境: S3F9454,Fosc= 3.2MHZ无分频 ;P2.0为蜂鸣输出端口 ;本例输出频率为4KHZ,即每250US一个周期,高低电平时间分别为125US ;----------------------- BEEP: DI PUSH R1 PUSH T 0CON PUSH T0DATA ;在蜂鸣输出前首先扫描一次数码显示 CALL LED_SCAN OR P2CONL,#03H ;set P2.0 as T0 match output/every 12 5us LD T0CON,#10001000B ;set T0 input cLOCk=Fosc/8 LD T0DATA,#32H LD BTCON,#10100011B ;DISAble Watch-dog run, ;but btcnt clk input fxx/4096= 1.280ms NEXT_BEEP: LD R1,#0AH WAIT_CNT: OR BTCON,

蜂鸣器驱动程序的设计说明

蜂鸣器驱动 课程设计 专业: xxxxxxxxxxxxxx 班级: xxxxxxxxx 学号: xxxxxxxxx 姓名: xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数................................................................... ...................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试............................................................................. (9)

六.综合设计总结与思考................................................................... .. (10) 一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210 开发板,核部分 Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux核,但实际上人们已经习惯了用Linux来形容整个基于Linux核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块

单片机驱动蜂鸣器原理与程序学习资料

单片机驱动蜂鸣器原 理与程序

单片机驱动蜂鸣器原理与设计 作者:mcu110 来源:51hei 点击数:12159 更新时间:2007年08月01日【字体:大中小】 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图:

图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 4. 磁铁 5. 底座 6. 引脚 7. 外壳 8. 铁芯 9. 封胶 10. 小铁片 11. 振动膜 12. 电路板 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图:

蜂鸣器驱动程序设计

蜂鸣器驱动 课程设计 专业:xxxxxxxxxxxxxx 班级:xxxxxxxxx 学号:xxxxxxxxx 姓名:xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数......................................................................................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试 (9) 六.综合设计总结与思考 (10)

一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210开发板,内核部分Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块 PWM(脉冲宽度调制)简单的讲是一种变频技术之一,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。来看看我们实际生活中的例子,我们的电风扇为什么扭一下按扭,风扇的转速就会发生变化;调一下收音机的声

蜂鸣器驱动电路

简易自控电路大全(1) 在简易自动控制电路中,将介绍一些模拟实验电路,利用一些物理现象产生的力、热、声、光、电信号,实现自动控制,以达到某种控制效果。 磁控和热控电路 在磁力自动控制电路中,传感元件是干簧管,当磁铁靠近时,常开触点闭合而接通传感电路,完成位置传感作用。 能不能用干簧管开关直接控制电动机的转与停呢?玩具电动机是常用的动力装置,它能够把电能转换为机械能,可用于小电风扇转动、小离心水泵抽水等执行功能。通常玩具直流电动机工作电压低,虽然在1.5~3V就可以启动,但起动电流较大(1~2安培),如果用触点负荷仅为几十毫安的干簧管进行开关控制,将大大缩短其使用寿命。因此,在自动控制电路中,常使用电子开关来控制电动机的工作状态。 三极管电子开关电路见图1 。由开关三极管VT,玩具电动机M,控制开关S,基极限流电阻器R和电源GB组成。VT采用NPN型小功率硅管8050,其集电极最大允许电流ICM可达1.5A,以满足电动机起动电流的要求。M选用工作电压为3V的小型直流电动机,对应电源GB亦为3V 。 VT基极限流电阻器R如何确定呢?根据三极管的电流分配作用,在基极输入一个较弱的电流IB,就可以控制集电极电流IC有较强的变化。假设VT电流放大系数hfe≈250,电动机起动时的集电极电流IC=1.5A,经过计算,为使三极管饱和导通所需的基极电流IB≥(1500mA/250)×2=12mA。在图1电路中,电动机空载时运转电流约为500mA,此时电源(用两节5号电池供电)电压降至2.4V,VT基极-发射极之间电压VBE≈0.9V。根据欧姆定律,VT基极限流电阻器的电阻值R=(2.4-0.9)V/12mA≈0.13kΩ。考虑到VT在IC 较大时,hfe要减小,电阻值R还要小一些,实取100Ω。为使电动机更可靠地启动,R甚至可减少到51Ω。在调试电路时,接通控制开关S,电动机应能自行启动,测量VT集电极—发射极之间电压VCE≤0.35V,说明三极管已饱和导通,三极管开关电路工作正常,否则会使VT过热而损坏。 自动灭火的热量自动控制电路见图2。该电路是将图1中的控制开关S换成双金属复片开关ST,就成为热控电路了。当蜡烛火焰烧烤到双金属复片时,复片趋于伸直状态,使得开关ST接通,电动机启动,带动小风扇叶片旋转,对准蜡烛吹风,自动将火焰熄灭;当双金属片冷却后,开关断开,小电风扇自动停转,完成了自动灭火的程序。 自动停车的磁力自动控制电路见图3。开启电源开关S,玩具车启动,行驶到接进磁铁时,安装在VT基极与发射极之间的干簧管SQ闭合,将基极偏置电流短路,VT截止,电动机停止转动,保护了电动机及避免大电流放电。

单片机驱动蜂鸣器原理与程序

单片机驱动蜂鸣器原理与设计下面是电磁式蜂鸣器的外形图片及结构图。。。

时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。 二、蜂鸣器列子 下面我们举几个简单的单片机驱动蜂鸣器的编程和电路设计的列子。 1、简单的蜂鸣器实验程序:本程序通过在P3.7输出一个音频范围的方波,驱动实验板上的蜂鸣器发出蜂鸣声,其中DELAY延时子程序的作用是使输出的方波频率在人耳朵听觉能力之内的20KHZ以下,如果没有这个延时程序的话,输出的频率将大大超出人耳朵的听觉能力,我们将不能听到声音。更改延时常数,可以改变输出频率,也就可以调整蜂鸣器的音调。大家可以在实验中更改#228为其他值,听听蜂鸣器音调的改变。 ORG 0000H AJMP MAIN ;跳转到主程序 ORG 0030H MAIN: CPL P3.7 ;蜂鸣器驱动电平取反 LCALL DELAY ;延时 AJMP MAIN ;反复循环 DELAY:MOV R7,#228 ;延时子程序,更改该延时常数可以改变蜂鸣器发出的音调 DE1: DJNZ R7,DE1 RET

END 2、倒车警示音实验程序:我们知道各种卡车、货柜车在倒车时候,会发出倒车的蜂鸣警示提示音,同时警示黄灯也同步闪烁,提醒后面的人或车辆注意。本实验例程就实现倒车警示功能,通过实验板上的蜂鸣器发出警示音,同时通过实验板上P1.2和P1.5上的两个黄色发光二极管来发出黄色警示灯。 ORG 0000H AJMP START ;跳转到初始化程序 ORG 0033H START: MOV SP,#60H ;SP初始化 MOV P3,#0FFH ;端口初始化 MAIN: ACALL SOUND ;蜂鸣器发声 ACALL YS500M ;延时 AJMP MAIN SOUND: MOV P1,#11011011B ;点亮2个警示黄色发光二极管 MOV R2,#200 ;响200个周期 SND1: CLR P3.7 ;输出低电平T1导通,蜂鸣器响 ACALL YS1ms ;延时 SETB P3.7 ;输出高电平T1截止,蜂鸣器不响 ACALL YS1ms ;延时 DJNZ R2,SND1 MOV P1,#0FFH ;熄灭黄色警示灯 RET

蜂鸣器及范例

蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图: 图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 5. 底座 6. 引脚 7. 外壳 9. 封胶 10. 小铁片 11. 振动膜

4. 磁铁8. 铁芯12. 电路板 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图: 图3 如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。

蜂鸣器驱动程序设计

蚌埠学院 嵌入式系统开发技术 课程设计 专业:电子信息科学与技术(嵌入式)班级:电子信息2班 学号:00000000000 姓名: 设计题目:蜂鸣器驱动程序设计 2014年9月

目录 1.绪论 _________________________________________________________________3 1.1概要___________________________________________________________________ 3 1.2设计内容_______________________________________________________________ 4 2.开发环境的搭建 _______________________________________________________4 2.1Redhat的安装 ___________________________________________________________ 4 2.2安装arm-linux-gcc交叉编译器____________________________________________ 8 2.3安装及编译linux-2.6.29-mini2440-20090708内核 _____________________________ 8 3.字符设备驱动相关知识 _________________________________________________8 3.1模块机制_______________________________________________________________ 8 3.2字符设备开发基本步骤___________________________________________________ 9 3.3主设备号和次设备号____________________________________________________ 10 3.4实现字符驱动程序______________________________________________________ 11 4.蜂鸣器原理 __________________________________________________________13 4.1蜂鸣器的种类和工作原理________________________________________________ 13 4.2开发板上蜂鸣器原理图分析______________________________________________ 14 4.3GPB0-0参数____________________________________________________________ 14 5.总体设计 ____________________________________________________________15 5.1设计思路______________________________________________________________ 15 5.2设计步骤______________________________________________________________ 15 6. 驱动及测试程序 _____________________________________________________16 6.1beep.c _________________________________________________________________ 16 6.2beep_tset.c _____________________________________________________________ 20 7.运行结果及截图 ______________________________________________________21 综合设计总结与思考___________________________________________________23

单片机驱动蜂鸣器原理与设计

单片机驱动蜂鸣器原理与设计 (拟标题“电子门铃":开关或按键,51单片机, 电阻,TTL三极管,蜂鸣器,灯) 作者:mcu110 来源:51hei 点击数:3275 更新时间:2007年08月01日 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图: tu1 电磁式蜂鸣器结构示意图:tu2 图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 4. 磁铁 5. 底座 6. 引脚 7. 外壳 8. 铁芯 9. 封胶 10. 小铁片 11. 振动膜 12. 电路板

Tu1 TU2 一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图: 图3 如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。

蜂鸣器的结构原理

蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 编辑本段蜂鸣器的制作 (1)制 蜂鸣器 备电磁铁M:在长约6厘米的铁螺栓上绕100圈导线,线端留下5厘米作引线,用透明胶布把线圈粘好,以免线圈松开,再用胶布把它粘在一个盒子上,电磁铁就做好了. (2)制备弹片P:从铁罐头盒上剪下一条宽约2厘米的长铁片,弯成直角,把电磁铁的一条引线接在弹片上,再用胶布把弹片紧贴在木板上.(3)用曲别针做触头Q,用书把曲别针垫高,用胶布粘牢,引出一条导线,如图连接好电路. (4)调节M与P之间的距离(通过移动盒子),使电磁铁能吸引弹片,调节触点与弹片之间的距离,使它们能恰好接触,通电后就可以听到蜂鸣声. 有源蜂鸣器和无源蜂鸣器

教你区分有源蜂鸣器和无源蜂鸣器 现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。 图:有源和无源蜂鸣器的外观 a)有源 b)无源 从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。 迸一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂 蜂鸣器 鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。 有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。 蜂鸣器驱动模块 在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。这里对单片机在蜂鸣器驱动上的应用作一下描述。 驱动方式 由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音,很简单,这里就不对自激蜂鸣器进行说明了。这里只对必须用1/2duty 的方波信号进行驱动的他激蜂鸣器进行说明。 单片机驱动他激蜂鸣器的方式有两种:一种是PWM 输出口直接驱动,另一种是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。

蜂鸣器_驱动电路_工作原理

蜂鸣器的介绍 一)蜂鸣器的介绍 1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压 供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“F M”、“LB”、“JD”等)表示。 (二)蜂鸣器的结构原理 1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 一、常规电磁蜂鸣器产品是如何工作的? 无源电磁蜂鸣器工作原理是:交流信号通过绕在支架上的线包在支架的芯柱上产生一交变的磁通,交变的磁通和磁环恒定磁通进行叠加,使钼片以给定的交流信号频率振动并配合共振腔发声。产品的整个频率和声压的响应曲线与

间隙值、钼片的固有振动频率(可粗略折射为小钼片的厚度)、外壳(亥姆霍兹共振声腔)频率、磁环的磁强漆包线的线径有直接关系。 万联芯城-电子元器件采购网https://www.wendangku.net/doc/d413479802.html,一直秉承着以良心做好良芯的服务理念,为广大客户提供一站式的电子元器件配单服务,客户行业涉及电子电工,智能工控,自动化,医疗安防等多个相关研发生产领域,所售电子元器件均为原厂渠道进货的原装现货库存。只需提交BOM表,即可为您报价。万联芯城同时为长电,顺络,先科ST等知名原厂的指定授权代理商,采购代理品牌电子元器件价格更有优势,欢迎广大客户咨询,点击进入万联芯城。

蜂鸣器驱动程序设计

. 蜂鸣器驱动 课程设计 专业:xxxxxxxxxxxxxx 班级:xxxxxxxxx 学号:xxxxxxxxx 姓名:xxxx 设计题目:蜂鸣器驱动程序设计 2016年12月

目录 一.任务 (2) 1.目标 (2) 2.环境 (2) 3.需求: (2) 二.总体设计 (2) 1.处理流程 (2) 2.模块介绍 (3) 3.模块接口设计 (3) 4.各个模块设计 (3) 三.PWM蜂鸣器字符设备驱动 (3) 1.模块设计 (3) 1. 模块介绍 (3) 2. 模块结构图 (4) 2.接口设计 (4) 1. 数据结构设计 (4) 2. 驱动程序接口 (4) 3.函数设计 (4) 1.初始化函数 (5) 2. 字符设备打开函数 (6) 3. 字符设备关闭函数 (7) 4. 模块卸载函数......................................................................................... (8) 5. 文件操作接口函数 (8) 四. PWM蜂鸣器字符设备驱动测试 (8) 1.调用系统函数ioctl实现对蜂鸣器的控制 (8) 五.tiny210开发板调试 (9) 六.综合设计总结与思考 (10)

一.任务 1.目标: 编写按键蜂鸣器驱动程序函数与测试文件,实现上位机与tiny210-SDK开发板的连接,利用函数实现对蜂鸣器通过按键来启动与关闭。 2.环境: ①软件环境:windows 7 系统和VMware Workstation 软件 ②硬件环境:tiny210开发板,内核部分Linux-3.0.8 ,交叉编译版本arm-linux-gcc-4.5.1-v6-vfp1 Linux系统介绍: Linux是一种自由开发源码的类Unix操作系统,存在这许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。 Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来说,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 tiny210开发板中模块介绍: ①PWM蜂鸣器模块 PWM(脉冲宽度调制)简单的讲是一种变频技术之一,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。来看看我们实际生活中的例子,我们的电风扇为什么扭一下按扭,风扇的转速就会发生变化;调一下收音机的声

单片机驱动蜂鸣器原理与设计

单片机驱动蜂鸣器原理与设计 蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计机、打印机、复印机、报警器、电话机等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 下面是电磁式蜂鸣器的外形图片及结构图。。。 电磁式蜂鸣器实物图:电磁式蜂鸣器结构示意图: 图 1 图 2 电磁式蜂鸣器内部构成: 1. 防水贴纸 2. 线轴 3. 线圈 4. 磁铁 5. 底座 6. 引脚 7. 外壳 8. 铁芯 9. 封胶 10. 小铁片 11. 振动膜 12. 电路板

一、电磁式蜂鸣器驱动原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图3: S51增强型单片机实验板蜂鸣器驱动原理图: 图3 如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。

单片机原理及应用A实验-流水灯、蜂鸣器、独立按键

流水灯、蜂鸣器、独立按键 一、实验目的 1、学习实验系统的基本操作,了解在实验系统中进行程序设计、仿真和调试的操作方法 和步骤; 2、了解单片机的基本输入、输出功能; 3、熟悉Proteus的基本仿真功能; 二、实验原理 1、LED流水灯的原理即为单个控制LED的亮灭、亮灭,让单个LED灯先亮然后很快灭掉,并在很短的时间里使下一个LED重复这一过程。这样让一排LED灯依次亮灭后即形成流水灯的效果。 2、在本次实验中把蜂鸣器用扬声器替代,通过控制扬声器工作时间来控制扬声器的发音频率。 3、按键是机械装置,在其闭合的时候会产生震荡,这会让软件产生误判。为了消除这种影响,就需要对按键进行软件消抖。消抖原理为两次判断,只要相隔一段时间的两次判断皆为按键已按下,那么这次的判断结果就是可信的,所以用到延时函数。 三、实验步骤 ; 1、硬件仿真。先分析实验所需的硬件条件,然后在Proteus上连接好硬件电路,注意连接好必要的电阻等。 2、软件编写。在Keil或其它的单片机编程软件上用C语言编写出构思好的软件。 3、将程序编译为HEX文件,然后烧录到仿真单片机中,进行仿真。 四、实验结果及分析 1、LED流水灯的硬件仿真电路图:

实验中加入了循环处理,所以该流水灯可以顺着亮一遍再逆着亮一遍,如此反复。并且改变流水灯亮灭的时间间隔还可以得到各种不同的效果。 2、蜂鸣器驱动的硬件仿真电路图: 这里用扬声器代替蜂鸣器。以单片机产生的一方波脉冲作为扬声器的电信号输入,用不同频率的方波信号产生不同音调的声音。 3、; 4、独立按键延时去抖的硬件仿真电路图: 用一个按键控制LED灯的亮灭,在软件中对按键进行消抖。 五、体会 这一次的单片机实验让我感到自己对Proteus的运用还欠缺许多,基本可以说是一窍不通。所以,这次实验以后还要花大量的时间在Proteus的学习上,希望可以从中学习到很多的

相关文档