久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 128|回復: 3
收起左側

51單片機做出租車計價器溢出(匯編)

[復制鏈接]
ID:1155980 發表于 2025-7-4 15:45 | 顯示全部樓層 |閱讀模式
求大神解答,本程序里程超過10km價格溢出,請問該如何修改??
$NOMOD51
$INCLUDE (8051.MCU)

;==========================
; 常量/變量地址定義
;==========================
cDisplayBuffer        EQU        30H
cDisplayBit        EQU        3CH
Circumference  EQU 0B7H         ; 輪胎周長 = 183cm = 1.83m
StartpriceH        EQU 04H            ; 起步價高字節(0x04B0 = 1200 分 = 12 元)
StartpriceL        EQU 0B0H
PriceL         EQU 1AH          ; 每公里單價2.6元 × 10 = 26(十進制)

;==========================
; 啟動中斷向量
;==========================
ORG 0000H
JMP MAIN
ORG 0003H
JMP Milage
ORG 000BH
JMP Speed

;==========================
; 數碼管段碼表
;==========================
DispTable:       
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH

;==========================
; 數碼管顯示子程序
;==========================
Display:
    MOV        A, cDisplayBit
    MOV        P2, A
    MOV        DPTR, #DispTable
    MOV        A, #cDisplayBuffer
    ADD        A, cDisplayBit
    MOV        R0, A
    MOV        A, @R0
    MOVC        A, @A+DPTR
    MOV         P1, A
    INC         cDisplayBit
    ANL        cDisplayBit, #15
    RET

;==========================
; 延時
;==========================
Delay:
    MOV         R0, #10
    MOV          R1, #10
    DJNZ         R1, $
    DJNZ        R0, $-4
    RET

;==========================
; 二進制轉 BCD(里程/價格通用)
;==========================
Bin:
    MOV        R0, #42H
    MOV        R1, #45H  
    CLR A
    MOV @R1,A
    INC R1
    MOV @R1,A
    INC R1
    MOV @R1,A
    INC R1
    MOV @R1,A
    PUSH 7
    MOV R7,#24
BD1:
    CLR C
    INC R0
    INC R0
    MOV A,@R0
    RLC A
    MOV @R0,A
    DEC R0
    MOV A,@R0
    RLC A
    MOV @R0,A
    DEC R0
    MOV A,@R0
    RLC A
    MOV @R0,A
    PUSH 1
    MOV A,@R1
    ADDC A,@R1
    DA A
    MOV @R1,A
    DEC R1
    MOV A,@R1
    ADDC A,@R1
    DA A
    MOV @R1,A
    DEC R1
    MOV A,@R1
    ADDC A,@R1
    DA A
    MOV @R1,A
    DEC R1
    MOV A,@R1
    ADDC A,@R1
    DA A
    MOV @R1,A
    POP 1
    DJNZ R7,BD1
    POP 7
    RET

;==========================
; 里程計算
;==========================
Calculatemilage:
      MOV A,R3
      MOV B,#Circumference
      MUL AB
      MOV 43H,B
      MOV 44H,A
      MOV A,R4
      MOV B,#Circumference
      MUL AB
      ADD A,43H
      MOV 43H,A
      MOV A,B
      ADDC A,#0
      MOV 42H,A
      RET

nextMilage:
      MOV A,47H
      MOV B,#10H
      DIV AB
      MOV 37H,A
      MOV A,46H
      MOV B,#10H
      DIV AB
      MOV 36H,B
      ADD A,#10
      MOV 35H,A
      MOV A,45H
      MOV B,#10H
      DIV AB
      MOV 34H,B
      RET
      
CalculateSPEED:
      MOV A,R6
      MOV B,#Circumference
      MUL AB
      MOV 42H,B
      MOV B,#24H
      MUL AB
      MOV 44H,A
      MOV 43H,B
      MOV A,42H
      MOV B,#24H
      MUL AB
      ADD A,43H
      MOV 43H,A
      MOV A,B
      ADDC A,#0
      MOV 42H,A
      
      RET
nextSPEED:
      MOV A,47H
      MOV B,#10H
      DIV AB
      MOV 3BH,B
      ADD A,#10
      MOV 3AH,A
      MOV A,46H
      MOV B,#10H
      DIV AB
      MOV 39H,B
      MOV 38H,A
      RET

CalculatePRICE:
      MOV A,34H
      CLR C
      SUBB A,#1
      JNC nextPRICE
      CLR C
      MOV A,35H
      SUBB A,#12
      JNC nextPRICE
      
      MOV 42H,#00H
      MOV 44H,#StartpriceL
      MOV 43H,#StartpriceH
      RET
      
      
