太延电子资料网 » 设计测试 » 这个程序为什么总是跑飞???????求助 (转到动态网页)
Google
 
本页主题: 这个程序为什么总是跑飞???????求助 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

sean139453
级别: 初学者


精华: 0
发帖: 10
威望: 6 个
金钱: 28 元
贡献: 0 个
在线时间:1(小时)
注册时间:2008-03-05
最后登录:2008-10-25

0 这个程序为什么总是跑飞???????求助
各种电子元器件销售热线:021-52656979 021-52754586



#include <reg51.h>
#define uchar unsigned char
#define unit unsigned int
#define ulong unsigned long

extern void CS_T(void);
extern void delay(uint);
extern void display(uchar *);
data uchar testok;



void main (void)
{
data uchar dispram[5];
data int  i;
data ulong time;
P0=0xff;
P2=0xff;
TMOD=0x11;
IE=0x80;
while (1)
{
CS_T();
delay(1);
testok=0;
EX0=1;
ET0=1;
while(! testok) display(dispram);
if (1==testok)
   {
   time=TH0;
   time=(time<<8)| TL0;
   time*=172;
   time/=10000;
  dispram[0]=(uchar) (time%10);
   time/=10;
   dispram[1]=(uchar) (time%10);
   time/=10;
   dispram[2]=(uchar) (time%10);
   dispram[3]=(uchar) (time/10);
  if (0 == dispram[3]) dispram[3]= 17;
   } else
   {
   dispram [0]=16;
   dispram [1]=16;
   dispram [2]=16;
   dispram [3]=16;
   }
for (i=0;i<300;i++) display(dispram);
}
}



void CS_T(void) interrupt 0
{
TR0=0;
ET0=0;
EX0=0;
testok=1;
}



void cs_r(void) interrupt 1
{
EX0=0;
TR0=0;
ET0=0;
testok=2;
}

  NAME      CS_T
?PR?CS_T?CS_T         SEGMENT   CODE
                     PUBLIC   CS_T
                RSEG     ?PR?CS_T?CS_T
CS_T:                PUSH      ACC
                     MOV       TH0, #00H
                     MOV       TL0, #00H
                     MOV       A, #4D
                     SETB       TR0
CS_T1:               CPL        p1.0
                     NOP
                     NOP
                     NOP
                     NOP
                     NOP
                     NOP
                     NOP
                     NOP
                     NOP
                     NOP
                     DJNZ       ACC,CS_T1
                     POP        ACC
                     RET
                     END
NAME   delay
?PR?_delay?delay  SEGMENT   CODE
PUBLIC   _delay
RSEG    ?PR?_delay?delay
_delay:    PUSH   ACC
           MOV A,R7
           JZ   DELA1
           INC   R6
dela1:   MOV   R5,#50D
         DJNZ   R5, $
         DJNZ   R7,dela1
         DJNZ    R6,dela1
            POP   ACC
           RET
END
NAME  display
?PR?_display?display   SEGMENT  CODE
?CO?_display?display    SEGMENT  DATA
                        EXTRN    CODE    (_DELAY)
                        PUBLIC    _display
                        RSEG    ?CO?_display?display
?_display?BYTE:
DISPBIT:   DS  1
DISPNUM:   DS  1
           RSEG    ?PR?_display?display
_display:  PUSH ACC
           PUSH  DPH
           PUSH  DPL
          PUSH  PSW
           INC   DISPNUM
            MOV A,DISPNUM
           CJNE  A,#4D,DISP1
DISP1:    JC  DISP2
           MOV  DISPNUM,#00H
           MOV  DISPBIT,#0FEH
DISP2:     MOV  A,R1
           ADD   A,DISPNUM
           MOV  R0,A
           MOV  A,@R0
           MOV  DPTR,#DISPTABLE
           MOVC   A,@A+DPTR
           MOV P0,A
           MOV A,DISPNUM
           CJNE  A,#2D,DISP3
           CLR   P0.7
DISP3:       MOV P2,DISPBIT
             MOV R5,#00H
             MOV  R7,#0AH
             LCALL  _DELAY
             MOV P0,#0FFH
             MOV  P2,#0FFH
             MOV A,DISPBIT
             RL   A
              MOV DISPBIT,A
             POP  PSW
             POP   DPL
            POP   DPH
             POP   ACC
              RET
DISPTABLE:     DB      0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFH
END
顶端 Posted: 2008-10-25 09:27 | From:黑龙江省哈尔滨市南岗区 [楼 主]
太延电子资料网 » 设计测试
快速发帖 顶端
内容
HTML 代码不可用

使用签名
Wind Code自动转换

字数检查 恢复数据
按 Ctrl+Enter 直接提交
表情 [更多]
Powered by PHPWind v6.3.2 Code © 2003-08 PHPWind
This is html template view this page faster