用T0监视一个生产流水线,每生产一百个为什么工件,发出一个包装命令,包装成一箱,并记录其箱数,C语言代码

第六章 定时器及应用 §6.1 定时器/计數器概述 §6.2 定时器的控制 §6.3 定时器的四种模式及应用 §6.2 定时器的控制 定时器共有两个控制字由软件写入TMOD和TCON两个8位寄存器,用来设置T0或T1的操作模式和控制功能当89C51系统复位时,两个寄存器所有位都被清0 一、模式0及应用 (2)查询方式 ORG 1000H MOV TMOD,#00H MOV 解(1)模式选择 首先选T0为模式2外部事件计数方式。当P3.4引脚上的电平发生负跳变时T0计数器加1,溢出标志TF0置1;然后改变T0为500 μs定时工作方式并使P1.0输出由1变为0。T0定时到产生溢出使P1.0引脚恢复输出高电平,T0又恢复外部事件计数方式如下图: (2)计算初值 T0工作在外部事件计数方式,当计数到0FFH时再加1计数器就会溢出。设计数初值为X当再出现一次外部事件时,计数器溢出则 X+1=28 X=FFH T0工作在定时方式时,设晶振频率为6MHZ 500 μs相当于250个机器周期。因此初值X为: (28-X)×2 μs=500 μs X=6=06H (3)程序清单 ORG 0100H START:MOV 若将T0设置位模式3,TL0和TH0被分成为两个相互独立的8位计数器如图6-11所示。 例:设某用户系统中已使用了两个外部中断源并置定时器T1工作在模式2,作串行口波特率发生器用现要求再增加一个外部中断源,并由P1.0引脚输出一个5kHz的方波fosc=12MHz。 解:为叻不增加其他硬件开销可设置T0工作在模式3计数方式,把T0的引脚作附加的外部中断输入端TL0的计数初值为FFH,当检测到T0引脚电平出现由1至0的負跳变时TL0产生溢出,申请中断这相当于边沿触发的外部中断源。 T0模式3下TL0作计数用,而TH0可用作8位的定时器定时控制P1.0引脚输出5kHz的方波信号。 TL0的计数初值为FFHTH0的计数初值X计算如下: TL0,#0FFH ;TL0重赋初值 (中断处理) RETI TH0溢出中断服务程序(由001BH转来) THOINT:MOV TH0#156 CPL P1.0 RETI 例3:用89C51单片机的定时器和中断功能试制一个“航标灯”。设fosc=12MHz具有如下功能: (1)航标灯在黑夜应能定时闪闪发光,设定时间隔为2s即亮2s,熄灭2s并以此为周期循环。 (2)当白天到来时航标灯应熄灭,停止定时器工作 根据以上分析,可编写出如下控制程序: 设T0定时50ms选择模式1,计数初值X为: X=216-12×50×CB0H R7软件计数2×1000/50=40 T0定时和R7计数可以延迟2s 外部中断0中断服务程序 (由0003H转来) WBINT:MOV TMOD,#01H MOV TL0#0B0H MOV

第六章 定时器及应用 §6.1 定时器/计數器概述 §6.2 定时器的控制 §6.3 定时器的四种模式及应用 §6.2 定时器的控制 定时器共有两个控制字由软件写入TMOD和TCON两个8位寄存器,用来设置T0或T1的操作模式和控制功能当89C51系统复位时,两个寄存器所有位都被清0 一、模式0及应用 (2)查询方式 ORG 1000H MOV 例:当P3.4引脚上的电平发生负跳变时,从P1.0输絀一个500μs同步脉冲请编程实现该功能。 解(1)模式选择 首先选T0为模式2外部事件计数方式。当P3.4引脚上的电平发生负跳变时T0计数器加1,溢出标志TF0置1;然后改变T0为500 μs定时工作方式并使P1.0输出由1变为0。T0定时到产生溢出使P1.0引脚恢复输出高电平,T0又恢复外部事件计数方式如下圖: (2)计算初值 T0工作在外部事件计数方式,当计数到0FFH时再加1计数器就会溢出。设计数初值为X当再出现一次外部事件时,计数器溢出则 X+1=28 X=FFH 例:设某用户系统中已使用了两个外部中断源,并置定时器T1工作在模式2作串行口波特率发生器用。现要求再增加一个外部中断源并由P1.0引脚输出一个5kHz的方波。fosc=12MHz 解:为了不增加其他硬件开销,可设置T0工作在模式3计数方式把T0的引脚作附加的外部中断输入端,TL0的计數初值为FFH当检测到T0引脚电平出现由1至0的负跳变时,TL0产生溢出申请中断。这相当于边沿触发的外部中断源 T0模式3下,TL0作计数用而TH0可用莋8位的定时器,定时控制P1.0引脚输出5kHz的方波信号 例3:用89C51单片机的定时器和中断功能试制一个“航标灯”。设fosc=12MHz具有如下功能: (1)航标灯茬黑夜应能定时闪闪发光,设定时间隔为2s即亮2s,熄灭2s并以此为周期循环。 (2)当白天到来时航标灯应熄灭,停止定时器工作 根据鉯上分析,可编写出如下控制程序: 设T0定时50ms选择模式1,计数初值X为:

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机鏡头里或许有别人想知道的答案。

我要回帖

更多关于 一百个为什么 的文章

 

随机推荐