nextPRICE:
      CLR C
      MOV A,36H
      SUBB A,#0
      MOV 44H,A
      MOV A,35H
      SUBB A,#12
      MOV 43H,A
      MOV A,34H
      SUBB A,#0
      MOV 42H,A
      
      MOV 46H,#00H
      MOV A,44H
      MOV B,#1
      MUL AB
      MOV 45H,A
      MOV A,43H
      MOV B,#10
      MUL AB
      ADD A,45H
      MOV 45H,A
      MOV A,#00
      ADDC A,#00
      MOV 46H,A
      MOV A,42H
      MOV B,#100
      MUL AB
      ADD A,45H
      MOV 45H,A
      MOV A,46H
      ADDC A,#00
      ADD A,B
      MOV 46H,A
      
      
      
      MOV A,45H
      MOV B,#priceL
      MUL AB
      MOV 53H,A
      MOV 52H,B

      
      MOV A,46H
      MOV B,#priceL
      MUL AB
      ADD A,52H
      MOV 52H,A
      MOV A,B
      ADDC A,#0
      MOV 51H,A
      
      MOV A,53H
      ADD A,#StartpriceL
      MOV 53H,A
      MOV A,52H
      ADDC A,#00
      ADD A,#StartpriceH
      MOV 52H,A
      MOV A,51H
      ADDC A,#00
      MOV 51H,A
      
      
      MOV 44H,53H
      MOV 43H,52H
      MOV 42H,51H

      
      RET
      
      
PlayPRICE:
      MOV A,48H
      MOV B,#10H
      DIV AB
      MOV 33H,B
      MOV 32H,A
      MOV A,47H
      MOV B,#10H
      DIV AB
      MOV 30H,A   
      MOV A,B
      ADD A,#10
      MOV 31H,A

      RET
MAIN:
      MOV R2,#100
       MOV    SP,#60H   
       MOV    TMOD,#01H
       MOV    TL1,#00H
       MOV    TH1,#0B8H
       SETB TR0
       SETB ET0
       SETB        IT0
       SETB        EX0
         SETB        EA  
DECIDE:
      JNB P3.7,WAIT
      SJMP DECIDE
WAIT:
     LCALL Calculatemilage
     LCALL Bin
     LCALL nextMilage
     LCALL CalculatePRICE
     LCALL Bin
     LCALL PlayPRICE
     LCALL CalculateSPEED
     LCALL Bin
     LCALL nextSPEED
     LCALL Display
     LCALL Delay
     JNB P3.7,WAIT
STOP:
     LCALL Display
     LCALL Delay
     JNB P3.7,RESTART
     SJMP STOP
RESTART:
      MOV R3,#00H
      MOV R4,#00H
      MOV R5,#00H
      MOV R6,#00H
      SJMP MAIN
     
     
Milage:
      PUSH PSW

      INC R3
      INC R5
      CJNE R3,#0FFH,OUT
      MOV R3,#0
      INC R4
      

OUT:
      POP PSW
      RETI

Speed:
      MOV 27H,A
      PUSH 27H
      PUSH PSW
     MOV    TL0,#00H
     MOV    TH0,#0B8H
     DJNZ R2,OUT2
     MOV A,R5
     MOV R6,A
     MOV R2,#100
     MOV R5,#00H
OUT2:
      POP PSW
      POP 27H
      MOV A,27H
      RETI
      END


回復

使用道具 舉報

ID:1155980 發表于 2025-7-4 15:45 | 顯示全部樓層
這個計價的要求是“里程是否大于3km,若不大于,則顯示為12元,若大于3km,則跳入計費程序,先把里程減去3km,然后剩余的里程與2.6元做乘法,換算進制后儲存到相應的顯示內存即可!
回復

使用道具 舉報

ID:1155980 發表于 2025-7-4 15:46 | 顯示全部樓層
同時讓ai給我把起步里程2km改成3km他好像根本讀不懂,哪位大神知道該怎么修改
回復

使用道具 舉報

ID:1155980 發表于 2025-7-4 16:01 | 顯示全部樓層
這個是程序圖片

程序圖片

程序圖片
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日不卡av | 黄色片免费看 | 日本在线观看网站 | 日本中文字幕在线播放 | 免费一区二区视频 | 国产成人97精品免费看片 | 色综合久久久久 | 亚洲天堂视频在线 | 伊人影院久久 | www.av在线播放 | 久久九九精品 | 91禁蘑菇在线看 | 久久久久久九九九九 | 精品一区三区 | 日韩欧美综合 | 毛片免费观看视频 | 久久九九99 | 日本国产视频 | 欧美日韩国产在线观看 | 精品视频在线免费 | 一区二区三区在线免费观看 | www.九色 | 日本少妇做爰全过程毛片 | 日韩黄色影院 | 亚洲iv一区二区三区 | 国产成人精品网站 | 欧美色图在线观看 | 长河落日电视连续剧免费观看 | 亚洲成人国产 | www.欧美日韩 | 欧美精品网| 国产精品一区二区三区免费 | 我要看一级黄色片 | 日韩视频在线观看免费 | 一级大片免费看 | 超碰免费观看 | 亚洲经典一区 | 三上悠亚激情av一区二区三区 | 色网站在线 | 性巴克成人免费网站 | 成人性生活免费视频 |