单片机多功能人体秤设计 第11页

单片机多功能人体秤设计 第11页
 MOV  7BH,A
       MOV  A,#0AH
       MOV  7CH,A
       MOV  A,#00H
       ORL  A,78H
       JNZ  BAI
QIAN: MOV  A,78H;转化千位BCD码
       SUBB A,7AH
       MOV  78H,A
       JC  QIAN1
       MOV  40H,TIME3
BAI:  MOV  A,77H;转化百位BCD码
       SUBB  A,7BH
       MOV  77H,A
       JC  BAI1
       MOV  41H,TIME1
SHI:  MOV  A,77H;转化十位BCD码
       SUBB A,7CH
       MOV  77H,A
       JC  SHI1
       MOV  42H,TIME2
LOOP1:CLR  P1.6;控制步进电机反转
       SETB P1.5;发送脉冲
       LCALL DELAY1MS
       CLR  P1.5
       LCALL DELAY1MS
       MOV  A,73H;脉冲数减一
       SUBB A,#01H
       MOV  73H,A
       JNZ  LOOP1;73H是否为0,为0顺序执行,否则跳转
       MOV  A,74H
       JNZ  LOOP1;74H是否为0,为0顺序执行,否则跳转
       CLR  P1.7;使L297停止工作
       LJMP $
QIAN1:INC  TIME3
      AJMP  QIAN
BAI1: INC  TIME1
      AJMP BAI
SHI1: INC   TIME2
       AJMP  SHI1
DELAY1MS:
      MOV  TIME4,#02H;1MS的延时子程序
   D1:MOV  TIME5,#248
      DJNZ TIME5,$
       DJNZ TIME4,D1
RET
主程序
TIME  EQU  60H
TIME1 EQU  61H
TIME2 EQU  62H
TIME3 EQU  63H
TIME4 EQU  64H
TIME5 EQU  65H
T-YEAR  EQU  48H;时钟芯片数据缓冲区
T-MON   EQU  49H
T-DAY   EQU  4AH
T-HOUR  EQU  4BH
T-MIN   EQU  4CH
T-SEC   EQU  4DH

DATA  BIT  P1.0;HD7379的DATA连接与P1.0
CS    BIT  P1.1;HD7379的CS连接与P1.1
CLK   BIT  P1.2;HD7379的CLK连接与P1.2

ORG  0000H
AJMP MAIN
ORG  0003H
LJMP INT0
ORG  0013H
LJMP INT1
ORG  0100H
MAIN:SETB  TI0
      SETB  EX0
      SETB  TI1
      SETB  EX1
      SETB  EA
      MOV   DPTR,#200AH;DS302 初始化
      MOV   A,
      LCALL RDS12887
LOOP:MOV  R0,#00H
      MOV  DPTR,#TABLE
www.751com.cn
      LCALL  ZL
      AJMP  MAIN
LOOP3:INC  R0
      MOV  A,#0FH
      CJNE A,R0,LOOP5
      MOV  R0,#00H
      LJMP LOOP5
LOOP4:MOV  A,#0DH
      CJNE A,R0,LOOP3
      LCALL SG
      LCALL SOUT
SOUT:MOV   TMOD,#20H  ;设置定时器T1为模式2
     MOV   TL1,#F3H   ;送初值
     MOV   TH1,#F3H    ;
     SETB  TR1         ;启动定时器
     MOV   SCON,#0D0H   ;设置串行口为模式3,允许接收
     MOV   PCON,#50H    ;设SMOD=1
     MOV   R0,  #40H    ;发送数据首地址到R0
     MOV   R7,  #0DH    ;数据块长度为送R7
 TRS:MOV    A,   @R0    ;区数据到A中
     MOV    C,  P       ;奇偶标志放入C中
     MOV    TB8,C       ;根据奇偶标志PS设置TB8
     MOV    SBUF,A      ;数据送到SBUF,启动发送
WAIT:JBC    TI,  CONT   ;查询TI=1,跳转并清TI为0
     SJMP    WAIT        ;否则TI=0未发送完毕
CONT:INC  R0             ;修改数据地址
     DJNZ R7,TRS          ;一组数据未发送完,继续
     RET                  ;发送完,子程序返回
RDS12887:
      MOV  DPTR,#200AH;判断DS302中A寄存器的UIP位是否为1如果为1的话读时间数据到缓冲区,否则的话继续查询

 << 上一页  [11] [12] [13] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有