下载手机汽配人

数码管显示0到9,用定时器延时,为什么只显示0.

代码如下: ORG 0010HMAIN: MOV TMOD,#10H;选择方式1 MOV TH1,#3CH ; MOV TL1,#0B0H ; MOV P0,#0; MOV DPTR,#TAB; 传递表头地址 MOV R6,#0; 负责记录输出的计数器 MOV A,R6;START: CLR P1.0; P1.0置0 CLR P2.7;P2.7置0 MOV R5,#50; 负责中断的计数器 MOVC A,@A+DPTR; 查表 MOV P0, A; MOV A, R6; 负责记录输出的计数器LOOP: SETB EA; EA置1 SETB ET1; ET1置1 SETB TR1; LCALL BRT1; NEXT: DJNZ R5,LOOP; INC A; MOV R6,A; SETB P1.0 CJNE A,#10,START; SJMP MAIN;BRT1: MOV TH1, #3CH; 定时器重置 MOV TL1, #0B0H; CPL P3.0; RETI; TAB: DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 099H DB 092H DB 082H DB 0F8H DB 080H DB 090H END
提问者:网友 2017-06-15
最佳回答
定时器中断不是你那样写的。定时中断满足条件时,自动进入中断,而不能用LCALL调用。这样:ORG 00HAJMP 30HORG 1BHAJMP BRT1MAIN:... 另外 ,你的程序其它地方太明白,计数R6什么用的?
回答者:网友
产品精选
搜索问答
还没有汽配人账号?立即注册

我要提问

汽配限时折扣

本页是网友提供的关于“数码管显示0到9,用定时器延时,为什么只显示0.”的解答,仅供您参考,汽配人网不保证该解答的准确性。