定时单片机_汇编.pptVIP

  • 0
  • 0
  • 约7.08千字
  • 约 29页
  • 2022-09-26 发布于广东
  • 举报
单片机原理及应用 定时单片机_汇编 第1页,共29页,编辑于2022年,星期三 模式2及应用 模式2结构——8位计数器 第2页,共29页,编辑于2022年,星期三 TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这里,16位计数器被拆成二个,TL0用作8位计数器,TH0用以保护初值。 在程序初始化时,TL0和TH0由软件赋予相同的初值。一旦TL0计数溢出,便置位TF0,并将TH0中的初值再自动装入TL0,继续计数,循环重复。用于定时工作模式时,其定时时间(TF0溢出周期)为 t=(28-TH0初值)×振荡周期×12 用于计数工作方式时,最大计数长度(TH0初值=0)为28=256(个外部脉冲)。 这种工作模式可省去用户软件中重装常数的语句,并可产生相当精确的定时时间,特别适于串行口波特率发生器。 第3页,共29页,编辑于2022年,星期三 在某啤酒自动生产线上,需要每生产10瓶执行装箱操作,将生产出的啤酒自动装箱。试用MCS-51单片机的计数器实现该控制要求。 解:如果在啤酒生产线上装有传感装置,每检测到一瓶啤酒经过就向单片机发送一个脉冲信号,这样使用计数功能就可实现。设用T0的工作方式2来完成该题目。 MOV TMOD,#06H,T0采用方式2计数 MOV TL0,#0F6H ;装入初值 MOV TH0,#0F6H MOV IE,#00H ;禁止中断 SETB TR0 ;启动定时T0,开始计数 LOOP:JBC TF0,LOOP1 AJMP LOOP LOOP1:(驱动电机转动) AJMP LOOP 第4页,共29页,编辑于2022年,星期三 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个500μs的同步脉冲。请编程实现该功能。 解:⑴模式选择 首先选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生溢出,使P1.0引脚恢复输出高电平,T0又恢复外部事件方式。 第5页,共29页,编辑于2022年,星期三 ⑵计数初值 T0工作在外部事件计数方式,当计数到28 时,再加1计数器就会溢出。设计数初值为X,当再出现一次外部事件时,计数器溢出。则 X+1=28 X=28-1=0FFH T0工作在定时方式时,设晶振频率为6MHz,500s相当于250个机器周期。因此,初值X为 (28-X)× 2μs=500μs X=28-250=6=06H 第6页,共29页,编辑于2022年,星期三 ⑶程序清单 START: MOV TMOD,#06H ;设置T0为模式2。外部计数方式 MOV TH0,#0FFH ;T0计数器初值 MOV TL0,#0FFH SETB TR0 ;启动T0计数 ? LOOP1: JBC TF0,PTFO1 ;查询T0溢出标志,TF0=1时转移 ?????????????????????????????? TF0=0(即查P3.4负跳变) ?????????????? SJMP LOOP1 PTFO1: CLR TR0 ;停止计数 ?????????????? MOV TMOD,#02H ;设置T0为模式2,定时方式 ?????????????? MOV TH0,#06H ;T0定时500us初值 ?????????????? MOV TL0,#06H ?????????????? CLR P1.0

文档评论(0)

1亿VIP精品文档

相关文档