CN103970056A - 一种解决8254可编程计数器在计数方面问题的装置及方法 - Google Patents

一种解决8254可编程计数器在计数方面问题的装置及方法 Download PDF

Info

Publication number
CN103970056A
CN103970056A CN201410219818.2A CN201410219818A CN103970056A CN 103970056 A CN103970056 A CN 103970056A CN 201410219818 A CN201410219818 A CN 201410219818A CN 103970056 A CN103970056 A CN 103970056A
Authority
CN
China
Prior art keywords
counter
pin
chip microcomputer
phase
state buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410219818.2A
Other languages
English (en)
Other versions
CN103970056B (zh
Inventor
王利强
周丽
王飞
张德星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avic Anzhen Zhejiang Information Technology Co ltd
Zhejiang Powerful Weizhi Intellectual Property Operation Co ltd
Original Assignee
Tianjin University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin University of Technology filed Critical Tianjin University of Technology
Priority to CN201410219818.2A priority Critical patent/CN103970056B/zh
Publication of CN103970056A publication Critical patent/CN103970056A/zh
Application granted granted Critical
Publication of CN103970056B publication Critical patent/CN103970056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)
  • Microcomputers (AREA)

Abstract

本发明公开了一种解决8254可编程计数器在计数方面问题的装置及方法,包括8254计数器和单片机控制电路、八相三态缓冲器74LS244辅助电路;8254计数器和单片机控制电路完成8254通道级联和单片机对8254预送正脉冲任务,利用8254计数器读回指令加1修正解决计数问题;八相三态缓冲器74LS244辅助电路完成计数初值装入,当脉冲来临时完成计数器的减1计数,解决无计数脉冲和计数值偏低问题;本发明的装置及方法具有提高8254计数器计数精准度的特点。

Description

