AT89S51汇编语言程序设计9学习教案_第1页
AT89S51汇编语言程序设计9学习教案_第2页
AT89S51汇编语言程序设计9学习教案_第3页
AT89S51汇编语言程序设计9学习教案_第4页
AT89S51汇编语言程序设计9学习教案_第5页
已阅读5页,还剩39页未读, 继续免费阅读

下载本文档

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

文档简介

1、会计学1AT89S51汇编语言汇编语言(hu bin y yn)程程序设计序设计9第一页,共44页。n图图6-1 AT89S51单片机的定时器单片机的定时器/计计数器结构数器结构第1页/共44页第二页,共44页。T1(P3.5)两个引脚上的外部脉冲)两个引脚上的外部脉冲进行计数。进行计数。n定时器工作模式是对单片机的时钟定时器工作模式是对单片机的时钟(shzhng)振荡器信号经片内振荡器信号经片内12分频分频后的内部脉冲信号计数。由于时钟后的内部脉冲信号计数。由于时钟(shzhng)频率是定值,所以可根频率是定值,所以可根据计数值可计算出定时时间。据计数值可计算出定时时间。n计数器的起始计数都

2、是从计数器初计数器的起始计数都是从计数器初值开始的。单片机复位时计数器的值开始的。单片机复位时计数器的初值为初值为0,也可用指令给计数器装入,也可用指令给计数器装入一个新的初值。一个新的初值。第2页/共44页第三页,共44页。4第3页/共44页第四页,共44页。5图图6-3 TCON格式格式(g shi)T第4页/共44页第五页,共44页。n6.2.1 方式方式0nM1、M0=00时,被设置为工作方式时,被设置为工作方式0,等效逻辑结构框图(以定时器,等效逻辑结构框图(以定时器/计数器计数器T1为例,为例,TMOD.5、TMOD.4=00)。)。n13位计数器,由位计数器,由TLx(x=0,1

3、)低)低5位和位和THx高高8位构成。位构成。TLx低低5位溢位溢出则向出则向THx进位,进位,THx计数溢出则计数溢出则把把TCON中溢出标志位中溢出标志位TFx置置“1”。第5页/共44页第六页,共44页。n(1)C/ =0,电子开关打在上面位置,T1(或T0)为定时器工作模式,时钟振荡器12分频后脉冲作为计数信号(xnho)。n(2)C/ =1,电子开关打在下面位置,T1(或T0)为计数器工作模式,计数脉冲为P3.4(或P3.5)引脚上外部输入脉冲,当引脚上发生负跳变时,计数器加1。TT第6页/共44页第七页,共44页。,平,电子开关断开平,电子开关断开(dun ki),禁止,禁止T1(

4、或(或T0)计数。)计数。n(2) GATE=1,B点电位由点电位由(x=0,1)的输入电平和)的输入电平和TRx的状的状态这两个条件来确定。当态这两个条件来确定。当TRx=1,且且 =1时,时,B点才为点才为1,控制端控,控制端控制电子开关闭合,允许制电子开关闭合,允许T1(或(或T0)计数。计数。INTxxINTxINT第7页/共44页第八页,共44页。9T图6-5 定时器/计数器方式1逻辑结构(jigu)框图T第8页/共44页第九页,共44页。10图6-6 定时器/计数器方式(fngsh)2逻辑结构框图第9页/共44页第十页,共44页。11第10页/共44页第十一页,共44页。nTMOD

5、的低的低2位为位为11时,时,T0工作方工作方式选为方式式选为方式3,各引脚与,各引脚与T0逻辑关逻辑关系如图系如图6-8所示。所示。n定时器定时器/计数器计数器T0分为两个独立的分为两个独立的8位计数器位计数器TL0和和TH0,TL0使用使用T0的状态控制的状态控制(kngzh)位位C/ 、GATE、TR0、TF0 ,而,而TH0被固被固定为一个定为一个8位定时器(不能作为外部位定时器(不能作为外部计数模式),并使用定时器计数模式),并使用定时器T1的状的状态控制态控制(kngzh)位位TR1和和TF1,同,同时占用定时器时占用定时器T1的中断请求源的中断请求源TF1。T第11页/共44页第

6、十二页,共44页。13图图6-8 定时器定时器/计数器计数器T0方式方式(fngsh)3的逻辑结构框图的逻辑结构框图第12页/共44页第十三页,共44页。、工作在方式工作在方式(fngsh)1(fngsh)1。n图6-9 T0工作(gngzu)在方式3时T1为方式0的工作(gngzu)示意图图图6-10 T0工作工作(gngzu)在方式在方式3时时T1为方式为方式1的工作的工作(gngzu)示意图示意图第13页/共44页第十四页,共44页。n图图6-11 T0工作工作(gngzu)在方式在方式3时时T1为方式为方式2的工作的工作(gngzu)示意图示意图第14页/共44页第十五页,共44页。1

7、6第15页/共44页第十六页,共44页。17图6-12 对外部计数输入信号(xnho)的要求第16页/共44页第十七页,共44页。n基本思想:方波周期基本思想:方波周期T0T0确定,确定,T0T0每每隔隔1ms1ms计数溢出计数溢出1 1次,即次,即T0T0每隔每隔1ms1ms产生一次中断,产生一次中断,CPUCPU响应中断后,响应中断后,在中断服务子程序中对在中断服务子程序中对P1.0P1.0取反。取反。图图6-13 P1.0引脚上输出引脚上输出(shch)周期为周期为2ms的的方波方波第17页/共44页第十八页,共44页。n采用定时器中断方式工作。包括定采用定时器中断方式工作。包括定时器初

8、始化和中断系统初始化,主时器初始化和中断系统初始化,主要是对寄存器要是对寄存器IPIP、IEIE、TCONTCON、TMODTMOD的相应位进行正确的设置,并将计的相应位进行正确的设置,并将计数初值送入定时器中。数初值送入定时器中。n(3 3)程序设计)程序设计n中断服务子程序除了完成中断服务子程序除了完成(wn (wn chng)chng)所要求的产生方波的工作之所要求的产生方波的工作之外,还要注意将计数初值重新装入外,还要注意将计数初值重新装入定时器,为下一次产生中断做准备。定时器,为下一次产生中断做准备。第18页/共44页第十九页,共44页。nMOV TMOD,#01H;设置T0为方式1

