基于單片機(jī)AT89S51制作的測(cè)速表電路圖
出處:sillboy 發(fā)布于:2011-09-04 10:10:46 | 3632 次閱讀
一。上圖所示是測(cè)速器的電路圖,由六位數(shù)碼管和測(cè)速接口組成。
1.測(cè)速的方法決定了測(cè)速信號(hào)的硬件連接,測(cè)速實(shí)際上就是測(cè)頻,因此,頻率測(cè)量的一些原則同樣適用于測(cè)速。
2.通常,可以用計(jì)數(shù)法、測(cè)脈寬法和等法來(lái)進(jìn)行測(cè)試。所謂計(jì)數(shù)法,就是給定一個(gè)閘門(mén)時(shí)間,在閘門(mén)時(shí)間內(nèi)計(jì)數(shù)輸入的脈沖個(gè)數(shù);測(cè)脈寬法是利用待測(cè)信號(hào)的脈寬來(lái)控制計(jì)數(shù)門(mén),對(duì)一個(gè)高的高頻計(jì)數(shù)信號(hào)進(jìn)行計(jì)數(shù)。由于閘門(mén)與被測(cè)信號(hào)不能同步,因此,這兩種方法都存在±1誤差的問(wèn)題,種方法適用于信號(hào)頻率高時(shí)使用,第二種方法則在信號(hào)頻率低時(shí)使用。等法則對(duì)高、低頻信號(hào)都有很好的適應(yīng)性。這里為簡(jiǎn)化討論,僅采用計(jì)數(shù)法來(lái)進(jìn)行測(cè)試。
二。軟件編程
測(cè)量轉(zhuǎn)速,使用霍爾傳感器,被測(cè)軸安裝有12只磁鋼,即轉(zhuǎn)軸每轉(zhuǎn)一周,產(chǎn)生12個(gè)脈沖,要求將轉(zhuǎn)速值(轉(zhuǎn)/分)顯示在數(shù)碼管上。
程序如下:
DISPBUF EQU 5AH ;顯示緩沖區(qū)從5AH開(kāi)始[Page]
SecCoun EQU 59H
SpCoun EQU 57H ;速度計(jì)時(shí)器單元57H和58H,高位在前(57H單元中)
Count EQU 56H ;顯示時(shí)的計(jì)數(shù)器
SpCalc bit 00h ;要求計(jì)算速度的標(biāo)志
Hidden EQU 16 ;消隱碼
ORG 0000H
AJMP START
ORG 1BH
JMP TIMER1 ;定時(shí)中斷1入口
ORG 30H
START: MOV SP,#5FH ;設(shè)置堆棧
MOV P1,#0FFH
MOV P0,#0FFH
MOV P2,#0FFH ;初始化,所有顯示器、LED滅
MOV TMOD,#00010101B ;定時(shí)器T1工作于方式1,定時(shí)器0工作方式1 MOV TH1,#HIGH(65536-4000)
MOV TL1,#LOW(65536-4000)
SETB TR1
SETB ET1 ;開(kāi)定時(shí)器1中斷
SETB EA
LOOP: JNB SpCalc,LOOP ;如果未要求計(jì)算,轉(zhuǎn)本身循環(huán)
標(biāo)號(hào): MULD功能:雙字節(jié)二進(jìn)制無(wú)符號(hào)數(shù)乘法
入口條件:被乘數(shù)在R2、R3中,乘數(shù)在R6、R7中。
出口信息:乘積在R2、R3、R4、R5中。
影響資源:PSW、A、B、R2~R7
堆棧需求: 2字節(jié)
MOV R2,SpCoun
MOV R3,SpCoun+1
MOV R6,#0
MOV R7,#5 ;測(cè)得的數(shù)值是每秒計(jì)數(shù)值,轉(zhuǎn)為每分轉(zhuǎn)速(每一轉(zhuǎn)測(cè)12次,故乘5而非60)
CALL MULD
標(biāo)號(hào): HB2 功能:雙字節(jié)十六進(jìn)制整數(shù)轉(zhuǎn)換成雙字節(jié)BCD碼整數(shù)
入口條件:待轉(zhuǎn)換的雙字節(jié)十六進(jìn)制整數(shù)在R6、R7中。
出口信息:轉(zhuǎn)換后的三字節(jié)BCD碼整數(shù)在R3、R4、R5中。
影響資源:PSW、A、R2~R7 堆棧需求: 2字節(jié)
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A ;將乘得的結(jié)果送R6R準(zhǔn)備轉(zhuǎn)換,這里結(jié)果不可能超過(guò)2字節(jié)
CALL HB2
CBCD:
MOV DISPBUF,R3 ;位
MOV A,R4 ;
ANL A,#0F0H ;去掉低4位
SWAP A ;將高4位切換到低4位
MOV DISPBUF+1,A
MOV A,R4
ANL A,#0FH
MOV DISPBUF+2,A
MOV A,R5
ANL A,#0F0H
SWAP A
MOV DISPBUF+3,A
MOV A,R5
ANL A,#0FH
MOV DISPBUF+4,A
CLR SpCalc ;清計(jì)算標(biāo)志
JMP LOOP
主程序到此結(jié)束
TIMER1: PUSH ACC;ACC入棧
PUSH PSW ;PSW入棧
SETB RS0 ;工作區(qū)1
JNB TR0,SETTR0 ;如果T0未運(yùn)行,則開(kāi)啟T0
JMP GO1
SETTR0:
SETB TR0
GO1:
INC SecCoun ;秒計(jì)數(shù)器加1
MOV A,SecCoun
CJNE A,#251,Go2 ;如果未到1s則轉(zhuǎn)
CLR TR0 ;1s到了,則停止T0的運(yùn)行
MOV SpCoun,TH0
MOV SpCoun+1,TL0 ;讀取計(jì)數(shù)值
CLR A
MOV TH0,A
MOV TL0,A ;清計(jì)數(shù)器
SETB SpCalc ;要求主程序計(jì)算速度
MOV SecCoun,#0 ;清秒計(jì)數(shù)器
Go2:
INC COUNT ;用于顯示的計(jì)數(shù)器
MOV A,COUNT
CLR C
SUBB A,#6
JZ N1
JMP N2
N1: MOV COUNT,#0
N2: MOV A,#DISPBUF
ADD A,COUNT
MOV R0,A ;指向當(dāng)前要顯示的顯示緩沖區(qū)
MOV A,@R0 ;取個(gè)待顯示數(shù)
MOV DPTR,#DISPTAB ;字形表首地址
MOVC A,@A+DPTR ;取字形碼
MOV P0,A ;將字形碼送P0位(段口)
MOV A,COUNT
MOV DPTR,#BitTab ;字位表首地址
MOVC A,@A+DPTR
ORL P2,#11111100B
ANL P2,A
MOV TH1,#HIGH(65536-4000)
MOV TL1,#LOW(65536-4000)
POP PSW
POP ACC
RETI
BitTab: DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBH DISPTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
三。程序分析
主程序在對(duì)定時(shí)器、計(jì)數(shù)器、堆棧等進(jìn)行初始化后即判斷標(biāo)志SpCalc是否為1,如果為1,說(shuō)明要求對(duì)數(shù)據(jù)進(jìn)行計(jì)算處理,首先將SpCalc標(biāo)志清零,以保證下次能正常判斷,然后進(jìn)入數(shù)據(jù)處理程序,由于這里的閘門(mén)時(shí)間為1s,而顯示要求為轉(zhuǎn)/分,因此,要將測(cè)到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換的方法是將測(cè)得的數(shù)據(jù)乘以60,但由于轉(zhuǎn)軸上安裝有12只磁鋼,每旋轉(zhuǎn)一周可以得到12個(gè)脈沖,因此,要將測(cè)得的數(shù)據(jù)除以12,所以綜合起來(lái),將測(cè)得的數(shù)據(jù)乘以5即可得到每分鐘的轉(zhuǎn)速。計(jì)算得到的結(jié)果是二進(jìn)制的整數(shù),要將數(shù)據(jù)送往顯示緩沖區(qū)需要將該數(shù)轉(zhuǎn)化為BCD碼。運(yùn)算得到的是壓縮BCD碼,需要將其轉(zhuǎn)換為非壓縮BCD碼,從標(biāo)號(hào)CBCD開(kāi)始的一段程序即作了這樣的處理。需要說(shuō)明的是,這里多位二進(jìn)制乘法和多位二進(jìn)制到BCD碼的轉(zhuǎn)換都是用了現(xiàn)成的成熟子程序,因此,首先將二進(jìn)制數(shù)轉(zhuǎn)換為壓結(jié)合實(shí)際BCD碼,然后再轉(zhuǎn)換成非壓縮BCD碼。定時(shí)器T1用作4ms定時(shí)發(fā)生器,在定時(shí)中斷程序中進(jìn)行數(shù)碼管的動(dòng)態(tài)掃描,同時(shí)產(chǎn)生1s的閘門(mén)信號(hào)。1s閘門(mén)信號(hào)的產(chǎn)生是通過(guò)一個(gè)計(jì)數(shù)器Count,每次中斷時(shí)間為4ms,每計(jì)250次即為1s,到了1s后,即清除計(jì)數(shù)器Count,然后關(guān)閉作為計(jì)數(shù)器用的T0,讀出TH0、TL0中的數(shù)值,分別送入SpCoun和SpCoun+1單元,將T0中的值清空,置SpCalc標(biāo)志為1,要求主程序進(jìn)行速度值的計(jì)算。這里還有一個(gè)細(xì)節(jié),用作1s閘門(mén)信號(hào)產(chǎn)生的Count每次中斷都會(huì)加1,而T0卻有一個(gè)周期是被關(guān)閉的,因此,計(jì)數(shù)值是251而不是250.
下一篇:電腦主板810電路圖[_]06
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- LM317:高效構(gòu)建電壓源及電流源電路方案1
- 如何使用多相轉(zhuǎn)換器平衡電流2
- LTC4365 如何實(shí)現(xiàn)敏感電路過(guò)壓與反接保護(hù)3
- MOS 管邏輯電路五種門(mén)電路特性4
- 點(diǎn)動(dòng)正轉(zhuǎn)控制電路簡(jiǎn)介5
- 單鍵開(kāi)關(guān)機(jī)電路與輕觸開(kāi)關(guān)的創(chuàng)新設(shè)計(jì)解析6
- 二極管的恒壓降模型7
- MC34063電路計(jì)算公式及應(yīng)用講解8
- 3.3V - 1.8V 電平雙向轉(zhuǎn)換:多場(chǎng)景配置及獨(dú)特優(yōu)勢(shì)剖析9
- 液晶電視機(jī)電路結(jié)構(gòu)的關(guān)鍵要點(diǎn)10
- XR2206函數(shù)發(fā)生器
- MC34063電路計(jì)算公式及應(yīng)用講解
- 二極管的恒壓降模型
- 點(diǎn)動(dòng)正轉(zhuǎn)控制電路簡(jiǎn)介
- 如何使用多相轉(zhuǎn)換器平衡電流
- 液晶電視機(jī)電路結(jié)構(gòu)的關(guān)鍵要點(diǎn)
- LTC4365 如何實(shí)現(xiàn)敏感電路過(guò)壓與反接保護(hù)
- 單鍵開(kāi)關(guān)機(jī)電路與輕觸開(kāi)關(guān)的創(chuàng)新設(shè)計(jì)解析
- MOS 管邏輯電路五種門(mén)電路特性
- LM317:高效構(gòu)建電壓源及電流源電路方案







![810電腦主板電路圖2[_]23](https://image.dzsc.com/diagram/2011/05/19/20110519175047672.jpg)
![810電腦主板電路圖1[_]28](https://image.dzsc.com/diagram/2011/05/19/20110519180715782.jpg)
![電腦主板電路圖810[_]35](https://image.dzsc.com/diagram/2011/05/19/20110519175114453.jpg)
![810E電腦主板設(shè)計(jì)圖[_]12](https://image.dzsc.com/diagram/2011/05/19/20110519181312578.jpg)



