8253在生产线自动计数系统中的应用

发布者:龙爱泉也最新更新时间:2014-01-04 来源: hqew关键字:计数器  定时器  自动计数系统 手机看文章 扫描二维码
随时随地手机看文章
  在工厂自动化系统中,往往需要对产品进行定量包装,或随时统计在流水线上所生产的某种产品的数量。为满足工厂自动化的需求,我们采用微处理器和8253等芯片设计了一种自动计数系统。这种系统电路简单,造价低,适合中小企业使用。   8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器 通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。其CLK0~CLK2是计数器0~2的时钟脉冲输入端,GATE0~GATE2是门控脉冲输入端,OUT0~OUT2是输出端(见图1)。当用8253做外部事件计数器时,在CLK端所加的计数脉冲由外部事件产生,这些脉冲的间隔可以不相等。如果要用它做定时器,则CLK端应输入精确的时钟脉冲。这时,8253所能实现的定时时间决定于计数脉冲的频率和计数器的初值, 定时时间=时钟脉冲周期tc×预置的计数初值n
  8253的控制逻辑由5个控制信号和A0组成,对应的操作见表1。

?

  RL1,RL0——读/写操作位。00表示锁存数据,可随时读取计数器中的计数值;01表示只读/写低8位,高8位自动置为0;10表示只读/写高8位,低8位自动置为0;11表示读/写16位数据,先低8位,后高8位。
  M2,M1,M0——工作方式选择位。0~5表示方式0~5。方式0,计数完中断;方式1,可程控单触发操作;方式2,分频脉冲发生;方式3,分频方波发生;方式4,软件触发选通;方式5,硬件触发选通。其中方式0的工作过程如下:当程序送一控制字将所选的计数器置于所设定的方式后,该计数器的输出为低;当计数器初值装入被选中的计数器后,在外部输入的门控高电平的控制下,则可通过各自的计数脉冲进行递减计数。此时其输出仍为“低”。当计数器从初始值减到全“0”时,便产生一高电平输出,利用此输出信号向CPU发计数完中断;此中断请求一直保持到程序再次向计数器装入初值为止。
  BCD——计数方式选择位。1表示按十进制计数,0表示按二进制计数。  使用8253计数功能的电路见图1。

  当LED发光管与光电管之间无工件通过时,LED发出的光能够照在光电管上,使光电管导通,集电极变为低电平。此信号经74LS14驱动整形后送到8253的CLK1,使8253的CLK1端也为低电平。当LED发光管与光电管之间有工件通过时,LED发出的光被工件挡住,光电管截止,集电极变为高电平,使8253的CLK1端也为高电平。待工件通过后,CLK1端又回到了低电平。这样,每通过一个工件,就从CLK1端输入一个正脉冲,利用8253对此脉冲计数,就可以统计出工件的个数来。
  8253的A1和A0分别与CPU地址总线的A2和A1相连。GATE1接+5V,OUT1作为中断信号INT接到8259A的一个中断请求输入端IR2或者接51单片机的外部中断输入。本系统中设计的8253的端口地址分别为0350H,0352H,0354H,0356H。

  编程时,可选择计数器1工作在方式0。在8253的方式0工作方式中,从将计数初值写入计数器到开始减1计数之间,有一个时钟脉冲的延迟。若计数初值为n=999,那么经过n+1个即1000个脉冲时计数值减为0,并在OUT1端输出一正跳变,这可以作为中断请求。在中断服务子程序中CPU可以做其他处理,如送下一个包装箱等。
  设计数初值为1999(要求一个包装箱内装工件2000),按十进制计数,先送低8位,再送高8位,控制字为01110001B。
  初始化程序为:
  MOV AL,01110001B
 

  若自动计数系统中,在包装箱未装满之前想了解包装箱中已经装了多少个工件,我们可以利用8253的数据锁存功能;由于8253是减1计数器,可以读取计数器的现行值,再用装满值减去现行值,即得当前包装箱中的工件数。
  此时方式控制字为01000000B,实现上述功能的程序为:
  

关键字:计数器  定时器  自动计数系统 引用地址:8253在生产线自动计数系统中的应用

上一篇:用于单片机电路设计中切断干扰传播路径的措施
下一篇:基于单片机设计的智能定硫仪

推荐阅读最新更新时间:2024-03-16 13:33

STM32单片机的系统定时器初始化设置
正如之前文章所述,在使用外设功能时,都必须提前对其精心初始化才能使用其功能。 以下是系统定时器初始化的程序清单。 #include“stm32f10x_lib.h” unsigned char sys_nub;//系统定时器中断计数变量 //SysTick 设置 void SysTIck_Config(void) { //失能SysTIck定时器 SysTIck_CounterCmd(SysTIck_Counter_Disable); //失能SysTick中断 SysTick_ITConfig(DISABLE); //设置SysTick时钟源 SysTick_ClockSourceConfig(SysTick_Source_
[单片机]
STM32单片机的<font color='red'>系统</font><font color='red'>定时器</font>初始化设置
stm32f103zet6定时器详解及应用
  1、stm32f103zet6芯片及引脚图        2、stm32f103xx器件功能与配置      3、stm32f103zet6 定时器   大容量的STM32F103XX增强型系列产品包含最多2个高级控制定时器、4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。   下表比较了高级控制定时器、普通定时器和基本定时器的功能:   定时器功能比较      1)计数器三种计数模式   向上计数模式:从0开始,计到arr预设值,产生溢出事件,返回重新计时   向下计数模式:从arr预设值开始,计到0,产生溢出事件,返回重新计时   中央对齐模式:从0开始向上计数,计到arr产生溢出事件,然后