9、定时nACALL PT0M0;调用初始化子程序PT0M0nHERE: AJMP HERE;原地循环,等待中断nPT0M0: MOV TL0,#0CH ;T0初始化,装初值的低8位n MOV TH0,#0FEH;装初值的高8位n SETB ET0;允许T0中断n SETB EA ;总中断允许n SETB TR0;启动T0n RET第19页/共44页第二十页,共44页。“AJMP HERE” 实际上是一段主程序。如CPU不做其他工作,可用查询方式进行控制,程序要简单得多。nMOVTMOD,#01H;设置T0为方式1nLOOP:MOVTH0,#0FEH ;T0置初值nMOVTL0,# 0CHnSET

10、BTR0 ;接通T0nLOOP1: JNB TF0,LOOP1 ;查TF0,TF0 =0, T0未溢出;n;TF0 =1,T0溢出,CLRTR0 ;T0溢出, 关断T0n CPLP1.0 ;P1.0的状态求反n SJMPLOOP第20页/共44页第二十一页,共44页。n方式方式2最长可定时最长可定时512s。n由上可见,可选方式由上可见,可选方式1,每隔,每隔100ms中断一次,中断中断一次,中断10次为次为1s。n(1)计算计数初值)计算计数初值Xn因为因为(yn wi)(216X)2106=101,所以所以X=15536=3CB0H。因此。因此TH0=3CH,TL0=B0H。n(2)10次

11、计数的实现次计数的实现n对于中断对于中断10次的计数,采用次的计数,采用B寄存寄存器作为中断次数计数器。器作为中断次数计数器。第21页/共44页第二十二页,共44页。第22页/共44页第二十三页,共44页。间到,停止T0工作nSETBF0;1s定时时间到标志F0置1nRTURN:RETIn程序说明:不论1s定时时间是否已到,都返回到“SJMP HERE”指令处。“SJMP HERE”指令实际是一段主程序。在这段主程序中再通过对F0标志的判定,可知1s定时是否到,再进行(jnxng)具体处理。第23页/共44页第二十四页,共44页。溢出标志溢出标志TF0作为外中断请求标志。作为外中断请求标志。n

12、基本思想:设为方式基本思想:设为方式2(自动装入常(自动装入常数方式)计数数方式)计数(j sh)模式,模式,TH0、TL0初值均为初值均为0FFH。当。当T0脚发生负脚发生负跳变时,跳变时,T0计数计数(j sh)溢出,溢出,TF0置置“1”,单片机发出中断请求。,单片机发出中断请求。n程序说明:当连接在程序说明:当连接在P3.4(T0脚)脚)的外部中断请求输入脚电平发生负的外部中断请求输入脚电平发生负跳变时,跳变时,TL0加加1,产生溢出,产生溢出,TF0置置“1”,向单片机发出中断请求,同,向单片机发出中断请求,同时时TH0的内容的内容0FFH送送TL0,即,即TL0恢复初值恢复初值0F