一种解决8254可编程计数器在计数方面问题的装置及方法
技术领域
本发明涉及一种可编程计数器的应用,属于半导体应用领域,具体地说,涉及一种解决8254可编程计数器在计数方面问题的装置和方法。
背景技术
Intel8254是一种通用的可编程定时/计数器,内含3个独立的16位定时/计数器(T/C),由于芯片本身的特性,使之在事件计数时存在一定的问题。
(1)无计数脉冲问题;8254控制字的装入与时钟无关,即使没有时钟输入,控制字仍然可以装入控制字寄存器,但是,计数初值必须经过一个完整的正脉冲才能被装入计数寄存器;当外部没有时钟输入时,初值则不能被装入计数寄存器,此时从计数器中读取的值是不确定的,无意义。
(2)计数值偏低问题;在写入初值后第一个正脉冲的下降沿只是把初值装入计数寄存器,并不开始计数,而是在下一个正脉冲的下降沿才开始减1计数。
(3)通道级联问题;当外部计数范围超过65536时,可以把计数器0和计数器1通道级联,构成一个32位的计数器,其计数初值分别为N0和N1,但同时也出现了问题;问题一:当计数值小于65536时,计数器1的初值N1没被装入寄存器,则从通道1读出的值是无意义的;问题二:计数器0的计数值应减至0时,才向计数器1借位,但实际上计数器0的计数值减到1时,就向计数器1借位,计数器1开始减1,若此时读值,则计数器1多减1,计数值比实际值大N0;问题三:当读后一个通道的计数值时,前一个通道的计数值可能改变了。
《8254在事件计数方面的问题与解决》,三明职业大学电子系的饶连周在三明职业大学学报第1期发表,发表时间1999年,该文献公开了一种利用MCS-51单片机和74LS74双D触发器外加译码器的方法解决8254计数器在事件计数方面存在的问题,该方法电路连接繁琐,仅仅使用双D触发器难以避免计数值偏低的问题。
发明内容
针对上述存在的问题和现有技术的不足,本发明的目的在于提供一种解决8254可编程计数器在计数方面问题的方法。
本发明的技术方案是:一种解决8254可编程计数器在计数方面问题的装置,包括8254计数器和单片机控制电路,其特征在于,还包括74LS244八相三态缓冲器辅助电路。
所述8254计数器和单片机控制电路包括8254计数器U3、8254计数器U5、单片机U4、电阻R3、电容C3、电容C1、晶振Y1、电容C2;8254计数器U3的1脚至8脚和8254计数器U5的1脚至8脚共同与单片机U4的22脚至29脚相连,8254计数器U3的21脚与单片机U4的36脚相连,8254计数器U3的22脚、8254计数器U5的22脚与单片机U4的37脚相连,8254计数器U3的23脚、8254计数器U5的23脚与单片机U4的38脚相连,8254计数器U3的19脚、8254计数器U5的19脚与单片机U4的39脚相连,8254计数器U3的20脚、8254计数器U5的20脚与单片机U4的40脚相连,8254计数器U3的16脚和8254计数器U3的18脚共同接地,8254计数器U3的14脚、8254计数器U3的11脚与8254计数器U5的14脚、8254计数器U5的11脚共同接电源Vcc,8254计数器U5的21脚与单片机U4的35脚相连,8254计数器U5的16脚和8254计数器U5的18脚共同接地,单片机U4的9脚与电阻R3的一端、电容C3的一端相连,电阻R3的另一端接电源Vcc,电容C3的另一端接地,单片机U4的12脚与晶振Y1的一端、电容C1的一端相连,电容C1的另一端接地,单片机U4的13脚与晶振Y1的另一端、电容C2的一端相连,电容C2的另一端接地,单片机U4的10脚、单片机U4的30脚、单片机U4的32脚共同接电源Vcc,单片机U4的31脚、单片机U4的11脚共同接地。
所述74LS244八相三态缓冲器辅助电路包括7474双D触发器U1、74LS244八相三态缓冲器U2、外部输入信号端P1;7474双D触发器U1的3脚与7474双D触发器U1的9脚相连,7474双D触发器U1的4脚接电源Vcc,7474双D触发器U1的2脚与单片机U4的34脚相连,7474双D触发器U1的1脚、单片机U4的2脚与8254计数器U5的13脚相连,7474双D触发器U1的10脚、7474双D触发器U1的11脚与74LS244八相三态缓冲器U2的4脚、外部输入信号端P1的3脚相连,7474双D触发器U1的12脚与7474双D触发器U1的13脚共同接地,7474双D触发器U1的6脚与74LS244八相三态缓冲器U2的1脚相连,74LS244八相三态缓冲器U2的2脚与8254计数器U3的10脚相连,74LS244八相三态缓冲器U2的6脚与8254计数器U5的10脚相连,74LS244八相三态缓冲器U2的8脚与外部输入信号端P1的2脚相连,74LS244八相三态缓冲器U2的19脚与单片机U4的33脚相连,74LS244八相三态缓冲器U2的11脚、74LS244八相三态缓冲器U2的13脚、74LS244八相三态缓冲器U2的15脚、74LS244八相三态缓冲器U2的17脚与单片机U4的1脚相连,74LS244八相三态缓冲器U2的18脚、74LS244八相三态缓冲器U2的3脚与8254计数器U3的15脚相连,74LS244八相三态缓冲器U2的16脚、74LS244八相三态缓冲器U2的5脚与8254计数器U3的9脚相连,74LS244八相三态缓冲器U2的14脚、74LS244八相三态缓冲器U2的7脚与8254计数器U5的15脚相连,74LS244八相三态缓冲器U2的12脚、74LS244八相三态缓冲器U2的9脚与8254计数器U5的9脚相连,外部输入信号端P1的1脚接地。
一种解决8254可编程计数器在计数方面问题的方法,包括如下步骤:
(1)8254计数器U3和8254计数器U5的GATE0、GATE1四个端口共同连接电源Vcc,始终保持高电平,实现两片8254计数器的通道级联;并且8254计数器U3和8254计数器U5的接口寄存器选择端A0与单片机U4的PA0控制端口连接,8254计数器U3和8254计数器U5的接口寄存器选择端A1与单片机U4的PA1控制端口连接、8254计数器U3和8254计数器U5的读信号端与单片机U4的PA3控制端口连接,8254计数器U3和8254计数器U5的写信号端与单片机U4的PA2控制端口连接、8254计数器U3的片选端与单片机U4的的PA4控制端口连接,8254计数器U5的片选端与单片机U4的PA5控制端口连接,8254计数器U3和8254计数器U5的三态双向数据端D0~D7连接单片机U4的PC7~PC0控制端口;
(2)8254计数器U3和8254计数器U5向各自的内部控制字寄存器写入方式控制字,选定内部计数器0和内部计数器1,确定要使用的内部计数器0和内部计数器1的工作方式,并向内部计数器0和内部计数器1写入计数初值,完成8254计数器U3和8254计数器U5的初始化;
还包括以下步骤:
(3)单片机U4的PA7控制端口先输出低电平使74LS244八相三态缓冲器U2的端口使能,74LS244八相三态缓冲器U2的输入端2A1~2A4与输出端2Y1~2Y4导通,使单片机U4的PB0控制端口给定的脉冲与8254计数器U3和8254计数器U5的脉冲输入CLK相连,并且单片机U4输出正脉冲,当计数脉冲来临时计数器1和计数器2的计数初值同时都被装入寄存器;
(4)单片机U4的PA7控制端口后输出高电平使74LS244八相三态缓冲器U2的端口不使能,单片机U4向7474双D触发器U1的数据输入1D端口发送高电平,7474双D触发器U1的反向输出端口1QN输出低电平使74LS244八相三态缓冲器U2的端口使能,74LS244八相三态缓冲器U2的输入端口1A1~1A4与输出端口1Y1~1Y4导通,外部计数脉冲经过P1的输入端口2与8254计数器U5的内部计数器0的脉冲端相连,74LS244八相三态缓冲器U2的输入端口1A1端与8254计数器U5的内部计数器0的借位输出端相连,74LS244八相三态缓冲器U2的输入端口1A3与8254的计数器U3的内部计数器0的借位输出端相连,在有连续脉冲信号且GATE信号为高电平时8254计数器U3和8254计数器U5的内部计数器0和内部计数器1开始计数,单片机U4选通外部时钟源;若外部计数脉冲未输入,则8254计数器U3和8254计数器U5的内部计数器0和内部计数器1不开始计数,继续等待外部计数脉冲信号的来临;
(5)开始计数后,单片机U4读取8254计数器U3和8254计数器U5的回读寄存器锁存的内部计数器0和内部计数器1的状态和计数值,待计数停止时判断8254计数器U3和8254计数器U5的内部计数器0的值是否为1,若不为1,则无需矫正,继续脉冲计数;若为1,则将8254计数器U3和8254计数器U5的内部计数器1的值加1修正,然后再继续脉冲计数。
与现有技术相比,本发明的有益效果是:
1.解决8254计数器的计数问题。利用74LS244八相三态缓冲器和7474双D触发器,结合软件编程能有效解决8254计数器存在的无计数脉冲问题、计数值偏低问题和通道级联问题。
2.准确度高。通过软硬件结合,解决问题的同时大大提高了8254计数器的计数精准度。
3.操作简单。本发明采用单片机和8254计数器为核心部件,组件少,操作简单。
附图说明
图1是本发明的8254可编程计数器通用芯片的内部逻辑图。
图2是本发明的8254可编程计数器通用芯片的计数器内部逻辑图。
图3是本发明的8254可编程计数器通用芯片的外部引脚图。
图4是本发明的8254方式2的工作时序图。
图5是本发明的8254的控制字格式图。
图6是本发明的8254读回命令控制字格式图。
图7是8254所存在的计数值偏低问题波形示意图。
图8是本发明的八相三态缓冲器74LS244的引脚和对应真值表图。
图9是本发明的8254计数器和单片机控制电路连接图。
图10是本发明的八相三态缓冲器74LS244辅助电路连接图。
图11是本发明的软件解决方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的说明。
首先,简述8254可编程计数器的基本构成和工作方式。参见图1,8254计数器内部逻辑包括与CPU相连的数据总线缓冲器、读/写控制逻辑、控制字寄存器和三个计数器;CPU通过数据总线缓冲器向8254计数器写入控制命令、计数初值或读当前计数值;读/写控制逻辑用于控制8254计数器内部寄存器的读/写操作;控制字寄存器存储控制字指令,设定8254计数器不同的工作方式;三个计数器完全相同但是彼此独立,各自可按照编程设定的方式工作。
参见图2,计数器内部逻辑包括初始值寄存器CR、一个减“1”计数执行部件CE和一个16位输出锁存计数器OL,配有控制逻辑电路、控制字寄存器和状态寄存器等。初始值一旦写入CR,则自动送入CE;当门控信号GATE有效时,CE按时钟信号CLK减“1”计数,CE减为0时,由OUT引脚输出计数回零信号;在计数过程中,OL跟随CE的变化。当CPU写入锁存命令时,OL锁存当前计数值,直至CPU读取计数值之后,OL再继续跟随CE的值;作为发生器时计数初值N=fi/f0,fi为输入CLK频率,f0为OUT输出频率,在不同工作方式及定时/计数时的应用不同。
参见图3,8254计数器外部引脚中D0~D7为三态双向数据端;为读写信号,低电平有效;为片选端,低电平有效;A0、A1为接口寄存器选择端;CLK0~CLK2为时钟输入端,输入定时/计数脉冲;GATE0~GATE2为门控制输入端,控制计数器的启动或停止,高电平有效;OUT0~OUT2为输出端,输出波形取决于工作模式;Vcc为+5V供电电源端;GND接地。
参见图4,8254计数器的每个计数器都有六种计数方式,在本实施例中,我们使用的是工作方式2,方式2的具体工作过程为:8254计数器先完成初始化,控制字CW写入之后,OUT初始电平为高,在计数初值N被装入初值寄存器CR后第一个CLK的下降沿将N装入计数执行单元CE,待CLK的下一个下降沿到来且门控信号GATE为高电平时,计数器启动减“1”计数,此时OUT仍保持高电平,直到计数值减到“1”时,OUT才输出低电平,维持一个时钟周期后又恢复为高电平,同时自动将计数初值N加载到CE,再重复以上过程,形成循环计数;输出低电平的时间是一个时钟周期,从一个输出脉冲到下一个输出脉冲的时间等于计数初值N。
参见图5,显示了8254计数器的控制字格式,因为对8254计数器的编程是通过先写控制字,再写初值来实现的,其中SC1SC0为计数器选择位,SC1SC0=00对应选择计数器0,SC1SC0=01对应选择计数器1,SC1SC0=10对应选择计数器2,SC1SC0=11对应读回命令;RW1RW0为读/写格式选择位,RW1RW0=00时计数器锁存,RW1RW0=01时只读/写计数器的低字节,RW1RW0=10时只读/写计数器的高字节,RW1RW0=11时先读/写计数器的低字节,再读/写计数器的高字节;M2M1M0为工作方式选择位,M2M1M0=110或111对应选择工作方式2,BCD对应的是计数码制选择位,取0时以16位二进制计数,取1时以二-十进制计数。
参见图6,8254计数器的一个显著特点就是具有读回状态功能,读回命令可以将三个计数器的计数值和状态锁存,并向CPU返回一个状态字,控制字格式中D7D6=11是读回命令的标志位,D5=0为锁存计数值,D4=0为锁存状态信息,D3~D1是计数器选择位,一次可以锁存一个或多个计数器的状态值或状态信息,当某一计数器中的状态值或状态信息被CPU读取后,锁存失效;读回命令写入控制端口,状态信息和计数值都通过计数器端口读取;如果使读回命令的D5和D4位都为0,即状态信息和计数值都要读回,读取的顺序是:先读取状态信息,后读取计数值。
8254计数器在计数时所存在的问题可参见图7,8254计数器在写入初值后第一个正脉冲的下降沿只是把初值装入计数寄存器,并不开始计数,而是在下一个正脉冲的下降沿才开始减“1”计数;因此,在a处被拉高时,计数器少计1个脉冲;在b处被拉高时,计数器少计2个脉冲,从而出现计数值偏低的现象。
参见图8,在本实施例中使用八相三态缓冲器74LS244解决无计数脉冲问题和计数值偏低问题,八相三态缓冲器74LS244中为使能控制端,低电平有效,1A1~1A4和2A1~2A4为输入端,1Y1~1Y4和2Y1~2Y4为输出端,当使能端为低电平时,输出与输入保持一致,当使能端为高电平时,输入端无论为高电平还是低电平,输出端均为高阻态。
参见图9,8254计数器和单片机控制电路包括8254计数器U3、8254计数器U5、单片机U4、电阻R3、电容C3、电容C1、晶振Y1、电容C2;8254计数器U3的1脚至8脚和8254计数器U5的1脚至8脚共同与单片机U4的22脚至29脚相连,8254计数器U3的21脚与单片机U4的36脚相连,8254计数器U3的22脚、8254计数器U5的22脚与单片机U4的37脚相连,8254计数器U3的23脚、8254计数器U5的23脚与单片机U4的38脚相连,8254计数器U3的19脚、8254计数器U5的19脚与单片机U4的39脚相连,8254计数器U3的20脚、8254计数器U5的20脚与单片机U4的40脚相连,8254计数器U3的16脚和8254计数器U3的18脚共同接地,8254计数器U3的14脚、8254计数器U3的11脚与8254计数器U5的14脚、8254计数器U5的11脚共同接电源Vcc,8254计数器U5的21脚与单片机U4的35脚相连,8254计数器U5的16脚和8254计数器U5的18脚共同接地,单片机U4的9脚与电阻R3的一端、电容C3的一端相连,电阻R3的另一端接电源Vcc,电容C3的另一端接地,单片机U4的12脚与晶振Y1的一端、电容C1的一端相连,电容C1的另一端接地,单片机U4的13脚与晶振Y1的另一端、电容C2的一端相连,电容C2的另一端接地,单片机U4的10脚、单片机U4的30脚、单片机U4的32脚共同接电源Vcc,单片机U4的31脚、单片机U4的11脚共同接地。
参见图10,74LS244八相三态缓冲器辅助电路包括7474双D触发器U1、74LS244八相三态缓冲器U2、外部输入信号端P1;7474双D触发器U1的3脚与7474双D触发器U1的9脚相连,7474双D触发器U1的4脚接电源Vcc,7474双D触发器U1的2脚与单片机U4的34脚相连,7474双D触发器U1的1脚、单片机U4的2脚与8254计数器U5的13脚相连,7474双D触发器U1的10脚、7474双D触发器U1的11脚与74LS244八相三态缓冲器U2的4脚、外部输入信号端P1的3脚相连,7474双D触发器U1的12脚与7474双D触发器U1的13脚共同接地,7474双D触发器U1的6脚与74LS244八相三态缓冲器U2的1脚相连,74LS244八相三态缓冲器U2的2脚与8254计数器U3的10脚相连,74LS244八相三态缓冲器U2的6脚与8254计数器U5的10脚相连,74LS244八相三态缓冲器U2的8脚与外部输入信号端P1的2脚相连,74LS244八相三态缓冲器U2的19脚与单片机U4的33脚相连,74LS244八相三态缓冲器U2的11脚、74LS244八相三态缓冲器U2的13脚、74LS244八相三态缓冲器U2的15脚、74LS244八相三态缓冲器U2的17脚与单片机U4的1脚相连,74LS244八相三态缓冲器U2的18脚、74LS244八相三态缓冲器U2的3脚与8254计数器U3的15脚相连,74LS244八相三态缓冲器U2的16脚、74LS244八相三态缓冲器U2的5脚与8254计数器U3的9脚相连,74LS244八相三态缓冲器U2的14脚、74LS244八相三态缓冲器U2的7脚与8254计数器U5的15脚相连,74LS244八相三态缓冲器U2的12脚、74LS244八相三态缓冲器U2的9脚与8254计数器U5的9脚相连,外部输入信号端P1的1脚接地。单片机U4的PA7输出低电平使74LS244八相三态缓冲器U2的控制端使能,74LS244八相三态缓冲器U2的输入端2A1和输出端2Y1、输入端2A2和输出端2Y2、输入端2A3和输出端2Y3、输入端2A4和输出端2Y4分别导通,单片机U4的PB0端口与CLK1-0、CLK1-1、CLK0-0和CLK0-1相连,并且单片机U4的PB0端口输出正脉冲,在有计数脉冲时8254计数器U3和8254计数器U5的内部计数器0和内部计数器1的计数初值同时都被装入8254计数器的内部寄存器,然后单片机U4输出高电平使74LS244八相三态缓冲器U2的控制端不使能,单片机U4向7474双D触发器U1的数据输入端发送高电平,7474双D触发器U1的反向输出端输出低电平使74LS244八相三态缓冲器U2的控制端使能,74LS244八相三态缓冲器U2的输入端1A1和输出端1Y1、输入端1A2和输出端1Y2、输入端1A3和输出端1Y3、输入端1A4和输出端1Y4分别导通,外部计数脉冲经外部计数脉冲外部信号输入端P1的2脚输入与8254计数器U5的内部计数器0的脉冲端相连,74LS244八相三态缓冲器U2的输入端1A1与8254计数器U3的内部计数器0的借位输出端相连,74LS244八相三态缓冲器U2的输入端1A3与8254计数器U5内部计数器0的借位输出端相连,内部计数器0和内部计数器1均开始计数;通过单片机U4对8254计数器U3和8254计数器U5的CLK预送正脉冲,使得计数初值装入8254计数器的内部寄存器,再当CLK与外部计数脉冲输入相连时,8254计数器开始减1计数,解决了计数值偏低的问题,即使外部无计数脉冲,由于初值已被装入寄存器,此时计数器内的值也是正确的。
参见图11,解决8254可编程计数器在计数方面问题的方法包括如下步骤:
(1)8254计数器U3和8254计数器U5的GATE0、GATE1四个端口共同连接电源Vcc,始终保持高电平,实现两片8254计数器的通道级联;并且8254计数器U3和8254计数器U5的接口寄存器选择端A0与单片机U4的PA0控制端口连接,8254计数器U3和8254计数器U5的接口寄存器选择端A1与单片机U4的PA1控制端口连接、8254计数器U3和8254计数器U5的读信号端与单片机U4的PA3控制端口连接,8254计数器U3和8254计数器U5的写信号端与单片机U4的PA2控制端口连接、8254计数器U3的片选端与单片机U4的的PA4控制端口连接,8254计数器U5的片选端与单片机U4的PA5控制端口连接,8254计数器U3和8254计数器U5的三态双向数据端D0~D7连接单片机U4的PC7~PC0控制端口;
(2)8254计数器U3和8254计数器U5向各自的内部控制字寄存器写入方式控制字,选定内部计数器0和内部计数器1,确定要使用的内部计数器0和内部计数器1的工作方式,并向内部计数器0和内部计数器1写入计数初值,完成8254计数器U3和8254计数器U5的初始化;
(3)单片机U4的PA7控制端口先输出低电平使74LS244八相三态缓冲器U2的端口使能,74LS244八相三态缓冲器U2的输入端2A1~2A4与输出端2Y1~2Y4导通,使单片机U4的PB0控制端口给定的脉冲与8254计数器U3和8254计数器U5的脉冲输入CLK相连,并且单片机U4输出正脉冲,当计数脉冲来临时计数器1和计数器2的计数初值同时都被装入寄存器;
(4)单片机U4的PA7控制端口后输出高电平使74LS244八相三态缓冲器U2的端口不使能,单片机U4向7474双D触发器U1的数据输入1D端口发送高电平,7474双D触发器U1的反向输出端口1QN输出低电平使74LS244八相三态缓冲器U2的端口使能,74LS244八相三态缓冲器U2的输入端口1A1~1A4与输出端口1Y1~1Y4导通,外部计数脉冲经过P1的输入端口2与8254计数器U5的内部计数器0的脉冲端相连,74LS244八相三态缓冲器U2的输入端口1A1端与8254计数器U5的内部计数器0的借位输出端相连,74LS244八相三态缓冲器U2的输入端口1A3与8254的计数器U3的内部计数器0的借位输出端相连,在有连续脉冲信号且GATE信号为高电平时8254计数器U3和8254计数器U5的内部计数器0和内部计数器1开始计数,单片机U4选通外部时钟源;若外部计数脉冲未输入,则8254计数器U3和8254计数器U5的内部计数器0和内部计数器1不开始计数,继续等待外部计数脉冲信号的来临;
(5)开始计数后,单片机U4读取8254计数器U3和8254计数器U5的回读寄存器锁存的内部计数器0和内部计数器1的状态和计数值,待计数停止时判断8254计数器U3和8254计数器U5的内部计数器0的值是否为1,若不为1,则无需矫正,继续脉冲计数;若为1,则将8254计数器U3和8254计数器U5的内部计数器1的值加1修正,然后再继续脉冲计数。

