当前位置:编程学习 > 汇编语言 >>

怎么使用汇编语言实现,利用定时器使一个数码管的计数一次显示不同的数字。这是我编写的程序。

ORG 0000H MOV TMOD,#05H MOV TH0,#0 MOV TL0,#0 MOV R7,#15 SETB TR0 S0:MOV DPTR,#TABLE S1:MOV A,TL0 MOVC A,@A+DPTR MOV P0,A DJNZ R7,S1 RET TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0F9H,0A4H,0B0H,99H,92H END 问题就是我按了十六次,就没有变化啦,我的本意是按一次就能起到变化。求解。。谢谢。
追问:是用计数器,每按一次按键就计数一次,是这样的。
答案:可以简化一下:
;--------------------------
    ORG  0000H
    MOV  DPTR, #TABLE
    MOV  TMOD, #05H
    SETB TR0
S0: MOV  TL0, #0
S1: MOV  A, TL0
    CJNE A, #16, S2
    SJMP S0
S2: MOVC A, @A + DPTR
    MOV  P1, A
    SJMP S1
;--------------------------
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0F9H,0A4H,0B0H,99H,92H
;--------------------------
    END 
================================
下面的更简单:
;--------------------------
    ORG  0000H
    MOV  DPTR, #TABLE
    MOV  TMOD, #05H
    MOV  TL0, #0
    SETB TR0
S1: MOV  A, TL0
    ANL  A, #15
    MOVC A, @A + DPTR
    MOV  P1, A
    SJMP S1
;--------------------------
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0F9H,0A4H,0B0H,99H,92H
;--------------------------
    END
其他:题目写清楚些,到底是用定时计数器来实现数值变化,还是用按键来实现。 这是全部的程序?
你是用什么键盘?
键盘的功能,程序貌似没操作啊!这程序跟键盘貌似没关系! 没有调用子程序 ,你用了一个RET
ORG 0000H
MOV TMOD,#06H
MOV TH0,#0
MOV TL0,#0
MOV R7,#15
SETB TR0
MOV DPTR,#TABLE
S1:MOV A,TL0
MOVC A,@A+DPTR
MOV P1,A
mov	a,tl0
cjne	a,#16,s1
mov	tl0,#0
ajmp	s1
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0F9H,0A4H,0B0H,99H,92H
      END 什么意思?  前十五次都好使???  你有显示程序没? 把程序都发出来。
 早说启动定时器还有EA, ET0呢? 我看这个程序是不行~~~

上一个:带符号位一位数加法运算汇编语言程序,比如(-8)+(-9),-5+7,-7+3等的运算~~
下一个:8088和8086汇编语言程序设计PPT

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,