- 1、本文档共135页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MOV IE,#82H ; 开T0中断,IE是:1 0 0 0 0 0 1 0 SETB TR0 ;启动T0定时。 MOV R0,#14H ; 软件计数器R0赋初值,调用20次。 LOOP: SJMP $ ;等待中断。 中断服务程序 ORG 000BH;定时器T0的中断入口地址。 AJMP BRT0跳转到用户中断服务程序。 ORG 0080H;用户中断程序起始地址。 BRT0:DJNZ R0,NEXT; R0=R0-1如果R0不等0(调用20次),则跳转到NEXT。如果R0=0则(调用达20次),把P1.0输出的值取反。 CPL P1.0;P1口0管脚的输出值取反。 MOV R0,#14H;恢复R0初值。 NEXT: MOV TH0,#3CH;定时器T0重新装入初值。 MOV TL0,#0B0H; RETI ;中断返回,返回到调用中断的LOOP语句。 END 试验一 P1口试验 P1口作为输出口,接8只发光二级管,编写程序,使发光二极管循环点亮。 该程序用循环延时,单片机执行1条指令一般用2个机器周期,一个机器周期时间是时钟周期的12倍,等于T计数。 程序清单 ST_ADDR EQU 4000H ORG ST_ADDR LJMP START ORG ST_ADDR+200H START:MOV A,#01H; LOOP: MOV P1,A; MOV R1,#10 DEL1: MOV R2,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RL A LJMP LOOP END * * M值的计算 方式0:M=213 =8192 方式1:M=216=65536 方式2:M=28=256 方式3:M=28=256 TC=M-C 2、定时器初值的计算 需要定的时间是计数开始到计满需要的时间T。需设置的初值是TC,每增加一个数需要时间是T计时,则: T=(M-TC)T计时 TC=M-T/T计时 (注意单位) T计时是时钟周期的12倍。 如果时钟频率是12MHZ则最大定时时间和工作方式的关系: T计时=1s12=1μs 方式0:Tmax=213×1μs=8.19ms 方式1:Tmax=216×1μs=65.536ms 方式2、3:Tmax=28×1μs=0.256ms 例 若单片机时钟频率为12MHZ,请计算定时2ms所需定时初值。 方式1:(利用T0) T计时=1s12=1μs TC=216-2ms/1μs=F830H TH0装F8H,TL0装30H。 方式0 TC=213-2ms/1us=6192=1830H 1830H化成2进制: 000 10000 TL010H) TH0C1H) 例:选用T0工作于方式0,用于定时,由P1.0输出周期为1ms的方波。设晶振频率6MHz。 解: P1.0输出周期为1ms的方波。只要每隔500μS取反一次即可,故T0定时时间为500μS。 T计时 =2 μS , 定时初值TC=M-T/T计时=213-500/2 =8192-250=7942=1F06 H , 程序如下:ORG 8000H MOV TMOD,#00H MOV TL0,#06H MOV TH0,#0F8H SETB TR0 LP1:JBC TF0,LP2 AJMP LP1 LP2:MOV TL0,#06H MOV TH0,#0F8H CPL P1.0 SJMP LP1 作业和预习 作业: 1、
文档评论(0)