利用8253的计数器1产生频率为100KHz的方波
计数初值=输入脉冲频率/输出方波频率 =2MHz/100KHz =20d =14h
数据采集卡的计数器产生方波 数据采集卡电路图
数据采集卡的计数器产生方波 数据采集卡电路图
通道1、仅读写低字节、方式3、二进数,控制字为:01 01 011 0 b
初始化程序如下:
MOV AL, 01010110b
MOV DX, 183h
OUT DX, AL ;控制字写入8253控制口
;MOV AL, 14h
MOV DX, 181h
OUT DX, AL ;计数初值写入通道1低字节
labview 数据采集卡中 u 6009 能不能做到将(仿真信号,波形生成器)生成的方波信号(电压)模拟输出,
8路模拟输入通道(14位分辨率,48 kS/s)
2路模拟输出通道(12位分辨率, 150 S/s);12条数字I/O线,32分辨率计数器。
可以满足模拟输出。
还有数据采集卡方面的问题可以随时联系我。
编制一程序(使8253的计数器产生600Hz的方波)
设实验平台为AEDK8688ET,输入脉冲为1.2Mhz,那么要产生600hz的方波,则需要用方式3(方波发生器),计数初值为2000(1.2Mhz/600hz),程序如下:
.model
.stack 200h
.code
start:
mov dx,203h ;设8253片选地址为200h,则控制端口为203h
mov al,00110110b ;控制字,计数器0,先写低8位后高8位,方式3,二进制计数
out dx,al ;控制字送至控制端口
mov dx,200h ;计数器0端口地址
mov ax,2000 ;计数初值
out dx,al ;计数初值低8位送至计数器0
mov al,ah ;高8位先送al
out dx,al ;通过al将高8为送至计数器0
end start
8253计数器的时钟输入频率为1.MHz,为产生25MHz的方波输出信号,应向计数器装入的计数
8253计数器的时钟输入频率为1.MHz,那么,计数时钟的脉冲周期为1/(1.M)秒。
输出25KHz的方波输出信号,采用的是方式3。方波周期是1/(25K)秒。
那么需要的计数值=1/(25K)÷1/(1.M)=1.M/25K=76.4
可编程计数器时钟信号是方波吗
可编程计数器时钟信号是方波。通常时钟信号都是边沿触发的,只要信号达到触发电平,满足触发时序条件即可达到要求。方波的边沿较陡,通常较适合作为时钟信号使用。
方波是一种非正弦曲线的波形,通常会与电子和讯号处理时出现。理想方波只有高和低这两个值。电流或电压的波形为矩形的信号即为矩形波信号,高电平在一个波形周期内占有的时间比值称为占空比,也可理解为电路释放能量的有效释放时间与总释放时间的比值。
设In8253计数器的时钟输入频率为1MHz,为产生10KHz的方波输出信应向计数器装入初值是多少
时钟输入周期 =1/1MHz =1μs
10KHz的方波的半周期 =(1/10KHz)/2 =0.00005s = 50μs
计数器初装值 = 50μs/1μs = 50d = 32h
这些都属于计数器简单计算,具体如下:
时钟输入周期 =1/1MHz =1μs
10KHz的方波的半周期 =(1/10KHz)/2 =0.00005s = 50μs
计数器初装值 = 50μs/1μs = 50d = 32h
查询方式和中断方式都可以实现。
查询方式:
ORG 0000H
AJMP MAIN
ORG 0200H
MAIN : MOV TMOD , #01H //设置T0为定时方式,工作方式1
MOV TH0 , #3CH //给定时器T0置初值
MOV TL0 , #B0H
SETB TR0 //启动定时器T0
LOOP:JBC TF0 , NEXT //查询计数溢出没有,TF0=1时溢出则转NEXT执行
SJMP LOOP //未溢出则继续查询
NEXT :CPL P1.0 //取反,输出方波,至于你用哪个口输出,可以自己选择
SJMP LOOP