一种计算机可控脉冲宽度和脉冲间隔的矩形波发生器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下面提出的基于 8254 的可编程矩形波发生器可 以有效地克服以上两种矩形波发生器的缺点, 并可通 过计算机实现对这种矩形波发生器频率的实时控制。
2 基于 8254 的可编程矩形波发生器
2. 1 8254 的控制字与工作方式 8254 可编程定时器电路的定时值或计数值 , 可
以很容易地由软件来确定和改变, 功能强大, 使用灵 活。它具有 3 个独立的 16 位计数器, 每个计数器的记 数速率可高达 6M Hz, 并且有 6 种不同的工作方式, 可 由程序来设置和改变, 所有的输入输出都与 T T L 电平 兼容, 是目前应用最广泛的可编 程定时/ 计数 器件之 一。
一般计 算机上有三 个并口 L PT 1、L PT 2、L PT 3, 它们分别与不同的 I/ O 地址相对应, 其中, L PT 1 口占 用 I/ O 地址为 238h、379h、37ah。在计算机启动时, 系 统将依次检测到 的并口命名为 L PT 1、LP T 2、L PT 3, 并分配给相对应的资源, 而本控制软件的编制是基于
D0 数制 0 二进制
1 BCD
下, 一开始输出为高电平, 在写入计数值后, 计数器将 立即对输入时钟 CLK 计数。在计数过程中, 输出始终 保持为高, 直至计数器减到 1 时, 输出将变低, 经过一 个 CLK 周期, 输出恢复为高, 且计数器开始重新计数, 它的突出特点是能够连续工作。如果计数器值为 N, 则 每输入 N 个 CL K 脉冲, 输出一负脉冲。 2. 2 矩形波发生器方案设计及工作原理
8254 的控制字与工作方式如表 1 所示, 这里仅简 要叙述一下工作方式 2 的特点, 8254 的详细资料可查 参考文献 1 与 2。
工作方式 2 是速率发生器工作方式。在这种方式
收稿日期: 2002—06—03
·6·
胡建华, 等: 一种计算机可控脉冲宽度和脉冲间隔的矩形波发生器
D7 D 6 计数器
关键词: 计算机控制, 频率, 波型发生器 【Abstract】 T his paper developes a rect angular w av e g enerat or w hich pulse duration and pulse w idth can be adjusted separately . It is com put er controlled and the least adjustm ent is 0. 25 s w ith t he maximum f requency of 2M Hz. Keywords: computer control , frequency , wave generator
L PT 1 口的。I/ O 地址 378h、379h、37ah 对应着三个八 位寄存器, 其寄存器各位与 L PT 1 口的引脚对应关系 如表 2 所示。其中, 0378h 是数据寄存器, 与 L PT 1 口
八位数据线相联系, 0379h 是状态寄存器, 其后五位与 L PT 1 口五位状态线相联系, 在该矩形波发生器中并 未使用, 037ah 为控制寄存器, 低四位用于对 8254 的 控制, 它的各位与 8254 控制引脚的对应关系如表 3 所 示。
过调节可变电阻( 或电容) 就可实现矩形波频率的连续 可调, 基于 8038 的矩形波发生器还有三角波、正弦波 输出可选, 但这两种电路参数的调节都必须辅以示波 器观察才能实现, 这对于工业生产中要求实时控制脉 冲源频率( 例如脉冲镀电源等) 是个严重缺陷; 此两种 电路为防止器件损坏必然对电流和电压有一 定的限 制, 因此, 占空比不能在 0% ~100% 的范围内连续调 节。
电子工程师
计算机应用
V ol. 28 N o. 10 2002
一种计算机可控脉冲宽度和脉冲间隔 的矩形波发生器
A Computer-Control led Rectangul ar Wave Generator
淮海工学院计算机系 ( 江苏盐城 222005) 胡建华 曲 毅
【摘 要】 研制了脉宽、脉间可调的矩形波发生器, 综合比较了几种电路的优缺点, 设计出了 计算机控制的脉冲宽度、脉冲间隔最小调整量为 0. 25 s, 最高频率可达 2MHz 的矩形波发生器。
在寄存器 037ah 中置 D0、D1、D2 位为 “1”时, 对 应针脚输出为低电平。所以, 发往 8254 的控制信号不
仅要先非一次, 而且要与二进制数 00000111B 进行异
或运算, 两次处理合起来, 则控制信号发往并口前需与 数 8( 不考虑高 4 位) 进行异或运算。
8254 工作之前必须先写入控制字, 而后再写入计
WR、A0、A1。8254 的片选端恒接低电平。从计算机来 的数据都经过光电隔离, 由于打印并口没有电源线, 所 以, 在电路中增加非门以提高信号的驱动能力, 此时,
通往 8254 的电平信号与打印并口的相应数据线电平
信号相反, 所以, 在编制程序进行控制时, 数据发往并 口前需要进行一次非运算, 其它细节不再详述。
00 选择计数器 0 01 选择计数器 1 10 选择计数器 2 11 选择计数器 3
表 1 8254 的控制字
D 5 D 4 读/ 写格式
00 计数器锁存 01 只读/ 写最低有效字节 10 只读/ 写最高有效字节
11 先写最低有效字节 再写最高有效字节
D3 D2 D 1 工作方式
000 工作方式 0 001 工作方式 1 * 10 工作方式 2 * 11 工作方式 3 100 工作方式 4 101 工作方式 5
·8·
图5 程序为:
mov al, 15 ; 准备数据, 控制 端 D; x or al, 8 ; 实际输出数据; out dx , al ; 数据输出;
至此, 完成了 8254 计数器 0 的控制字写入, 其它 控制字及计数值的写入都与上述相似。这里, 存在几个 要点: 必须先发出计数器地址, 再发出写信号, 否则易 产生误写入; 在每次输入后, 必须有一定的等待时间以 确保与外设速度相匹配; 最后一步操作, 将WR重置为 “1”是必须的, 实际上, 8254 在WR信号的下降沿和上 升沿读入两次数据, 并以上升沿时所读数据为准。
2。
图2
对应程序为:
mov dx , 0378h ; 数据端口地址送往 dx 寄存器 mov al , 034h ; 准备数据 not al ; 实际输出的数据 mov dx , al ; 输出数据
其次, 将寄存器地址发往 8254, 即, 使 8254 的 A0 = 1, A1= 1, 而WR= 1, RD= 1, 对应数据见图 3。
上述两种矩形波发生电路, 振荡频率都取决于 R、 C, 而高低电平的翻转主要取决于门电路的阈值。而在 电路状态临近转换时, 电容的充、放电已经比较缓慢, 转换电平的微小变换或轻微的干扰都会严重影响振荡 周期, 因此, 频率稳定性相对较差; 而这两种电路对温 度和电源的稳定性都要求较高; 4M Hz, 最小脉宽、 脉间调整指标为 0. 25 s, 最高频率可达 2M 。根据 8254
图6
胡建华, 等: 一种计算机可控脉冲宽度和脉冲间隔的矩形波发生器
的性能, 亦可选用 6MHz~8M Hz 的晶振, 以进一步提 高技术指标。
此设计较为简单, 成本低, 使用方便, 可通过计算 机实现对矩形波发生器频率的实时控制。利用汇编语 言编程嵌入到 VC+ + 的控制界面, 使操作更加方便。
由于 8254 内共有三个互相独立的计数器, 所以, 可以利用其中两个计数器分别作脉宽和脉间的控制, 每个计数器对晶振产生的脉冲信号进行计数, 计数到 一定值时, 分别使 D 触发器置数和清零, 从而产生一 给定占空比的矩形波。若晶振为 4M , 则脉宽、脉间的 解析度可达 0. 25 s, 其工作原理如图 1 所示。
口共有 25 针, 其中有 8 位数据线, 4 位控制线和 5 位
状态线, 其它都为地线, 其在端口上的分布如下所示:
引脚 1: 选通 引脚 4: DB2
引脚 2: DB0 引脚 5: DB3
引脚 3: DB1 引脚 6: DB4
引脚 7: DB5 引脚 10: 应答 引脚 13: 选择 引脚 16: 初始化 引脚 19: GN D 引脚 22: GN D 引脚 25: GN D
下面两种电路是其中的代表: ( 1) 基于 555 定时器 的矩形波发生器, 555 定时器用途广泛, 可以组成施密 特触发器、单稳态触发器以及多谐振荡器等多种实用 电路。由它构成的矩形波发生器成本低廉, 其频率上限 为 50kHz 左右。( 2) 采用集成芯片 8038 构成的矩形波 发生器可同时获得矩形波, 三角形与正弦波。其中, 三 角波通过电容恒流充放电而直接形成, 矩形波由控制 信号获得, 正弦波由三角形通过折线近似电路获得, 因 此, 获得的正弦波不是平滑曲线, 失真率为 1% 左右。 基于 8038 的矩形波发生器最低频率约为 0. 001Hz, 最 高频率可达 300kHz。
启动计数, 当计数器 1 减到 1 时, 又使 D 触发器置 1。 如此循环往复, 在 D 触发器的 Q 端得到一给定占空比 的矩形波, 其脉宽为 N 1T , 脉间为 N 2T , 其中, N 1、N 2 为 计数器 0 和 1 的预置数, 而 T 为晶振脉冲周期。
2. 3 电路设计与软件编制
此发生器利用计算机打印并口进行控制。打印并
图1
设初始值 Q 为“1”, 则计数器 1 的 GAT E 为“0”,
被封锁, 而计数器 0 的 GAT E 为“1”, 对晶振脉冲进行 计数, 计数到 1 时, OU T 输出一个负脉冲使 D 触发器 清零, 此时, 计数器 0 的 GAT E 端为低电平, 被禁止计 数, 而计数器 1 的 GAT E 端为高电平, 被恢复初值, 并
图3
对应程序为:
mov dx , 037ah ; 控制端 D 地址送往 dx 寄存器; mov al, 15 ; 准备数据; x or al, 8 ; 实际输出数据; out dx , al ; 数据输出
而后, 将写信号发往 8254, 其它信号不变, 数据见 图 4。
程序为:
mov al, 7 ; 控制端 的地址送往 dx 寄存器; x or al, 8 ; 实际输出数据; out dx , al ; 数据输出;
0 37 aH
选择 17 初始化 16 自动进纸 14 选通 1
数据 状态 控制
表 3 037ah 与 8254 的控制对应
D3
选择
WR
D2 初始 化
RD
D1 自动进纸 A 1
D0
选通
A0
最后, 取消写操作, 设WR= 1, 其它信号不变, 数据 见图 5。
图4
制方式。程序顺序如下: 首先, 将数据即控制字内容发往 8254, 数据见图
引脚 8: DB6 引脚 11: 忙 引脚 14: 自动进纸 引脚 17: 选择 引脚 20: G ND 引脚 23: G ND
引脚 9: DB7 引脚 12: 缺纸 引脚 15: ER R 引脚 18: GN D 引脚 21: GN D 引脚 24: GN D
在发生器设计中, 并行口 8 位数据线作为 8254 的 8 位数据输入线, 而 4 位控制线分别控制 8254 的RD、
1 引 言
目前广泛应用的矩形波发生器电路有许多种, 有 基于正反馈、施密特触发器的, 也有基于多谐振荡电路 与单稳态电路的。无论是数字式还是模拟式的, 或是两 种的混合, 其定时元件大多是电容和电阻( 有时也包括 电感) , 时间常数往往与 RC 有关, 这些电路成熟且简 单实用, 但同时也各有其局限性。
数值, 现以写入 8254 计数器 0 控制字为例说明程序编
·7·
电子工程师
计算机应用
V ol. 28 N o. 10 2002
表 2 L PT 1 I/ O 口寄存器各位定义
D7 D 6
D5
D4
D3
D2
D1
D0
0378H DB7 D B6 D B5 DB4 DB3
D B2
DB1
DB0
0379H 忙 11 应答 10 缺纸 12 选择 13 ER R 15
2 基于 8254 的可编程矩形波发生器
2. 1 8254 的控制字与工作方式 8254 可编程定时器电路的定时值或计数值 , 可
以很容易地由软件来确定和改变, 功能强大, 使用灵 活。它具有 3 个独立的 16 位计数器, 每个计数器的记 数速率可高达 6M Hz, 并且有 6 种不同的工作方式, 可 由程序来设置和改变, 所有的输入输出都与 T T L 电平 兼容, 是目前应用最广泛的可编 程定时/ 计数 器件之 一。
一般计 算机上有三 个并口 L PT 1、L PT 2、L PT 3, 它们分别与不同的 I/ O 地址相对应, 其中, L PT 1 口占 用 I/ O 地址为 238h、379h、37ah。在计算机启动时, 系 统将依次检测到 的并口命名为 L PT 1、LP T 2、L PT 3, 并分配给相对应的资源, 而本控制软件的编制是基于
D0 数制 0 二进制
1 BCD
下, 一开始输出为高电平, 在写入计数值后, 计数器将 立即对输入时钟 CLK 计数。在计数过程中, 输出始终 保持为高, 直至计数器减到 1 时, 输出将变低, 经过一 个 CLK 周期, 输出恢复为高, 且计数器开始重新计数, 它的突出特点是能够连续工作。如果计数器值为 N, 则 每输入 N 个 CL K 脉冲, 输出一负脉冲。 2. 2 矩形波发生器方案设计及工作原理
8254 的控制字与工作方式如表 1 所示, 这里仅简 要叙述一下工作方式 2 的特点, 8254 的详细资料可查 参考文献 1 与 2。
工作方式 2 是速率发生器工作方式。在这种方式
收稿日期: 2002—06—03
·6·
胡建华, 等: 一种计算机可控脉冲宽度和脉冲间隔的矩形波发生器
D7 D 6 计数器
关键词: 计算机控制, 频率, 波型发生器 【Abstract】 T his paper developes a rect angular w av e g enerat or w hich pulse duration and pulse w idth can be adjusted separately . It is com put er controlled and the least adjustm ent is 0. 25 s w ith t he maximum f requency of 2M Hz. Keywords: computer control , frequency , wave generator
L PT 1 口的。I/ O 地址 378h、379h、37ah 对应着三个八 位寄存器, 其寄存器各位与 L PT 1 口的引脚对应关系 如表 2 所示。其中, 0378h 是数据寄存器, 与 L PT 1 口
八位数据线相联系, 0379h 是状态寄存器, 其后五位与 L PT 1 口五位状态线相联系, 在该矩形波发生器中并 未使用, 037ah 为控制寄存器, 低四位用于对 8254 的 控制, 它的各位与 8254 控制引脚的对应关系如表 3 所 示。
过调节可变电阻( 或电容) 就可实现矩形波频率的连续 可调, 基于 8038 的矩形波发生器还有三角波、正弦波 输出可选, 但这两种电路参数的调节都必须辅以示波 器观察才能实现, 这对于工业生产中要求实时控制脉 冲源频率( 例如脉冲镀电源等) 是个严重缺陷; 此两种 电路为防止器件损坏必然对电流和电压有一 定的限 制, 因此, 占空比不能在 0% ~100% 的范围内连续调 节。
电子工程师
计算机应用
V ol. 28 N o. 10 2002
一种计算机可控脉冲宽度和脉冲间隔 的矩形波发生器
A Computer-Control led Rectangul ar Wave Generator
淮海工学院计算机系 ( 江苏盐城 222005) 胡建华 曲 毅
【摘 要】 研制了脉宽、脉间可调的矩形波发生器, 综合比较了几种电路的优缺点, 设计出了 计算机控制的脉冲宽度、脉冲间隔最小调整量为 0. 25 s, 最高频率可达 2MHz 的矩形波发生器。
在寄存器 037ah 中置 D0、D1、D2 位为 “1”时, 对 应针脚输出为低电平。所以, 发往 8254 的控制信号不
仅要先非一次, 而且要与二进制数 00000111B 进行异
或运算, 两次处理合起来, 则控制信号发往并口前需与 数 8( 不考虑高 4 位) 进行异或运算。
8254 工作之前必须先写入控制字, 而后再写入计
WR、A0、A1。8254 的片选端恒接低电平。从计算机来 的数据都经过光电隔离, 由于打印并口没有电源线, 所 以, 在电路中增加非门以提高信号的驱动能力, 此时,
通往 8254 的电平信号与打印并口的相应数据线电平
信号相反, 所以, 在编制程序进行控制时, 数据发往并 口前需要进行一次非运算, 其它细节不再详述。
00 选择计数器 0 01 选择计数器 1 10 选择计数器 2 11 选择计数器 3
表 1 8254 的控制字
D 5 D 4 读/ 写格式
00 计数器锁存 01 只读/ 写最低有效字节 10 只读/ 写最高有效字节
11 先写最低有效字节 再写最高有效字节
D3 D2 D 1 工作方式
000 工作方式 0 001 工作方式 1 * 10 工作方式 2 * 11 工作方式 3 100 工作方式 4 101 工作方式 5
·8·
图5 程序为:
mov al, 15 ; 准备数据, 控制 端 D; x or al, 8 ; 实际输出数据; out dx , al ; 数据输出;
至此, 完成了 8254 计数器 0 的控制字写入, 其它 控制字及计数值的写入都与上述相似。这里, 存在几个 要点: 必须先发出计数器地址, 再发出写信号, 否则易 产生误写入; 在每次输入后, 必须有一定的等待时间以 确保与外设速度相匹配; 最后一步操作, 将WR重置为 “1”是必须的, 实际上, 8254 在WR信号的下降沿和上 升沿读入两次数据, 并以上升沿时所读数据为准。
2。
图2
对应程序为:
mov dx , 0378h ; 数据端口地址送往 dx 寄存器 mov al , 034h ; 准备数据 not al ; 实际输出的数据 mov dx , al ; 输出数据
其次, 将寄存器地址发往 8254, 即, 使 8254 的 A0 = 1, A1= 1, 而WR= 1, RD= 1, 对应数据见图 3。
上述两种矩形波发生电路, 振荡频率都取决于 R、 C, 而高低电平的翻转主要取决于门电路的阈值。而在 电路状态临近转换时, 电容的充、放电已经比较缓慢, 转换电平的微小变换或轻微的干扰都会严重影响振荡 周期, 因此, 频率稳定性相对较差; 而这两种电路对温 度和电源的稳定性都要求较高; 4M Hz, 最小脉宽、 脉间调整指标为 0. 25 s, 最高频率可达 2M 。根据 8254
图6
胡建华, 等: 一种计算机可控脉冲宽度和脉冲间隔的矩形波发生器
的性能, 亦可选用 6MHz~8M Hz 的晶振, 以进一步提 高技术指标。
此设计较为简单, 成本低, 使用方便, 可通过计算 机实现对矩形波发生器频率的实时控制。利用汇编语 言编程嵌入到 VC+ + 的控制界面, 使操作更加方便。
由于 8254 内共有三个互相独立的计数器, 所以, 可以利用其中两个计数器分别作脉宽和脉间的控制, 每个计数器对晶振产生的脉冲信号进行计数, 计数到 一定值时, 分别使 D 触发器置数和清零, 从而产生一 给定占空比的矩形波。若晶振为 4M , 则脉宽、脉间的 解析度可达 0. 25 s, 其工作原理如图 1 所示。
口共有 25 针, 其中有 8 位数据线, 4 位控制线和 5 位
状态线, 其它都为地线, 其在端口上的分布如下所示:
引脚 1: 选通 引脚 4: DB2
引脚 2: DB0 引脚 5: DB3
引脚 3: DB1 引脚 6: DB4
引脚 7: DB5 引脚 10: 应答 引脚 13: 选择 引脚 16: 初始化 引脚 19: GN D 引脚 22: GN D 引脚 25: GN D
下面两种电路是其中的代表: ( 1) 基于 555 定时器 的矩形波发生器, 555 定时器用途广泛, 可以组成施密 特触发器、单稳态触发器以及多谐振荡器等多种实用 电路。由它构成的矩形波发生器成本低廉, 其频率上限 为 50kHz 左右。( 2) 采用集成芯片 8038 构成的矩形波 发生器可同时获得矩形波, 三角形与正弦波。其中, 三 角波通过电容恒流充放电而直接形成, 矩形波由控制 信号获得, 正弦波由三角形通过折线近似电路获得, 因 此, 获得的正弦波不是平滑曲线, 失真率为 1% 左右。 基于 8038 的矩形波发生器最低频率约为 0. 001Hz, 最 高频率可达 300kHz。
启动计数, 当计数器 1 减到 1 时, 又使 D 触发器置 1。 如此循环往复, 在 D 触发器的 Q 端得到一给定占空比 的矩形波, 其脉宽为 N 1T , 脉间为 N 2T , 其中, N 1、N 2 为 计数器 0 和 1 的预置数, 而 T 为晶振脉冲周期。
2. 3 电路设计与软件编制
此发生器利用计算机打印并口进行控制。打印并
图1
设初始值 Q 为“1”, 则计数器 1 的 GAT E 为“0”,
被封锁, 而计数器 0 的 GAT E 为“1”, 对晶振脉冲进行 计数, 计数到 1 时, OU T 输出一个负脉冲使 D 触发器 清零, 此时, 计数器 0 的 GAT E 端为低电平, 被禁止计 数, 而计数器 1 的 GAT E 端为高电平, 被恢复初值, 并
图3
对应程序为:
mov dx , 037ah ; 控制端 D 地址送往 dx 寄存器; mov al, 15 ; 准备数据; x or al, 8 ; 实际输出数据; out dx , al ; 数据输出
而后, 将写信号发往 8254, 其它信号不变, 数据见 图 4。
程序为:
mov al, 7 ; 控制端 的地址送往 dx 寄存器; x or al, 8 ; 实际输出数据; out dx , al ; 数据输出;
0 37 aH
选择 17 初始化 16 自动进纸 14 选通 1
数据 状态 控制
表 3 037ah 与 8254 的控制对应
D3
选择
WR
D2 初始 化
RD
D1 自动进纸 A 1
D0
选通
A0
最后, 取消写操作, 设WR= 1, 其它信号不变, 数据 见图 5。
图4
制方式。程序顺序如下: 首先, 将数据即控制字内容发往 8254, 数据见图
引脚 8: DB6 引脚 11: 忙 引脚 14: 自动进纸 引脚 17: 选择 引脚 20: G ND 引脚 23: G ND
引脚 9: DB7 引脚 12: 缺纸 引脚 15: ER R 引脚 18: GN D 引脚 21: GN D 引脚 24: GN D
在发生器设计中, 并行口 8 位数据线作为 8254 的 8 位数据输入线, 而 4 位控制线分别控制 8254 的RD、
1 引 言
目前广泛应用的矩形波发生器电路有许多种, 有 基于正反馈、施密特触发器的, 也有基于多谐振荡电路 与单稳态电路的。无论是数字式还是模拟式的, 或是两 种的混合, 其定时元件大多是电容和电阻( 有时也包括 电感) , 时间常数往往与 RC 有关, 这些电路成熟且简 单实用, 但同时也各有其局限性。
数值, 现以写入 8254 计数器 0 控制字为例说明程序编
·7·
电子工程师
计算机应用
V ol. 28 N o. 10 2002
表 2 L PT 1 I/ O 口寄存器各位定义
D7 D 6
D5
D4
D3
D2
D1
D0
0378H DB7 D B6 D B5 DB4 DB3
D B2
DB1
DB0
0379H 忙 11 应答 10 缺纸 12 选择 13 ER R 15