- 1、本文档共90页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(2)电源控制寄存器PCON(Power Control) 87H IDL PD GF0 GF1 — — — SMOD 0 1 2 3 4 5 6 7 SMOD : 波特率加倍位 方式1/2/3,SMOD=1,波特率加倍 GF1 : 通用标志位 GF0 : 通用标志位 (2) T2的16位捕获方式 (3) T2的波特率发生器方式 只影响EXF2标志位 4、MCS-51定时/计数器编程举例 编程考虑: · 方式控制字TMOD设置 · 计数初始值的计算和装入THx、TLx、 RCAP2H、RCAP2L · 中断允许控制位ETx、EA的设置 · 启动/停止控制位TRx的设置 ※ 计数初值的计算 实际定时时间=(2n — 初始值)× (n =8,13,16) 1 ~ 256 1 ~ 65536 1 ~ 8192 fosc 12MHz (us) 1 ~ 256 1 ~ 65536 1 ~ 8192 定时时间 (机器周期数) 2 ~ 131072 16 2 ~ 16384 13 2 ~ 512 8 fosc 6MHz (us) n 实际计数次数=(2n — 初始值) (n =8,13,16) 例: 利用定时/计数器0,工作于方式0,输出周期为 2ms的方波,设单片机的振荡频率为12MHz 2ms 1ms ORG 0000H AJMP MAIN ORG 000BH AJMP INTT0 ORG 0040H MAIN:MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#18H SETB EA SETB ET0 SETB TR0 … SJMP $ INTT0:MOV TH0,#0E0H MOV TL0,#18H CPL P1.0 RETI END A、用中断方式实现 B、用查询方式实现 ORG 0000H MOV TMOD,#00H LOOP:MOV TH0,#0E0H MOV TL0,#18H SETB TR0 CONT:JBC TF0,NEXT SJMP CONT NEXT:CPL P1.0 SJMP LOOP END 例: 利用定时/计数器0,输出周期为2s的方波,设单 片机的振荡频率为12MHz 采用硬件定时与软件计数相结合的方法来实现 ORG 0000H AJMP MAIN ORG 001BH LJMP INTT0 ORG 0040H MAIN:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R7,#20 SETB EA SETB ET0 SETB TR0 … SJMP $ INTT0:MOV TH0,#3CH MOV TL0,#0B0H DJNZ R7,NEXT MOV R7,#20 CPL P1.0 NEXT: RETI END 例:设某系统,主频为12MHz,每10ms完成: 将累加器A内容左循环移位一次,并送P1 口输出。(用定时/计数器1实现) 定时时间:10ms; 机器周期:1/(12MHz/12)=1us 故工作方式:只能为方式1 10 ×1000=( 216— X)×1us X=65536-10000 =55536 =D8F0H ORG 0000H LJMP MAIN ORG 001BH LJMP INTT1 ORG 0040H MAIN:MOV SP,#60H MOV TMOD,#10H ;0001,0000B MOV TH1,#0D8H MOV TL1,#0F0H SETB EA ;开总中断 SETB ET1 ;定时/计数器1中断允许 ;预置初始值 1)用中断方式实现 SETB TR1 SJMP $ INTT1:MOV TL1,#0F0H MOV TH1,#0D8H RL A MOV P1,A RETI ;重新设置计数值 2)用查询方式实现 MAIN:MOV SP,#60H MOV TMOD,#10H ;0001,0000B LOOP:MOV TH1,#0D8H MOV TL1,#0F0H SETB TR1
文档评论(0)