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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機“出租車計費器”proteus仿真 附原理圖和匯編語言代碼

查看數: 11415 | 評論數: 19 | 收藏 7
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-5-25 08:36

正文摘要:

這是我大二輔修計算機學院單片機的最終任務 上大學以來第一次獨立完成這樣的任務(大二下學期完成了這個任務)特別感謝我的伙伴Mr.關 @黑河豚 備注:代碼共300多行,難以忘記那時候和黑河豚天天打代碼,不過最終漂 ...

回復

ID:832704 發表于 2020-10-27 10:20
請問一下,你的代碼是在哪個軟件運行的呢
ID:697394 發表于 2020-7-17 10:24
唐吉坷德 發表于 2020-7-16 17:42
為什么有那個DispTable:        
      DB   3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ,0BFH, 8 ...

這是用于顯示數字和帶小數點的數字的表格,每一個數都代表著一個可以用于數碼管顯示的字符,如:“1,2,3,4等等”
可以了解一下數碼管顯示的原理
ID:785223 發表于 2020-7-16 17:42
為什么有那個DispTable:        
      DB   3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ,0BFH, 86H, 0DBH, 0CFH, 0E6H, 0EDH, 0FDH, 87H, 0FFH, 0EFH
ID:697394 發表于 2020-7-2 10:00
唐吉坷德 發表于 2020-7-1 12:08
$NOMOD51
$INCLUDE (8051.MCU)
具體指什么

這是創建proteus AT89C51工程自帶的代碼
8051.MCU定義了一些寄存器的名稱,更方便使用
;   8051 processor definition file
;   ==============================

P0        DATA        080H
SP        DATA        081H
DPL        DATA        082H
DPH        DATA        083H
PCON        DATA        087H
TCON        DATA        088H
TMOD        DATA        089H
TL0        DATA        08AH
TL1        DATA        08BH
TH0        DATA        08CH
TH1        DATA        08DH
P1        DATA        090H
SCON        DATA        098H
SBUF        DATA        099H
P2        DATA        0A0H
IE        DATA        0A8H
P3        DATA        0B0H
IP        DATA        0B8H
PSW        DATA        0D0H
ACC        DATA        0E0H
B        DATA        0F0H

IT0        BIT        088H
IE0        BIT        089H
IT1        BIT        08AH
IE1        BIT        08BH
TR0        BIT        08CH
TF0        BIT        08DH
TR1        BIT        08EH
TF1        BIT        08FH
RI        BIT        098H
TI        BIT        099H
RB8        BIT        09AH
TB8        BIT        09BH
REN        BIT        09CH
SM2        BIT        09DH
SM1        BIT        09EH
SM0        BIT        09FH
EX0        BIT        0A8H
ET0        BIT        0A9H
EX1        BIT        0AAH
ET1        BIT        0ABH
ES        BIT        0ACH
EA        BIT        0AFH
RXD        BIT        0B0H
TXD        BIT        0B1H
INT0        BIT        0B2H
INT1        BIT        0B3H
T0        BIT        0B4H
T1        BIT        0B5H
WR        BIT        0B6H
RD        BIT        0B7H
PX0        BIT        0B8H
PT0        BIT        0B9H
PX1        BIT        0BAH
PT1        BIT        0BBH
PS        BIT        0BCH
P        BIT        0D0H
OV        BIT        0D2H
RS0        BIT        0D3H
RS1        BIT        0D4H
F0        BIT        0D5H
AC        BIT        0D6H
CY        BIT        0D7H

RESET        CODE        000H
EXTI0        CODE        003H
TIMER0        CODE        00BH
EXTI1        CODE        013H
TIMER1        CODE        01BH
SINT        CODE        023H
ID:795235 發表于 2020-7-1 23:20
你好,在一開始定義常數的時候輪胎周長1.83是0B7H,計費的起步價8是0320H,超出的費用2.6是1AH,它們變換的程度不同,在十六進制——BCD碼——十進制的過程,小數點的位置是怎么控制到正確顯示結果的呢?小白實在不懂,不知道有沒有把問題問清楚,期待大神解答
ID:785223 發表于 2020-7-1 12:08
$NOMOD51
$INCLUDE (8051.MCU)
具體指什么
初學小白 望大神指導一下
ID:697394 發表于 2020-6-29 08:14
Jeff_BlindCat 發表于 2020-6-27 12:13
匯編菜鳥的菜鳥悄悄的來膜拜下,還是繼續先把俺滴C鼓搗明白吧。

加油!
ID:697394 發表于 2020-6-28 14:46
1142892859 發表于 2020-6-26 15:01
里程超過10的時候費用溢出了吧

