定时器市公开课一等奖省赛课获奖课件_第1页
定时器市公开课一等奖省赛课获奖课件_第2页
定时器市公开课一等奖省赛课获奖课件_第3页
定时器市公开课一等奖省赛课获奖课件_第4页
定时器市公开课一等奖省赛课获奖课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定时器/计数器定时器第1页9MCS-51定时器/计数器软件延时占据CPU时间,CPU效率极低控制中常有定时任务(周期性工作)在操作系统中任务调度(轮转)时间片功效计数要求(绕制线圈,流水线上工件,自动包装机械)定时器第2页定时与计数原理事件脉冲fosc预分频初值存放器溢出回零门+1/-1二进制计数器加计数减计数MCS-51计数是加还是减?定时器第3页相关定时/计数器SFR

TMOD:方式字

TCON:控制字

TH0TL0:0#计数/初值存放器

TH1TL1:1#计数/初值存放器

T2CON:2#控制字

TH2TL2:2#计数存放器

RCAP2HRCAP2L:2#初值/捕捉存放器定时器第4页没有位寻址功效只能使用字节传送MOVTMOD,#..T0,T1方式控制字GATEGATEC/TM1M0C/TM1M0T1控制字段T0控制字段

TMOD89H启用P3.2/P3.3(分别对应于T0/T1)作为外部控制引脚0为定时1为计数M1,M0为方式0,1,2,3编码定时器第5页控制字存放器TF1TF0TR0TR1IE1IE0IT0IT1TCON88HT0触发控制T1触发控制T0溢出标志T1溢出标志编程指令采取CLRTR0/TR1SETBTR0/TR1定时器第6页方式0,1信号流图方式0、方式1计数/定时范围哪个更大?相对于原理框图,初值存放器在什么地方?定时器第7页方式2信号流图本计数方式有没有初值存放器?计数范围有多大?假如问定时时长呢范围?定时器第8页方式2优缺点以晶体频率12MHz为例,预分频÷12,实际计数频率为1MHz,按时钟周期来看,相当于1uS;方式2计数范围是0~255,假如是0,则256次加以后产生溢出,所以溢出周期是256uS=0.256mS=0.000256s;缺点:长时间定时、大范围计数是不适当。优点:初值由硬件重装,所以溢出周期非常准确。软件重装初值难免或多或少延误,不够准确。定时器第9页T0方式3信号流图定时器第10页定时器/计数器应用经初始化,在CPU执行程序同时,硬件进行计时或计数,形成并行工作;当计时/计数到,则请求CPU处理;如此就提升了CPU执行效率,防止了软件延时或等候(无效率程序循环)。程序中初试化硬件包含工作方式设定,开启;在中止方式工作时,CPU必须开中止。定时器第11页T0/T1初始化TMOD方式设置计数初值计算、TH1(TH0),TL1(TL0)设置。开启定时/计数。假如需要请求中止,则需要开启中止;以下讨论计数初值计算。定时器第12页方式013位计数,范围0~213-1;方式116位计数,范围0-216-1;方式2,3为8位计数,范围0~255;最小定时单位:fosc/12T0/T1初始化计数初值范围定时器第13页例9-1晶体频率为12MHz,欲每5ms能向CPU发出一个定时处理请求。试编程完成初始化任务。解:选T0,定时工作方式;标准MCS-51单片机硬件预分频是1/12,所以进入T0脉冲频率是f=fosc/12=12/12=1MHz;即计数周期为tc=1/f=1us;5ms需要计数为5×10-3/1×10-6=5000;选13位方式即可,计算范围为213=8192,方式0;计数初值为:8192–5000=31923192=0C78h=01100011,11000B(分为高8位与低5位)定时器第14页初始化语句 MOV TMOD,#00000000B ;T0无GATE,Timer,Mode0MOV TH0,#63H ;01100011BMOV TL0,#18H ;11000BSETB TR0… 定时器第15页另解假如选取方式1,是16位方式,计算范围为216=65536,计数初值为:65536–5000=61536=F060H初始化语句:MOV TMOD,#00000001h ;T0无GATE,Timer,Mode0MOV TH0,#0F0HMOV TL0,#60HSETB TR0…

思索:假如是采取T1,应该怎样做?定时器第16页初始化T1,T0时相互影响TMOD控制着T0和T1方式初试化或重新T0、T1初试化之一时,TMOD必须按字节寻址,可能影响到另外一个定时器工作方式处理方法是两个定时器一并设置;或者采取以下方法:定时器第17页TMOD访问方法以T0设置为无GATE,定时;方式1为例向TMOD送数:MOV A,TMOD ;读回当前TMODANL A,#0F0h ;高4位T1方式保留ORL A,#01h ;低4位设定方式MOV TMOD,A ;初始化T0不影响T1定时器第18页例9-2以P1.0,P1.1,P1.3分别控制三相步进电机A,B,C三相依次通电,通电规律为“A-AB-B-BC-C-CA-A-...”,换相时间间隔为0.5ms(CPU时钟为6MHz)。采取T0定时,查询方式工作。定时器第19页解:CPU时钟为6MHz,则计数频率为6MHz/12=0.5MHz,周期为2μs;定时间隔为0.5ms=500μs;计数值为500μs/2μs=250;只需要8位计数就够了,选取方式2。初值为28-250=6定时器第20页通电规律A-AB-B-BC-C-CA-A-...各相通电规律能够用查表方法实现,依据通电规律和A,B,C与P1.0,P1.1,P1.2对应关系,能够组成数据表以下:00000001B,00000011B,00000010B,00000110B,00000100B,00000101B或(10进制)1,3,2,6,4,5 定时器第21页算法循环地、依次取表中数据送到P1口为查表设置一个指针变量X每次取一数以后指针加1当指针大于等于6就会到0送数间隔由T0定时器决定,能够查询TF0。正常情况指针本身小于6,这里为了容错。定时器第22页程序——初始化部分