Claims (4)

1.一种解决8254可编程计数器在计数方面问题的装置,包括8254计数器和单片机控制电路,其特征在于,还包括74LS244八相三态缓冲器辅助电路。
2.根据权利要求1所述的解决8254可编程计数器在计数方面问题的装置,其特征在于,所述8254计数器和单片机控制电路包括8254计数器U3、8254计数器U5、单片机U4、电阻R3、电容C3、电容C1、晶振Y1、电容C2;8254计数器U3的1脚至8脚和8254计数器U5的1脚至8脚共同与单片机U4的22脚至29脚依次相连,8254计数器U3的21脚与单片机U4的36脚相连,8254计数器U3的22脚、8254计数器U5的22脚与单片机U4的37脚相连,8254计数器U3的23脚、8254计数器U5的23脚与单片机U4的38脚相连,8254计数器U3的19脚、8254计数器U5的19脚与单片机U4的39脚相连,8254计数器U3的20脚、8254计数器U5的20脚与单片机U4的40脚相连,8254计数器U3的16脚和8254计数器U3的18脚共同接地,8254计数器U3的14脚、8254计数器U3的11脚与8254计数器U5的14脚、8254计数器U5的11脚共同接电源Vcc,8254计数器U5的21脚与单片机U4的35脚相连,8254计数器U5的16脚和8254计数器U5的18脚共同接地,单片机U4的9脚与电阻R3的一端、电容C3的一端相连,电阻R3的另一端接电源Vcc,电容C3的另一端接地,单片机U4的12脚与晶振Y1的一端、电容C1的一端相连,电容C1的另一端接地,单片机U4的13脚与晶振Y1的另一端、电容C2的一端相连,电容C2的另一端接地,单片机U4的10脚、单片机U4的30脚、单片机U4的32脚共同接电源Vcc,单片机U4的31脚、单片机U4的11脚共同接地。
3.根据权利要求1所述的解决8254可编程计数器在计数方面问题的装置,其特征在于,所述74LS244八相三态缓冲器辅助电路包括7474双D触发器U1、74LS244八相三态缓冲器U2、外部信号输入端P1;7474双D触发器U1的3脚与7474双D触发器U1的9脚相连,7474双D触发器U1的4脚接电源Vcc,7474双D触发器U1的2脚与单片机U4的34脚相连,7474双D触发器U1的1脚、单片机U4的2脚与8254计数器U5的13脚相连,7474双D触发器U1的10脚、7474双D触发器U1的11脚与74LS244八相三态缓冲器U2的4脚、外部信号输入端P1的3脚相连,7474双D触发器U1的12脚与7474双D触发器U1的13脚共同接地,7474双D触发器U1的6脚与74LS244八相三态缓冲器U2的1脚相连,74LS244八相三态缓冲器U2的2脚与8254计数器U3的10脚相连,74LS244八相三态缓冲器U2的6脚与8254计数器U5的10脚相连,74LS244八相三态缓冲器U2的8脚与外部信号输入端P1的2脚相连,74LS244八相三态缓冲器U2的19脚与单片机U4的33脚相连,74LS244八相三态缓冲器U2的11脚、74LS244八相三态缓冲器U2的13脚、74LS244八相三态缓冲器U2的15脚、74LS244八相三态缓冲器U2的17脚与单片机U4的1脚相连,74LS244八相三态缓冲器U2的18脚、74LS244八相三态缓冲器U2的3脚与8254计数器U3的15脚相连,74LS244八相三态缓冲器U2的16脚、74LS244八相三态缓冲器U2的5脚与8254计数器U3的9脚相连,74LS244八相三态缓冲器U2的14脚、74LS244八相三态缓冲器U2的7脚与8254计数器U5的15脚相连,74LS244八相三态缓冲器U2的12脚、74LS244八相三态缓冲器U2的9脚与8254计数器U5的9脚相连,外部信号输入端P1的1脚接地。
4.一种解决8254可编程计数器在计数方面问题的方法,包括如下步骤:
(1)8254计数器U3和8254计数器U5的GATE0、GATE1四个端口共同连接电源Vcc,始终保持高电平,实现两片8254计数器的通道级联;并且8254计数器U3和8254计数器U5的接口寄存器选择端A0与单片机U4的PA0控制端口连接,8254计数器U3和8254计数器U5的接口寄存器选择端A1与单片机U4的PA1控制端口连接、8254计数器U3和8254计数器U5的读信号端与单片机U4的PA3控制端口连接,8254计数器U3和8254计数器U5的写信号端与单片机U4的PA2控制端口连接、8254计数器U3的片选端与单片机U4的的PA4控制端口连接,8254计数器U5的片选端与单片机U4的PA5控制端口连接,8254计数器U3和8254计数器U5的三态双向数据端D0~D7连接单片机U4的PC7~PC0控制端口;
(2)8254计数器U3和8254计数器U5向各自的内部控制字寄存器写入方式控制字,选定内部计数器0和内部计数器1,确定要使用的内部计数器0和内部计数器1的工作方式,并向内部计数器0和内部计数器1写入计数初值,完成8254计数器U3和8254计数器U5的初始化;
其特征在于,还包括以下步骤:
(3)单片机U4的PA7控制端口先输出低电平使74LS244八相三态缓冲器U2的端口使能,74LS244八相三态缓冲器U2的输入端2A1~2A4与输出端2Y1~2Y4导通,使单片机U4的PB0控制端口给定的脉冲与8254计数器U3和8254计数器U5的脉冲输入CLK相连,并且单片机U4输出正脉冲,当计数脉冲来临时计数器1和计数器2的计数初值同时都被装入寄存器;
(4)单片机U4的PA7控制端口后输出高电平使74LS244八相三态缓冲器U2的端口不使能,单片机U4向7474双D触发器U1的数据输入1D端口发送高电平,7474双D触发器U1的反向输出端口1QN输出低电平使74LS244八相三态缓冲器U2的端口使能,74LS244八相三态缓冲器U2的输入端口1A1~1A4与输出端口1Y1~1Y4导通,外部计数脉冲经过P1的输入端口2与8254计数器U5的内部计数器0的脉冲端相连,74LS244八相三态缓冲器U2的输入端口1A1端与8254计数器U5的内部计数器0的借位输出端相连,74LS244八相三态缓冲器U2的输入端口1A3与8254的计数器U3的内部计数器0的借位输出端相连,在有连续脉冲信号且GATE信号为高电平时8254计数器U3和8254计数器U5的内部计数器0和内部计数器1开始计数,单片机U4选通外部时钟源;若外部计数脉冲未输入,则8254计数器U3和8254计数器U5的内部计数器0和内部计数器1不开始计数,继续等待外部计数脉冲信号的来临;
(5)开始计数后,单片机U4读取8254计数器U3和8254计数器U5的回读寄存器锁存的内部计数器0和内部计数器1的状态和计数值,待计数停止时判断8254计数器U3和8254计数器U5的内部计数器0的值是否为1,若不为1,则无需矫正,继续脉冲计数;若为1,则将8254计数器U3和8254计数器U5的内部计数器1的值加1修正,然后再继续脉冲计数。
CN201410219818.2A 2014-05-22 2014-05-22 一种解决8254可编程计数器在计数方面问题的装置及方法 Active CN103970056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410219818.2A CN103970056B (zh) 2014-05-22 2014-05-22 一种解决8254可编程计数器在计数方面问题的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410219818.2A CN103970056B (zh) 2014-05-22 2014-05-22 一种解决8254可编程计数器在计数方面问题的装置及方法