啊!跑了一下發現確實有這個bug,交項目的時候沒發現,謝謝你提醒我這個bug!
ID:495287 發表于 2020-6-27 12:13
匯編菜鳥的菜鳥悄悄的來膜拜下,還是繼續先把俺滴C鼓搗明白吧。
ID:631912 發表于 2020-6-26 15:01
里程超過10的時候費用溢出了吧
ID:697394 發表于 2020-6-20 16:07
Hibari 發表于 2020-6-15 19:32
那個波形器怎么找啊

運行過程中:
調試-VSM signal generator
即可
ID:697394 發表于 2020-6-20 15:58
Stranger-- 發表于 2020-6-12 12:36
你好,請問一下為什么Bin那里的R7設置為24嗎

不好意思,這一段十六進制變為BCD碼的代碼是我師傅統一提供的,說來慚愧,具體原理我還不清楚
這是師傅的原始代碼
;如果有需要,認真仿真此程序

cDisplayBuffer        EQU                30H                ;在顯示的內容在30H-37H
cDisplayBit                EQU                38H                ;當前顯示的位
cCount                        EQU                40H
               ORG           0000H
                LJMP        Main
               

Main:
                MOV                42H,#5BH        ;把此兩內存改為其它值,分析44H,45H,46H的內容
                MOV                43H,#4AH

                MOV                R0,#42H                ;42H為高位字節,43H為低位字節
                MOV                R1,#44H               
                LCALL        BinDec                ;結果為6位BCD碼,仔細分析 44H,45H,46H的內容
               
               
               
                SJMP                $
                


;---------------BinDec---------------------------
; 把雙字節的十六進制數轉換為BCD碼
; 輸入:  R0 - 十六進制數的高字節地址
;        R1 - 轉換后BCD碼的高位地址
BinDec:
                CLR             A
        MOV             @R1,A
                INC             R1
                MOV             @R1,A
                INC             R1
                MOV             @R1,A
                PUSH            7
                MOV             R7,#16
BD1:
                CLR             C
                INC             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
                POP             1

                DJNZ            R7,BD1
                POP             7

                RET
;---------------BinDec---------------------------






                END
ID:779601 發表于 2020-6-15 19:32
那個波形器怎么找啊
ID:775953 發表于 2020-6-12 12:36
你好,請問一下為什么Bin那里的R7設置為24嗎
ID:697394 發表于 2020-5-30 17:34
rofgmd 發表于 2020-5-29 15:31
你好,可以請想問一下存到內存那段程序的思路嘛,例如以下這段程序
nextMilage:
      MOV A,47H

里程思路:利用INT0號中斷在中斷進程中使得寄存器R3每中斷一次加一,加滿后向R4進位,然后乘以表示輪胎周長的常量Circumference,經過換算后就可以得到十進制的里程數,再將其轉移到相應的顯示內存中。
這段程序是將換算為10進制BCD碼的里程(45H,46H,47H)通過除以#10來取十位,個位,并且存入相應的顯示單元(34H,35H,36H,37H)
ID:763766 發表于 2020-5-29 15:31
你好,可以請想問一下存到內存那段程序的思路嘛,例如以下這段程序
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
ID:102963 發表于 2020-5-25 19:23
yunshuayun 發表于 2020-5-25 18:19
哈哈,這只是用波形測試這個系統正不正常,顯示的速度只是來源于頻率,不是實際出租車的速度

嗯 知道的 哈哈
ID:697394 發表于 2020-5-25 18:19
songxia8013 發表于 2020-5-25 15:32
這速度太快了,能跑到六七百公里每小時,這出租車是飛起來了嗎?

哈哈,這只是用波形測試這個系統正不正常,顯示的速度只是來源于頻率,不是實際出租車的速度
ID:102963 發表于 2020-5-25 15:32
這速度太快了,能跑到六七百公里每小時,這出租車是飛起來了嗎?

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级特黄色毛片 | www.亚洲一区 | 精产嫩模国品一二三区 | 综合久久av | 亚洲综合色 | 国产丝袜一区二区三区免费视频 | 国产91丝袜在线熟 | 草久久免费视频 | 日韩成人在线观看 | 国产在线精品一区二区 | 国产精品一二区 | 亚洲精品大全 | 精品国产乱码久久久久久图片 | 亚av在线 | 免费看a| 日日夜夜狠狠操 | 亚洲a人 | av天天澡天天爽天天av | 天天综合日日夜夜 | 国内精品视频 | 在线视频a | 成人视屏在线观看 | 国产中文字幕亚洲 | 日日淫| 亚洲黄色一区二区三区 | 欧美日日 | 日本成人综合 | 中文字幕在线观看 | 亚洲国产精品一区二区第一页 | 亚洲精品欧美 | 中文字幕在线中文 | 亚洲欧美视频一区二区 | 日本一区二区高清不卡 | 中文字幕在线精品 | 伊人成人免费视频 | 日本精品久久 | 不卡一二三区 | 久久www免费视频 | 天天草天天操 | 中文字幕精品一区 | 精品国产鲁一鲁一区二区张丽 |