#1楼主:向大家请教一个S52烧录程序的问题
文章发表于:2008-05-05 12:08
我写了个小程序,用T0作计数器,外部(p3.4)输入脉冲信号,加一后送数码管显示。
写好后我用proteus仿真,完全没有问题,和预想的功能一样。然后烧进我的AT89S52
里面,却什么也不显示。(proteus的仿真电路和我的实验板完全一样,用的是C52)
程序的确是写进去了,用其他程序验证电路板没问题。
请高手指点一下,是不是S52和一般的51还是有些结构上的不同,导致51可以
运行的程序S52不能运行。(之前也写过一个pc发数据给单片机的程序,仿真通过)
写进单片机却不行)。
下面是我的程序,应该没问题吧。(p0.1和p0.0是位码,p2字段码,TL0中内容减去初值后送数码管显示)
ORG 10h
mov TMOD,#6
mov TH0,#9ch
mov TL0,#9ch
SETB EA
SETB ET0
SETB TR0
sjmp display ;t0初始化
display: ;显示函数
clr c
mov A,TL0
subb a,#9ch ;将TL0中数减去初值送数码管显示
MOV B,#10
div AB ;十进制调整
mov DPTR,#TAB
movc a,@A+DPTR
mov p2,a
clr p0.1 ;十位先显示20ms
lcall delay
setb p0.1
mov A,B
mov DPTR,#TAB
movc A,@A+DPTR
mov p2,A
clr p0.0
lcall delay
setb p0.0
ljmp display
delay: ;延时20ms函数
mov R7,#100
DLY0:
mov R6,#100
DLY1:
djnz R6,DLY1
djnz R7,DLY0
RET
TAB: ;字型码
DB 0EDH,60H,0CEH,0EAH,63H,0ABH,0AFH,0E0H,0EFH,0EBH