熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-5-25 08:36
正文摘要:這是我大二輔修計(jì)算機(jī)學(xué)院?jiǎn)纹瑱C(jī)的最終任務(wù) 上大學(xué)以來(lái)第一次獨(dú)立完成這樣的任務(wù)(大二下學(xué)期完成了這個(gè)任務(wù))特別感謝我的伙伴Mr.關(guān) @黑河豚 備注:代碼共300多行,難以忘記那時(shí)候和黑河豚天天打代碼,不過最終漂 ... |
| 請(qǐng)問一下,你的代碼是在哪個(gè)軟件運(yùn)行的呢 |
唐吉坷德 發(fā)表于 2020-7-16 17:42 這是用于顯示數(shù)字和帶小數(shù)點(diǎn)的數(shù)字的表格,每一個(gè)數(shù)都代表著一個(gè)可以用于數(shù)碼管顯示的字符,如:“1,2,3,4等等” 可以了解一下數(shù)碼管顯示的原理 |
|
為什么有那個(gè)DispTable: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ,0BFH, 86H, 0DBH, 0CFH, 0E6H, 0EDH, 0FDH, 87H, 0FFH, 0EFH |
唐吉坷德 發(fā)表于 2020-7-1 12:08 這是創(chuàng)建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 |
你好,在一開始定義常數(shù)的時(shí)候輪胎周長(zhǎng)1.83是0B7H,計(jì)費(fèi)的起步價(jià)8是0320H,超出的費(fèi)用2.6是1AH,它們變換的程度不同,在十六進(jìn)制——BCD碼——十進(jìn)制的過程,小數(shù)點(diǎn)的位置是怎么控制到正確顯示結(jié)果的呢?小白實(shí)在不懂 ,不知道有沒有把問題問清楚,期待大神解答 |
|
$NOMOD51 $INCLUDE (8051.MCU) 具體指什么 初學(xué)小白 望大神指導(dǎo)一下 |
Jeff_BlindCat 發(fā)表于 2020-6-27 12:13 加油! |
1142892859 發(fā)表于 2020-6-26 15:01 啊!跑了一下發(fā)現(xiàn)確實(shí)有這個(gè)bug,交項(xiàng)目的時(shí)候沒發(fā)現(xiàn),謝謝你提醒我這個(gè)bug! |
| 匯編菜鳥的菜鳥悄悄的來(lái)膜拜下,還是繼續(xù)先把俺滴C鼓搗明白吧。 |
| 里程超過10的時(shí)候費(fèi)用溢出了吧 |
Hibari 發(fā)表于 2020-6-15 19:32 運(yùn)行過程中: 調(diào)試-VSM signal generator 即可 |
Stranger-- 發(fā)表于 2020-6-12 12:36 不好意思,這一段十六進(jìn)制變?yōu)锽CD碼的代碼是我?guī)煾到y(tǒng)一提供的,說(shuō)來(lái)慚愧,具體原理我還不清楚 這是師傅的原始代碼 ;如果有需要,認(rèn)真仿真此程序 cDisplayBuffer EQU 30H ;在顯示的內(nèi)容在30H-37H cDisplayBit EQU 38H ;當(dāng)前顯示的位 cCount EQU 40H ORG 0000H LJMP Main Main: MOV 42H,#5BH ;把此兩內(nèi)存改為其它值,分析44H,45H,46H的內(nèi)容 MOV 43H,#4AH MOV R0,#42H ;42H為高位字節(jié),43H為低位字節(jié) MOV R1,#44H LCALL BinDec ;結(jié)果為6位BCD碼,仔細(xì)分析 44H,45H,46H的內(nèi)容 SJMP $ ;---------------BinDec--------------------------- ; 把雙字節(jié)的十六進(jìn)制數(shù)轉(zhuǎn)換為BCD碼 ; 輸入: R0 - 十六進(jìn)制數(shù)的高字節(jié)地址 ; R1 - 轉(zhuǎn)換后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 |
| 那個(gè)波形器怎么找啊 |
| 你好,請(qǐng)問一下為什么Bin那里的R7設(shè)置為24嗎 |
rofgmd 發(fā)表于 2020-5-29 15:31 里程思路:利用INT0號(hào)中斷在中斷進(jìn)程中使得寄存器R3每中斷一次加一,加滿后向R4進(jìn)位,然后乘以表示輪胎周長(zhǎng)的常量Circumference,經(jīng)過換算后就可以得到十進(jìn)制的里程數(shù),再將其轉(zhuǎn)移到相應(yīng)的顯示內(nèi)存中。 這段程序是將換算為10進(jìn)制BCD碼的里程(45H,46H,47H)通過除以#10來(lái)取十位,個(gè)位,并且存入相應(yīng)的顯示單元(34H,35H,36H,37H) |
|
你好,可以請(qǐng)想問一下存到內(nèi)存那段程序的思路嘛,例如以下這段程序 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 |
yunshuayun 發(fā)表于 2020-5-25 18:19 嗯 知道的 哈哈 |
songxia8013 發(fā)表于 2020-5-25 15:32 哈哈,這只是用波形測(cè)試這個(gè)系統(tǒng)正不正常,顯示的速度只是來(lái)源于頻率,不是實(shí)際出租車的速度 |
| 這速度太快了,能跑到六七百公里每小時(shí),這出租車是飛起來(lái)了嗎? |
Powered by 單片機(jī)教程網(wǎng)