Publications (2)

Publication Number Publication Date
CN103970056A true CN103970056A (zh) 2014-08-06
CN103970056B CN103970056B (zh) 2016-10-12

Family

ID=51239692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410219818.2A Active CN103970056B (zh) 2014-05-22 2014-05-22 一种解决8254可编程计数器在计数方面问题的装置及方法

Country Status (1)

Country Link
CN (1) CN103970056B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115834304A (zh) * 2023-02-14 2023-03-21 苏州萨沙迈半导体有限公司 Lin协议波特率检测装置及芯片设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0113935A2 (en) * 1982-12-22 1984-07-25 Philips Electronics Uk Limited Timer circuit
CN203117286U (zh) * 2013-01-09 2013-08-07 酒泉职业技术学院 一种基于单片机宽量程高精度频率计
CN203896330U (zh) * 2014-05-22 2014-10-22 天津职业技术师范大学 一种可编程计数器装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0113935A2 (en) * 1982-12-22 1984-07-25 Philips Electronics Uk Limited Timer circuit
CN203117286U (zh) * 2013-01-09 2013-08-07 酒泉职业技术学院 一种基于单片机宽量程高精度频率计
CN203896330U (zh) * 2014-05-22 2014-10-22 天津职业技术师范大学 一种可编程计数器装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
卢建华: "用8253/8254实现对事件发生次数的统计", 《武汉科技大学学报(自然科学版)》, vol. 26, no. 2, 30 June 2003 (2003-06-30) *
赵修良 等: "基于8254-2、单片机与S7-224XP PLC的核脉冲计数", 《河南科技(电子信息与计算机科学)》, no. 4, 30 April 2013 (2013-04-30) *
饶连周: "8254在事件计数方面的问题与解决", 《三明职业大学学报》, no. 1, 31 January 1999 (1999-01-31) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115834304A (zh) * 2023-02-14 2023-03-21 苏州萨沙迈半导体有限公司 Lin协议波特率检测装置及芯片设备
CN115834304B (zh) * 2023-02-14 2023-05-09 苏州萨沙迈半导体有限公司 Lin协议波特率检测装置及芯片设备