13、FH。nP3.4脚相当于一个负跳沿触发的外脚相当于一个负跳沿触发的外中断请求源输入。对中断请求源输入。对P3.5也可做类也可做类似的处理。似的处理。第24页/共44页第二十五页,共44页。nMOV TH0,#0FFHnSETB ET0;允许T0中断nSETB EA;总中断允许nSETB TR0;启动T0nnIT0P:外中断处理程序段n第25页/共44页第二十六页,共44页。出,溢出标志出,溢出标志TF0置置“1”,向,向CPU发发出中断请求,此时出中断请求,此时T0相当于一个负相当于一个负跳沿触发外部中断源。跳沿触发外部中断源。n进入进入(jnr)T0中断程序后,中断程序后,F0标志标志置置“

14、1”,说明,说明T0引脚上已接收过负引脚上已接收过负跳变信号。跳变信号。T1定义为方式定义为方式2定时。定时。在在T0引脚产生一次负跳变后,启动引脚产生一次负跳变后,启动T1每每500s产生一次中断,在中断产生一次中断,在中断服务子程序中对服务子程序中对P1.0求反,使求反,使P1.0产产生周期生周期1ms的方波。由于省去重新的方波。由于省去重新装初值指令,所以可产生精确的定装初值指令,所以可产生精确的定时时间。时时间。第26页/共44页第二十七页,共44页。图图6-14 6-14 负跳变负跳变(tio bin)(tio bin)触发输出一个周期为触发输出一个周期为1ms1ms的方波的方波第2

15、7页/共44页第二十八页,共44页。nSETB ET1 ;允许;允许T1产生定时中断产生定时中断(zhngdun)nSETB TR1 ;启动;启动T1nHERE:AJMP HERE第28页/共44页第二十九页,共44页。第29页/共44页第三十页,共44页。第30页/共44页第三十一页,共44页。反一次。反一次。nT1工作在方式工作在方式2的控制字的控制字TMOD=60H。不使用。不使用T0时,时,TMOD低低4位任取,但不能使位任取,但不能使T0为为方式方式3,这里取全,这里取全0。n(2)计算)计算T1的初值的初值nX=28100=156=9CHnTL1的初值为的初值为9CH,重装初值寄存

16、,重装初值寄存器器TH1=9CH。第31页/共44页第三十二页,共44页。#60H;设置;设置T1为方式为方式2计数计数nMOVTL0,#9CH ;T0置初值置初值nMOVTH0,#9CH nSETBTR1;启动;启动T1nHERE:AJMPHEREnEND n程序说明:由于程序说明:由于(yuy)T1的中断服的中断服务子程序只有两条指令,不超过务子程序只有两条指令,不超过8个个字节,所以进入字节,所以进入T1中断服务程序入中断服务程序入口后,没有选择再跳转。口后,没有选择再跳转。第32页/共44页第三十三页,共44页。率发生器时,率发生器时,T0才设置为方式才设置为方式3。此时,常把定时器此

17、时,常把定时器T1设置为方式设置为方式2,用作波特率发生器。用作波特率发生器。n【例【例6-6】假设某】假设某AT89S51单片机应单片机应用系统的两个外部中断源已被占用,用系统的两个外部中断源已被占用,设置设置T1工作在方式工作在方式2,用作波特率,用作波特率发生器。现要求增加一个外部中断发生器。现要求增加一个外部中断源,并控制源,并控制P1.0引脚输出一个引脚输出一个5kHz(周期为(周期为200s)的方波。设时钟)的方波。设时钟为为12MHz。n基本思想:设置基本思想:设置TL0工作在方式工作在方式3计计数模式,数模式,TL0初值设为初值设为0FFH,当检,当检测到测到T0脚信号出现负跳

18、变时,脚信号出现负跳变时,TL0溢出,同时向溢出,同时向CPU申请中断,这里申请中断,这里T0脚作为一个负跳沿触发的外部中脚作为一个负跳沿触发的外部中断请求输入端。在中断处理子程序断请求输入端。在中断处理子程序中,启动中,启动TH0,TH0事先被设置为事先被设置为方式方式3的的100s定时,从而控制定时,从而控制P1.0输出周期为输出周期为200s的方波信号。的方波信号。第33页/共44页第三十四页,共44页。nTL0的初值设为的初值设为0FFH。n5kHz方波的周期为方波的周期为200s,因此,因此(ync)TH0的定时时间为的定时时间为100s。n初值初值X计算:计算:(28X)1106=1104nX=28100=1

温馨提示

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

评论

0/150

提交评论