AT89系列单片机的内部资源及应用-单片机原理与应用电子课件PPT.ppt

AT89系列单片机的内部资源及应用-单片机原理与应用电子课件PPT.ppt

  1. 1、本文档共118页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AT89系列单片机的内部资源及应用-单片机原理与应用电子课件PPT

2. RS-485标准接口 TTL电平到RS-485电平转换,一般使用芯片MC3487转换, RS-485电平到TTL电平转换,使用芯片MC3486转换。 TH0只能工作于8位的定时方式,并借用定时/计数器T1的控制位 和状态标志位TR1和TF1。TR1=1时,定时/计数器TH0开始计数, 当TH0计数溢出时置“1”溢出标志TF1。 6.3.3 定时/计数器的初始化编程及应用 例6-8 占空比不同信号发生器 10ms 90ms P1.0引脚输出周期为100ms 周期信号,高电平10ms,低电平90ms 使用定时/计数器T0产生10ms定时,T0工作于方式1,则计数初值如下: a=65536-10000=55536=D8F0H(十六进制) 具体程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP PINT0 ORG 0030H MAIN:MOV SP,#60H MOV 31H,#9 ;设置一个计数器 MOV TMOD,#01 ;定时/计数器初始化 MOV TH0,#0D8H MOV TL0,#0 F0H MOV IE,#81H CLR P1.0 CLR 00H SETB TR0 HERE:AJMP HERE PINT0:PUSH ACC PUSH PSW MOV TH0,#0D8H MOV TL0,#0 F0H JB 00H,LOW ;若00H为1,则输出90ms SETB P1.0 SETB 00H SJMP OUT LOW:CLR P1.0 DJNZ 31H,OUT MOV 31H,#9 CLR 00H OUT:POP PSW POP ACC RETI 例6-9 秒表的程序设计 单片机使用12MHz的晶振,定时/计数器T0工作于方式2,产生250μs定时,每1s使秒表显示缓冲器30H~32H实时计时. 缓冲器分配如下: 30H高四位为小时的十位,低四位为小时的个位 31H高四位为分钟的十位,低四位为分钟的个位; 32H高四位为秒的十位,低四位为秒的个位。 每1秒钟秒加1计时,当计时到59秒,下1秒到来时为1分钟, 秒清0,分钟加1,当计时到59分59秒,下1秒到来时为1小时, 分钟、秒清0,小时加1 能够计时的最长计时时间为99小时59分59秒。 解:(1)确定TMOD 定时/计数器T0工作于方式2的定时方式的定时方式 D7 D6 D5 D4 D3 D2 D1 D0 GATE M1 M0 GATE M1 M0 * * * * 0 0 1 0 (2)计算计数初值 由定时时间的计算公式: 计数初值a=6 T0中断4000次时时间为1s (3)程序如下: ORG 0000H LJMP MAIN ;设置跳转到主程序 ORG 000BH ;T0中断服务程序入口地址 LJMP PINTT0 ;设置跳转到中断服务程序 ORG 0030H MAIN: MOV SP,#60H ;主程序 MOV 36H,#10H MOV 37H,#0A0H ;4000=(0FA0H)中断次数放入计数单元 MOV TMOD,#02H MOV TL0,#6 MOV TH0,#6 MOV IE,#82H SETB TR0 SJMP $ PINTT0:PUSH PSW ;T0中断服务程序 PUSH ACC SETB RS0 ;选择1区的工作寄存器 DJNZ 37H,RETURN DJNZ 36H, RETURN ;4000次中断未到中断返回 MOV 36H,#10H MOV 37H,#0A0H ;4000次中断到来,计数器单元恢复初始值 MOV R0,#32H MOV A,@R0 ADD A,#1 DA A ;调整为十进制相加 MOV @R0,A CJNE A,#60H, RETURN ;修改秒表计时值,秒单元加1,不为60秒中断返回 MOV @R0,#0 ;为60秒,秒单元清0,分钟单元加1 DEC R0 MOV A,@R0 ADD A,#1 DA A MOV @R0,A CJNE A,#60H, RETURN ;若为60分钟,分钟单元清0,小时单元加1 MOV @R0,#0 DEC R0 MOV A,@R0 ADD A,#1 DA A MOV @R0,A RETURN:POP ACC ;恢复现场 POP PSW RETI

文档评论(0)

djdjix + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档