Also Published As

Publication number Publication date
CN103970056B (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
CN103440216A (zh) 一种通过i2c从设备调试mcu的芯片及方法
CN101382927B (zh) 集成在芯片内的高速串行外围接口电路
CN102621974B (zh) 基于通信总线的工业自动化实时控制装置及控制方法
CN203909710U (zh) 一种适用于SoC芯片的多功能低电平复位电路
CN101206614B (zh) 仿真特殊功能寄存器的仿真器
CN201083993Y (zh) 一种微控制器
CN104571263B (zh) 一种片上定时器
CN101183347A (zh) 一种自适应速率匹配总线的桥接电路
CN103793263A (zh) 一种基于PowerPC处理器的DMA事务级建模方法
CN203896330U (zh) 一种可编程计数器装置
CN102799546B (zh) 输出位信息的读写与时序控制器
CN200990087Y (zh) 一种8位精简指令集微控制器
CN103970056A (zh) 一种解决8254可编程计数器在计数方面问题的装置及方法
CN103064477B (zh) 一种服务器主板设计方法
CN103677742B (zh) 多浮点操作数加/减运算控制器
CN113010106B (zh) 一种基于fpga的总线复用型flash读写系统
CN102799549A (zh) 一种多源端口的数据处理方法及装置
CN202720637U (zh) 一种片上系统的串行通信接口
CN106375284A (zh) 一种基于stm32f103的三菱fx型plc通信转换器及转换方法
CN202221974U (zh) 基于cpld的步进电机控制器
CN109753713B (zh) 基于内部实体状态转移的数字电路功能建模方法及系统
CN103187967B (zh) 基于fpga的plc高速脉冲计数实现系统及方法
WO2023169420A1 (zh) 存储器控制系统及方法
EP4427142A1 (en) Real-time peripherals
CN104598410B (zh) 一种免写驱动程序的计算机板卡及其开发方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190506

Address after: 063000 No. 401, 112 Floor, Fengxiangyuan, Jiazhuang, Yuhua Road, North District, Tangshan City, Hebei Province

Co-patentee after: Zhang Tao

Patentee after: Wang Kunfang

Co-patentee after: Liu Dandan

Address before: No. 1310 Dagu South Road, Jinnan District, Tianjin

Patentee before: Tianjin University of Technology and Education

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191024

Address after: 315000 room 242, floor 2, No. 800, Chuangyuan Road, high tech Zone, Ningbo City, Zhejiang Province

Patentee after: AVIC anzhen (Zhejiang) Information Technology Co.,Ltd.

Address before: 315000 209-338, No. 10, Gui'an Road, Guisi street, new material technology city, Ningbo City, Zhejiang Province

Patentee before: Zhejiang powerful Weizhi Intellectual Property Operation Co.,Ltd.

Effective date of registration: 20191024

Address after: 315000 209-338, No. 10, Gui'an Road, Guisi street, new material technology city, Ningbo City, Zhejiang Province

Patentee after: Zhejiang powerful Weizhi Intellectual Property Operation Co.,Ltd.

Address before: 063000 No. 401, 112 Floor, Fengxiangyuan, Jiazhuang, Yuhua Road, North District, Tangshan City, Hebei Province

Co-patentee before: Zhang Tao

Patentee before: Wang Kunfang

Co-patentee before: Liu Dandan

TR01 Transfer of patent right