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

自动往返行驶小汽车的设计 第5页

更新时间:2010-2-23:  来源:毕业论文
自动往返行驶小汽车的设计 第5页
停车控制程序
STOP:         MOV    23H,#00H        ;跑道计数单元清0
CPL     P3.6         ;反向驱动(刹车)
CPL     P3.7         ;反向驱动(刹车)
LCALL   DS50MS         ;刹车时间
LCALL   DS50MS         ;刹车时间(可调整)
SETB   P1.0         ;关电机电源
SETB   PT1             ;定时器T1为高优先级
LCALL   DS10S         ;停车10秒
CLR     PT1         ;恢复T1为低优先级
SETB    P1.6         ;开7.5V电源(高速)
CLR     P1.7         ;关4.3V
CLR     P1.0         ;电机电源开
CPL     30H         ;停车点位置判断标志取反
JB      30H,STREN        ;为1(中途停车)转STREN
LCALL   CLR00         ;是终点,调复0程序
STREN:       RET            ;返回
计时清0程序
CLR00:           MOV   70H,#00H         ;计时单元清0
MOV   71H,#00H         ;计时单元清0
MOV   72H,#00H         ;计时单元清0
MOV   73H,#00H         ;计时单元清0
RET               ;返回
外中断1程序,里程计数用  20H、21H、22H、24H作计数器
INTEX1:          PUSH   ACC             ;堆栈保护
PUSH   PSW             ;
CLR    EX1             ;关外中断1
INC    20H             ;圈加1
LLLL:          MOV    A,20H         ;判断是否满6圈
CJNE   A,#06H,LLL        ;不满6圈转LLL退出
MOV    20H,#00H         ;满6圈清0进位(6圈为1米)
INC    21H             ;上位加1
MOV    A,21H         ;判断是否满10
CJNE   A,#0AH,LLL        ;不满10转LLL
MOV    21H,#00H         ; 满10清0进1位
INC    22H             ; 高位加1
MOV    A,22H         ; 判断是否满10
CJNE   A,#0AH,LLL        ; 不满10转LLL
MOV    22H,#00H         ; 满10清0进1位
INC    24H            ; 高位加1
MOV    A,24H         ; 判断是否满10
CJNE   A,#0AH,LLL        ; 不满10转LLL
MOV    24H,#00H         ; 满10清0
LLL:             MOV    74H,21H         ; 将里程数移入显示单元(个位)
MOV    75H,22H         ; 将里程数移入显示单元(十位)
MOV    76H,24H         ; 将里程数移入显示单元(百位)
IN1RET:          POP    PSW           ;恢复堆栈
POP    ACC          ;
SETB   EX1           ;开外中断1
RETI            ;中断返回
时间计时器程序(T1定时中断服务程序)     
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] 下一页

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

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