[单片机]
stm32f103zet6<font color='red'>定时器</font>详解及应用
利用定时器测量方波频率(P3^4口)
代码如下: #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code table_SMG = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};//位选 //-------------------------------变量区---------------------------------- uint date_F = 0;/
[单片机]
利用<font color='red'>定时器</font>测量方波频率(P3^4口)
STM32——定时器TIME模块之输入捕获
STM32的定时器模块有很强大的功能,除了普通的定时功能之外还可以进行输入捕获和输出比较(PWM),PWM已在别的文章中介绍过,现在介绍一下输入捕获。 在这里先说本人在测试时想到的两个疑问: 疑问1:STM32的同一个定时器是否能同时进行输入捕获和输出比较(PWM)? 疑问2:假设疑问1的答案是可以,那输入捕获的范围是不是受限制? 功能实现: 1、既然是输入捕获,肯定需要相关引脚对信号进行检测,所以需要查找开发手册和数据手册来确定是哪几个引脚,要用哪几个引脚,然后给予合适的配置(图1)。 2、要进行输入捕获实验,首先需要配置某个定时器的时基功能,这样我们才能根据这个时基计算我们的捕获信息;其次就是要配置输
[单片机]
STM32——<font color='red'>定时器</font>TIME模块之输入捕获
PLC中编写定时器计数器的自复位功能
CTU:加法计数器 分析:当计数值达到5,Q输出M300.0=1,在下一周期时执行复位 指令,使得计数值清零,之后Q输出M300.0=0,实现自复位计数器 并产生脉冲。M300.0有一个从1变0的过程。 计数器自复位程序 CTD减法计数器 了解内容:减计数器和加减计数器。要先装载LD,再减。每当0.0从“0”变为“1”, CV减少1;当MD4=0时,Q=1,此后每当CD从“0”变为“1”, Q保持输出“1”,CV继续减少1直到达到计数器指定的整数类型的最小值。 在任意时刻,只要I0.2=1时,Q输出“0”,CV立即停止计数并回到PV值。 C TD减法计数器 TON:接通延时 定时器 按下启动按钮, 电机 运行5秒自动停
[嵌入式]
PLC中编写<font color='red'>定时器</font>和<font color='red'>计数器</font>的自复位功能
PIC 1508 TIM0的定时器使用
使用TIM0的频率计算公式f=FOSC/4/PS/TMR0 (TMR0是TIM0的数据寄存器) void main() { OSCCON = 0x78;//主频率为16M 即FOSC = 16M __delay_ms(50); ANSC6 = 1; TRISC6 = 0; RC6 = 1;//RC6接了一盏LED OPTION_REG = 0xc0; /*TMR0CS = 0(内部指令周期时钟 (F OSC /4)) PSA=0 (预分频器分配给 Timer0 模块) PS=0(1比2分频)如果想要1:1分频,则PSA= 1;*/ TMR0IE = 1;//允许
[单片机]
PIC 1508 TIM0的<font color='red'>定时器</font>使用
单片机定时器0、1演示程序
//实验例程 大虾(DX-51)学习板 定时器0、1使用例程 #include reg52.h #include intrins.h //MCU51嵌入式专业仿真器占用3个字节程序空间0x003b,0x003c,0c003d, //使用code数组声明防止编译器将函数定位于此三字节所在程序空间上 unsigned char code DX58 _at_ 0x003b; unsigned char count; unsigned char direction; unsigned char delay1; unsigned char delay2; void timer0(void) interrupt 1 using 0 { T
[单片机]
Microchip低档单片机新增闪存数据存储
  Microchip宣布推出两款首次配备非易失性闪存数据存储器(FDM)的8引脚和14引脚封装低档 8位闪存PIC单片机。新器件利用64 字节数据存储器,结合了8 MHz的内置振荡器、器件复位定时器、多达3个8位模数转换通道及2个比较器等多种功能。   设计工程师在不断寻求性价比高的方法,力求在不增加设计复杂度的同时增加功能。通过在低档 8引脚和14引脚单片机中集成闪存数据存储器及模拟功能,PIC12F519(8引脚)及PIC16F526(14引脚)器件在无需外接非易失性存储器的条件下,实现配置及校准数据、计数器或小型查找表的存储。此外,设计人员还可利用单片机的数字智能及再编程能力来取代分立模拟元件。   PIC12F519
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved