6、定时计数.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6、定时计数.ppt

1)模式1的发送过程:用软件清除TI后,CPU执行任何一条以SBUF为目标寄存器的指令,就启动发送过程。 发送开始将起始位向TXD输出,每过一个移位时钟周期,由TXD输出一位数据,8位数据发送完后,置位TI,向CPU申请中断, 完成一次发送过程。 该模式发送的移位脉冲是由定时器/计数器T1送来的溢出信号经过16或32分频而取得的(取决于SMOD)。 START: MOV R0,#20H MOV R2,#31 CLR C AA: MOV A,@R0 SUBB A,#0AAH,BB JNZ BB MOV 51H,#01H RET BB: MOV 51H,#00H INC R0 DJNZ R2,AA RET P52 12、减法 二、 方式 1应用 方式 1 与方式0 基本相同, 只是方式 1 改用了 16 位计数器。 要求定时周期较长时, 13 位计数器不够用, 可改用 16 位计数器。  例 2 已知某生产线的传送带上不断地有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。假定红灯亮时停止统计, 红灯灭时才在上次统计结果的基础上继续统计, 试用单片机定时器/计数器T1的方式1完成该项产品的计数任务。 图 6.7 硬件原理图 1 初始化: TMOD 0D0H (GATE 1, C/T 1, M0M1 01) TCON 00H 2 T1在方式1时, 溢出产生中断, 且计数器回零, 故在中断服务程序中, 需用R0计数中断次数, 以保护累积计数结果。 3 启动T1计数, 开T1中断。  程序清单如下: ORG 0000H  AJMP START ; 复位入口 ORG 001BH AJMP T1INT ; T1中断入口 ORG 0100H START: MOV SP, #60H ; 初始化程序 MOV TCON, #00H MOV TMOD, #0D0H MOV TH1, #00H MOV TL1, #00H MOV R0, #00H ; 清中断次数计数单元 MOV P3, #28H; 设置P3.5第二功能 SETB TR1 ; 启动T1 SETB ET1; 开T1中断 SETB EA ; 开总中断 MAIN: ACALL DISP ; 主程序, 调显示子程序 … ORG 0A00H T1INT: INC R0 ; 中断服务子程序 RETI DISP: … ; 显示子程序 RET 三、 方式 2 应用 方式2是定时器自动重装载的操作方式, 在这种方式下, 定时器0和1的工作是相同的, 它的工作过程与方式0、方式 1 基本相同, 只不过在溢出的同时, 将8位二进制初值自动重装载,即在中断服务子程序中,不需要编程送初值, 这里不再举例。定时器T1工作在方式2时,可直接用作串行口波特率发生器。 四、 方式 3 的应用 定时器 T0 工作在方式3时是2个8位定时器/计数器。且TH0借用了定时器T1的溢出中断标志TF1和运行控制位TR1。 例 3 假设有一个用户系统中已使用了两个外部中断源, 并置定时器T1于方式2,作串行口波特率发生器用, 现要求再增加一个外部中断源,并由P1.0口输出一个5KHz的方波(假设晶振频率为6MHz)。 处理方法:在不增加其它硬件开销时, 可把定时器/计数器T0置于工作方式3, 利用外部引脚T0端作附加的外部中断输入端, 把TL0预置为0FFH,这样在T0端出现由1至0的负跳变时,TL0立即溢出,申请中断,相当于边沿激活的外部中断源。在方式3下,TH0总是作8位定时器用,可以靠它来控制由P1.0 输出的 5 kHz方波。  由P1.0输出5kHz的方波, 即每隔100μs使P1.0的电平发生一次变化。则TH0中的初始值 X M-N 256-100/2 206。下面是有关的程序。 MOV TL0, #0FFH  MOV TH0, #206 MOV TL1, #BAUD ; BAUD根据波特率要求设置常数 MOV TH1, #BAUD MOV TMOD, #27H ; 置T0工作方式3 ; TL0工作于计数器方式 MOV TCON, #55H ; 启动定时器 T0、 T1, 置外部中断 0 和 1 ; 为边沿激活方式 MOV IE, #9FH ; 开放全部中断 TL0 溢出中断服务程序(由 000BH单元转来):  TL0INT: MOV TL0, #0FFH … ; 外部引脚 T0 引起中断处理程序 RETI TH0 溢出

文档评论(0)

dreamzhangning + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档