本帖最後由 fzr_7 於 2013-12-2 14:07 編輯
有心想做卻發現有任何問題請直接用PM的,以免喇賽的很多還要慢慢看,我會把問題和回答補充在此文章最後面,假如願意到小老婆PM問我也很歡迎,因為我也有發到小老婆那裡
距上次回別人的文有2個星期以上,雖然我每天都有來,原因我也不想多說,只希望能指正別人錯誤請前先檢查清楚,不要沒檢查清楚就指正別人
被亂指正心情很不好,那麼為什麼還要發文,因為很久以前就想發,只是全部的電路圖刪掉了,懶得找繪製軟體,不久前才說要分享,所以就給它完成一下
請勿拿來商業用途
電路圖如下,8051請用89S51比較方便
7段顯示器請買高亮以免太陽一照看不清楚,圖片和實際接腳圖請自己GOOGLE
接地請跟電瓶的(-)負端接在一起
+5V請自己解決+12V轉+5V的問題
火星塞建議用帶R的不然可能會干擾到8051,例如FZR原廠型號是C7HSA。如多了R值(有電阻)則為CR7HSA
以下是8051的組合語言程式,請自己處理成燒錄檔HEX,如何燒錄請自己GOOGLE
不要找我幫忙燒,網路上有簡單型的自製ISP燒錄器
貼上時有點沒對齊,請自己修正
為什麼不用C語言寫,沒辦法當初正修就是教組合語言,況且我覺得組合語言就很好寫,以前的DOS時代我也喜歡用組合語言
;轉速表(60s/幾s動一次=幾轉),兩個波形顯示一次,但只取一個計算
;訊號線接對的話不分單雙缸或四缸都不用修改就可以用
ORG 00H
JMP START
START:
MOV P2,#00000001B
MOV P0,#00000000B
MOV P3,#0FFH ;十
MOV P1,#0C0H ;個
MOV 30H,#0 ;破100
MOV 31H,#0 ;顯示
MOV 32H,#0 ;最新
MOV 20H,#0
MOV 21H,#0
START1:
JNB P2.0,START1
WAIT:
MOV A,20H
CLR C
ADD A,#1 ;11us=+1次
MOV 20H,A
MOV A,21H
ADDC A,#0
MOV 21H,A
CJNE A,#0D6H,WAIT1
MOV A,#0
JMP SSU0
WAIT1:
JB P2.0,WAIT
WAIT2:
MOV A,20H
CLR C
ADD A,#1 ;11us=+1次
MOV 20H,A
MOV A,21H
ADDC A,#0
MOV 21H,A
CJNE A,#0D6H,WAIT3
MOV A,#0
JMP SSU0
WAIT3:
JNB P2.0,WAIT2
WAIT4:
MOV 22H,#012H ;60s/100轉/11us
MOV 23H,#0D5H
MOV 24H,#0 ;餘數
MOV 25H,#0
MOV 26H,#0 ;商=幾百轉
MOV 27H,#0
MOV R7,#10H
CLR A
LOOP:
MOV R0,#22H
XCH A,@R0
RLC A
XCH A,@R0
INC R0
XCH A,@R0
RLC A
XCH A,@R0
MOV R0,#24H
MOV A,@R0
RLC A
MOV @R0,A
INC R0
MOV A,@R0
RLC A
MOV @R0,A
MOV R3,24H
MOV R4,25H
MOV R2,#02H
CLR C
MOV R1,#20H
MOV R0,#24H
SUB3:
MOV A,@R0
SUBB A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,SUB3
JNC SKIP
MOV 24H,R3
MOV 25H,R4
SKIP:
CPL C
MOV R1,#26H
XCH A,@R1
RLC A
XCH A,@R1
INC R1
XCH A,@R1
RLC A
XCH A,@R1
DJNZ R7,LOOP
MOV A,26H
SSU0:
MOV 32H,A
CJNE A,31H,SSU ;新.顯示相同
JMP GON4
SSU:
JNC SSU2
CLR C
MOV A,31H
SUBB A,32H
DEC 31H ;32H新<31H顯示
JMP GON0
SSU2:
SUBB A,31H
INC 31H ;32H新>31H顯示
GON0:
MOV A,31H
CJNE A,#100,GON1
GON1:
JC GON2
CLR C ;顯示>100
MOV 30H,#1
SUBB A,#100
JMP GON3
GON2:
MOV 30H,#0
GON3:
MOV B,#10
DIV AB
MOV R5,A
JNZ GON31
MOV A,30H
JNZ GON31
MOV P3,#0FFH ;十無顯示
JMP GON32
GON31:
MOV A,R5
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P3,A
GON32:
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
MOV A,30H
JZ GON4
CLR P3.7
JMP GON4
GON4:
MOV 20H,#0
MOV 21H,#0
JMP START1
TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H
DB 092H,083H,0F8H,080H,098H
END
功能說明
- 化油器車應該都可以,噴射車不知道沒試過
- 顯示是以每次加減1(100轉)為單位,不是抓多少顯示多少
- 抓取時間為0.6秒(100轉)~0.003秒(19900轉),轉速越快抓取時間越短
- 轉速顯示0~199(0轉~19900轉),沒做超過20000萬的顯示方式,所以超過萬轉位還是顯示1
- 沒做超轉顯示,有需要的自己加入程式
- 顯示速度太快請自己加延遲,這版本我沒加入,後面幾版本我都有加入,這版本要加入還需要實機測試,而且每個人喜好的速度不同,所以不加入
轉速訊號線接線,我FZR是接W/R 白/紅線(可能W/L或W/Y都可以),其他車不知道,請自己找
1是三相交流發電機
2是整流器
8是C.D.I元件
9和10是點火線圈
這是我第一個LED數字型轉速表的程式和電路,2008設計的,完全自製
後續還有16x2的文字型LCD液晶顯示轉速表,幫一位在機車行認識的學徒做的,在going 50上有試過,有最高轉顯示,以50轉為單位加減,有做顯示速度控制避免顯示變換太快,有空再分享
還有128x64的繪圖型LCD液晶顯示轉速表,面板有點大,而且還加入檔位、時速、電壓、油溫、汽油量,2顆的我還加入目前里程和總里程,因為全部一起顯示而不是只有轉速所以就不分享
沒有實際影片,要看的話請參加我開團的元旦南橫一日遊,我車上的2顆128x64的繪圖型LCD液晶顯示上就可以看到,目前研發手機當儀表板中
後續會分享檔位、時速、電壓、油溫、汽油量、目前里程、總里程的設計上來
|