CSEG AT 0000H

LJMP STARTMAIN_C SEGMENT

CODE

RSEG MAIN_CSTART: MOV P1,#0 ;步进电机各相断电

MOV TMOD,#00000010B ;T0,无GATE,定时,方式2

MOV TH0,#6 ;初值存放器初值

MOV TL0,#6 ;第一次计数初值,以后重载

SETB TR0 ;开启定时器T0定时器第23页程序(控制部分)

MOV B,#0 ;表指针清0

MOV DPTR,#TABLE ;表首地址设置LOOP: JNB TF0,LOOP ;(TF0)=0,等候

CLR TF0

MOV A,B

MOVC A,@A+DPTR ;查表指令

MOV P1,A

;送数,步进电机通电相序改变

INC B ;表指针+1调整

MOV A,#5 ;表指针比较值

CLR C

SUBB A,B ;减法,比较

JNC LOOP ;无进位,(B)≤5,继续

MOV B,#0 ;不然,(B)←0

SJMP LOOPTABLE: DB 1,3,2,6,4,5 ;通电相序表

END定时器第24页例9-3在某牛奶自动灌装线上,每检测到20瓶,产生一个装箱指令脉冲,使相关设备动作。试用MCS-51型微控制器计数器实现该控制要求。检测信号从T1引脚(P3.5)输入,指令脉冲从P1.2输出。定时器第25页解:自动灌装线上装有传感装置,每检测到一瓶牛奶向T1引脚发送一个脉冲信号;使用计数功效,可实现该控制要求;选T1方式2;初值为256-20=236=ECh。

定时器第26页程序:

CSEG AT0000H

LJMP STARTMC SEGMENT MC

RSEG MCSTART:CLR T1 ;去除输出

MOVTMOD,#60H ;T1,无GATE,计数,方式2

MOVTL1,#0ECH ;初值

MOVTH1,#0ECH ;初值

SETBTR1 ;开启LOOP:WAIT:JBCTF1,OUT

AJMPWAITOUT: SETBP1.2

NOP NOP NOP CLRP1.2

AJMPLOOP

END定时器第27页MOV TMOD,#00000001BMOV TH0,#1FhMOV TL0,#00hSETB TR0MOV COUNT,#0 ;计数清0用MCS-51MCU组成一个石英时钟:fosc=11.0592MHz,每秒需要计数921600次;1/16秒需要计数57600次,在T0或T1允许范围之内;硬件计数每个周期57600个时钟,再用软件与之结合,对一个变量进行累加,计满16就是一秒;60秒为一分,60分为1小时,…计数时间间隔初值计算65536-57600=7936=1F00h,高8位是1Fh,低8位是00h,方式1、定时、结累计数变量定时器第28页例采取双积分A/D,芯片ICL7135与单片机怎样连接?电压输入在BUSY为高电平期间,对CLK计数,设该计数值为N,则(N-10000)与输入电压成正比。[(N-10000)小于0]T0INT0(P3.2)AT89S51定时/计数?用GATE?什么方式?MOVTMOD,#????????BCLKVinBUSY7135CLK怎样利用用MCS-51系列单片机取得这个计数、而且由此计算得到当前电压值?双积分A/D原理:电容电压正反向积分定时器第29页ADVAL SEGMENT DATA ;定义数据段 RSEG ADVAL ;为可相对段RESULT: DS 2 ;A/D结果保留两个字节 CSEG AT0000H ;程序起点,绝对定位 LJMP START ;跳转到相对段继续执行AD7135 SEGMENT CODE RSEG AD7135START: MOV TMOD,#00001101B ;T0带GATE,Count,方式1 MOV A,#0 ;初值初始化 MOV TH0,A MOV TL0,A MOV RESULT,A MOV RESULT+1,A

定时器第30页BIG_LOOP: JB INT0,BIG_LOOP ;等候INT0为低

SETB TR0 ;开启T0计数 WAIT_H: JNB INT0,WAIT_H ;等候直到INT变WAIT_L: JB INT0,WAIT_L ;等候直到INT又低 CLR TR0 CLR C MOV A,TL0 ;读取低位计数值

SUBB A,#10H ;10000=2710H,减低位

MOV RESULT+1,A ;保留结果低位

MOV A,TH0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论