freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)智能小車設(shè)計程序(參考版)

2025-07-10 13:07本頁面
  

【正文】 采用的技術(shù)主要有: (1)通過編程來控制小車的速度; (2)傳感器的有效應(yīng)用;。 7 結(jié)束語 本設(shè)計采用80C5l單片機(jī)為控制核心,這主要是因為該單片機(jī)的穩(wěn)定性比較好。因此,軟件設(shè)計在微機(jī)控制系統(tǒng)設(shè)計中占重要地位。系統(tǒng)原理圖如圖5所示。5 系統(tǒng)原理圖 智能電動車采用80C51單片機(jī)進(jìn)行智能控制。4 電源的設(shè)計 本設(shè)計的電源為車載電源。圖4為行車距離檢測電路。圖3為前行與倒車控制電路。系統(tǒng)通過電橋的輸出端為轉(zhuǎn)向電機(jī)供電。三極管導(dǎo)通時,電橋通過三極管接地,電機(jī)電樞中有電流通過;三極管截止時,電橋浮空。2.3 前行與到車控制 前行與倒車控制電路的核心是橋式電路和繼電器。前進(jìn)時,驅(qū)動輪直流電機(jī)正轉(zhuǎn),進(jìn)入減速區(qū)時,由單片機(jī)控制進(jìn)行PWM變頻調(diào)速,通過軟件改變脈沖調(diào)寬波形的占空比,實現(xiàn)調(diào)速。 此套紅外光電傳感器固定在底盤前沿,貼近地面。該電路包括—個紅外發(fā)光二極管、一個紅外光敏三極管及其上拉電阻。見圖2電動車的方向檢測電路。光線跟蹤,采用光敏三極管接收燈泡發(fā)出的光線,當(dāng)感受到光線照射時,其ce間的阻值下降,檢測電路輸出高電平,經(jīng)LM393電壓比較器和74LSl4施密特觸發(fā)器整形后送單片機(jī)控制。2.1 行車起始、終點及光線檢測 系統(tǒng)采用反射式紅外線光電傳感器用于檢測路面的起始、終點(2 cm寬的黑線),玩具車底盤上沿黑線放置一套,以適應(yīng)起始的記數(shù)開始和終點停車的需要。VT1和VT4同時導(dǎo)通和關(guān)斷,其驅(qū)動電路中Ub1=Ub4;VT2和VT3同時動作,其驅(qū)動電壓Ub2=Ub3=Ub1。圖1為雙極式H型可逆PWM變換器的電路原理圖??赡鍼WM變換器主電路的結(jié)構(gòu)式有H型、T型等類型。 脈寬調(diào)速也可通過單片機(jī)控制繼電器的閉合來實現(xiàn),但是驅(qū)動能力有限。脈沖周期不變。當(dāng)晶閘管被觸發(fā)導(dǎo)通時,電源電壓加到電動機(jī)上,當(dāng)晶閘管關(guān)斷時,直流電源與電動機(jī)斷開,電動機(jī)經(jīng)二極管續(xù)流,兩端電壓接近于零。1 直流調(diào)速系統(tǒng)采用PWM調(diào)速 直流調(diào)速系統(tǒng)采用晶閘管的直流斬波器與整流電路。晶閘管不受相位控制,而是工作在開關(guān)狀態(tài)。 } 基于80C51單片機(jī)的智能小車設(shè)計發(fā)布:20110517 | 作者: | 來源: xuwenhua | 查看:1359次 | 用戶關(guān)注:O 引言 在現(xiàn)有玩具電動車的基礎(chǔ)上,加裝光電檢測器,實現(xiàn)對電動小汽車的速度、位置、運(yùn)行狀況的實時測量,并將測量數(shù)據(jù)傳送至單片機(jī)進(jìn)行處理,然后由單片機(jī)根據(jù)所檢測的各種數(shù)據(jù)實現(xiàn)對電動車的智能控制。 //reenable interrupts //all peripherals are now initialized } void main(void) { init_devices()。 TIMSK = 0x04。 MCUCR = 0x00。 timer0_init()。 } } //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up CLI()。 } break。 } case 0x02: { if(mid_power1) { mid_power。 delay100us(10)。 } pragma interrupt_handler int1_isr:3 void int1_isr(void) { //external interupt on INT1 switch((~PINC)amp。 istrapped=0。i) { if(history[i1]=4) istrapped++。 for(i=8。 default:break。 case double_obj:move_double_obj()。 case front_bigobj:move_front_bigobj()。 case front_obj:move_front_obj()。 case left_bigobj:move_left_bigobj()。 case left_obj:move_left_obj()。 case right_bigobj:move_right_bigobj()。 case right_obj:move_right_obj()。 switch(detect) { case no_obj:move_no_obj()。 detect=(PINBamp。 //reload counter low value pre_power=OCR0。 //TIMER1 has overflowed TCNT1H = 0xCF。 TCCR1B = 0x02。 ICR1L = 0xFA。 OCR1BL = 0xFA。 OCR1AL = 0xFA。 //setup TCNT1L = 0x2C。 //start timer } //TIMER1 initialize prescale:8 // WGM: 0) Normal, TOP=0xFFFF // desired value: 100mSec // actual value: (%) void timer1_init(void) { TCCR1B = 0x00。 //set count OCR0 = 0xFF。 } //TIMER0 initialize prescale:8 // WGM: PWM Fast // desired value: 2mSec // actual value: (%) void timer0_init(void) { TCCR0 = 0x00。 PORTD = 0x0C。 PORTC = 0x03。 PORTB = 0x00。 } void port_init(void) { PORTA = 0xF8。i0。 } default:break。 break。 PORTA=forward。 } case left_bigobj: { PORTA=backward_and_left。 TCCR1B=0x02。 } case front_obj: case front_bigobj: case right_bigobj: { delay10ms(25)。 TCCR1B=0x02。 switch(PINBamp。 } } break。 TCCR1B=0x02。 delay10ms(30)。 break。 PORTA=forward。 } case front_obj: case front_bigobj: case right_bigobj: { PORTA=backward_and_right。0x07) { case no_obj: case right_obj: case left_obj: case double_obj: { TCCR1B=0x02。 delay10ms(30)。 break。 switch(PINBamp。 OCR0=max_power。 TCCR1B=0x00。 isforward=1。 if(isforward==1) count_move++。 } void move_double_obj(void) { PORTA=forward。 else count_move++。 record_history()。 isforward=0。 if(isforward==1) count_move=0。 } void move_front_obj(void) { PORTA=backward_and_right。 else count_move++。 record_history()。 isforward=0。 if(isforward==1) count_move=0。 } void move_right_bigobj(void) { PORTA=bac
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1