毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于AT89S51单片机自动往返小车系统设计 第5页

更新时间:2010-2-23:  来源:毕业论文
基于AT89S51单片机自动往返小车系统设计 第5页
INTT1:       PUSH  ACC     ;堆栈保护
          PUSH  PSW     ;
          MOV TL1,#0B0H   ;赋50毫秒定时初值
          MOV TH1,#3CH    ;
          DEC R4     ;减1
          MOV A,R4     ;
          JNZ RETT0    ;不为0转RETT0
          MOV R4,#14H    ;为0(1秒到)重赋初值
          MOV R0,#71H    ;地址指向71H
          ACALL ADD1     ;加1秒操作
          MOV A,R3     ;
          CLR C     ;
          CJNE A,#60H,CC   ;是否为60秒?
CC:   JC RETT0    ;小于60转RETT0
          ACALL CLR0    ;大于或等于60清0
          MOV R0,#73H    ;指向分计时地址单元
          ACALL ADD1     ;分加1
          MOV A,R3     ;
          CLR C     ;
          CJNE A,#60H,CCC   ;是否为60分?
CCC:   JC   RETT0     ;小于60转RETT0
          ACALL CLR0     ;大于或等于60分计时单元清0
 RETT0:   POP  PSW     ;恢复堆栈
          POP  ACC     ;
          RETI      ;中断返回

       ;;;;;;;;;;;;;; ;;;;
        加1操作程序 
       ;;;;;;;;;;;;;; ;;;;
ADD1:   MOV A,@R0     ;取计数值
          DEC R0      ;指向低一个地址
          SWAP A      ;计数值高低四位交换
          ORL  A,@R0     ;相或组合成一个数据
          ADD  A,#01H     ;加1
          DA  A      ;十进制调整
          MOV  R3,A     ;暂存R3内
          ANL  A,#0FH     ;高四位变0
          MOV @R0,A     ;放回低地址
          MOV A,R3     ;取回R3内数据
          INC R0      ;地址加1
          SWAP A      ;高低四位交换
          ANL  A,#0FH     ;高四位为0
          MOV @R0,A     ;放回原地址
          RET       ;返回
;
        ;;;;;;;;;;;;;
         清0程序
        ;;;;;;;;;;;;;
CLR0:   CLR A      ;清A
          MOV  @R0,A     ;对应地址单元清0
          DEC R0      ;指向低一地址
          MOV @R0,A     ;清0
          RET       ;返回

 

        ;;;;;;;;;;;;;
         显示程序
        ;;;;;;;;;;;;;
DISP:   MOV R1,#70H     ;显示数据首址
          MOV R5,#0FEH     ;扫描字
PLAY:   MOV A,R5      ;扫描字入A
          MOV P2,A      ;从P2口输出
          MOV A,@R1     ;取显示数据
          MOV DPTR,#TAB     ;取段码表首址
          MOVC A,@A+DPTR     ; 查数据对应段码
          MOV P0,A      ;段码从P0口输出
          LCALL DL1MS    ;点亮1毫秒
          INC R1      ;指向下显示数地址
          MOV A,R5      ;扫描字入A
          JNB ACC.6,ENDOUT   ;ACC.6=0转ENDOUT结束
          RL A      ;循环左移
          MOV R5,A      ;放回A
          AJMP PLAY      ;转PLAY再显示
ENDOUT:   MOV P2,#0FFH    ;显示结束处理。P2口置1
          RET       ;子程序结束
;
;LED共阴段码表(0-9)
TAB:   DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;
;1毫秒延时程序
DL1MS:  MOV R6,#14H
DL1:   MOV R7,#19H
DL2:   DJNZ R7,DL2
        DJNZ R6,DL1
        RET
;
;延时程序,用调用显示程序实现,可使LED显示稳定
DS50MS: LCALL DISP    ;(7毫秒)
        LCALL DISP
        LCALL DISP
DS20MS: LCALL DISP
        LCALL DISP
        LCALL DISP
        RET
;
;10秒延时程序,用调用显示程序实现,可使LED显示不熄灭
DS10S:   MOV  R2,#08H   ;(8*11*16*7=9956毫秒)
TI0:   MOV  R0,#0B0H
TI1:   LCALL DISP
     DJNZ  R0,TI1
     DJNZ  R2,TI0
     RET
7毫秒延时程序,跑道计数器抗干扰用
DL7MS:  SETB  PX1       ;外中断1置高优先级
     MOV  R2,#0EH          ;赋定时值
DL11:   LCALL DISP       ;调用显示程序
     DJNZ  R2,DL11          ;循环
     CLR  PX1       ;外中断1恢复低优先级
     RET         返回
     END      程序结束

上一页  [1] [2] [3] [4] [5] [6] 下一页

基于AT89S51单片机自动往返小车系统设计 第5页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。