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

正文內(nèi)容

基于單片機(jī)的紅外遙控智能小車畢業(yè)設(shè)計(jì)報(bào)告(參考版)

2025-06-27 16:15本頁面
  

【正文】 TL1=(65536。\039。C39。 //個(gè)位 TempBuffer[2]=0xdf。 //十位 TempBuffer[1]=temp_value%10+39。 TempBuffer[0]=temp_value/10+39。 temp_value+=low4。 //讀取溫度值低位 high=readByte()。 sendReadCmd()。 //寫入跳過序列號命令字 Skip Rom writeByte(0xbe)。 delay15us(67)。 //寫入溫度轉(zhuǎn)換命令字 Convert T}void sendReadCmd(void) //向DS18B20發(fā)送讀取數(shù)據(jù)命令{ ds18b20Init()。 //延時(shí)約1ms, 因?yàn)镈S18B20會拉低DQ 60~240us作為應(yīng)答信號 writeByte(0xcc)。//初始化DS18B20, 無論什么命令, 首先都要發(fā)起初始化 ds18b20Wait()。 i++。 //延時(shí)約75us, 符合讀時(shí)隙不低于60us要求 DQ=1。 //延時(shí)約75us, 符合讀時(shí)隙不低于60us要求 } else //寫0, 將DQ拉低60us~120us { DQ=0。 //拉低約16us, 符號要求15~60us內(nèi) DQ=1。 i++。 dat=1。j++) { b=datamp。 for(j=0。 uchar j。 }return dat。 i++) {j=readBit()。 for(i=1。 //延時(shí)約75us, 符合讀時(shí)隙不低于60us要求 return dat。 //延時(shí)約16us, 符合協(xié)議要求的至少延時(shí)15us以上 dat=DQ。 i++。 i++。 bit dat。 //檢測到應(yīng)答脈沖 delay15us(3)。 //拉高約30us } void ds18b20Wait(void) //接受來自DS18B20的響應(yīng)信號{ while(DQ)。 //拉低約510us, 符合協(xié)議要求的480us以上 DQ = 1。}void ds18b20Init(void) { DQ = 0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。//存放溫度數(shù)字void delay15us(int n) //延時(shí)子程序,延時(shí)15us*n{ do{ _nop_()。 //溫度傳送數(shù)據(jù)IO口 uchar temp_value。 delay(10)。 lcd_wcmd(0x01)。 lcd_wcmd(0x06)。 lcd_wcmd(0x0c)。 lcd_wcmd(0x08)。 lcd_wcmd(0x38)。 ep = 0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 dis_data = dat。 rw = 0。}lcd_wdat(BYTE dat) { //寫入字符顯示數(shù)據(jù)到LCDwhile(lcd_bz())。 ep = 0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 dis_data = cmd。 _nop_()。 rw = 0。 }lcd_wcmd(BYTE cmd){ // 寫入指令數(shù)據(jù)到LCDwhile(lcd_bz())。 ep = 0。 result = (BOOL)(dis_data amp。 _nop_()。 _nop_()。 rw = 1。 } }}BOOL lcd_bz()// 測試LCD忙碌狀態(tài){BOOL result。_nop_()。 i++) { _nop_()。 while(ms) { for(i = 0。sbit ep=P1^7。 sbit rs=P1^5。typedef unsigned int WORD。 } if(irpro_ok) { Ir_work()。 if(irok) { Ircordpro()。 Delay1ms(100)。 right。 display(0x4c,back )。 display(0x4c,go )。 while(1) { while(!mode) //自動(dòng)控制狀態(tài) { display(0x00,dis1)。 EA=1。 EX0_init()。//初始化T1定時(shí)采集溫度 time0_init()。 lcd_init()。 // 設(shè)置成下降沿觸發(fā)方式 }void main(void) {mode=MODE_ZIDONG。//處理完成標(biāo)志}void EX0_init(){ EX0=1。break。break。break。 if(count0=0) count0=0。break。 if(count0=100)count0=100。break。 case 3:left。display(0x4c,right)。break。 case 1:back。 display(0x4c,go )。 i++。\039。 i=0。 } }} void display(unsigned char add,unsigned char *str){ unsigned char i。 _nop_()。i++) { _nop_()。 while(x) { for(i0。 if(mode==MODE_SHOUDONG) mode=MODE_ZIDONG。unsigned char dis2[]={modeyaokong}。bit mode。bit MODE_ZIDONG=0。附錄1:源程序1 include include include include include include sbit Eout=P1^0。 [8] 楊恢先,王子菡,楊穗,,2004。[5] .。[3] ,北京航空航天大學(xué)出版社,1990。參考文獻(xiàn)[1] :航天航空大學(xué)出版社。致謝首先非常感謝崔利平老師,是她在我的整個(gè)畢業(yè)設(shè)計(jì)過程中給了我最大的支持與鼓勵(lì),還為我提供了畢業(yè)設(shè)計(jì)所需要的資料,幫助解答了我在畢業(yè)設(shè)計(jì)中遇到的問題。小車功能進(jìn)一步完善,可用作兒童玩具,也可用于各種電子類設(shè)計(jì)大賽。還可以設(shè)定溫度范圍,如果超過這個(gè)范圍蜂鳴器報(bào)警。當(dāng)按下鍵后,HS0038將會收到一系統(tǒng)列的數(shù)字信號,由單片機(jī)進(jìn)行解碼,控制小車行進(jìn),操作簡便;溫度測量采用DS18B20,單片機(jī)每隔一段時(shí)間(可編程)對溫度進(jìn)行采集一次,并對采集數(shù)據(jù)經(jīng)行處理,用1602液晶顯示。 第5章 結(jié)論本設(shè)計(jì)基本完成了題目要求的各項(xiàng)功能,包括以紅外遙控方式控制小車的加減速、啟停、轉(zhuǎn)彎、溫度測量及顯示、自動(dòng)避障等功能。采用了模塊化調(diào)試方法,當(dāng)各個(gè)模塊功能均能實(shí)現(xiàn)時(shí)再將所有功能整合在一起,實(shí)現(xiàn)小車的全部功能。通過平時(shí)練習(xí)和實(shí)際操作,焊接水平不斷提高,貼片的焊接也能很好的完成。在焊接過程中,采用模塊化焊接方式,焊接好一個(gè)功能模塊,調(diào)試通過再焊接下一個(gè)模塊。本設(shè)計(jì)采用USB給系統(tǒng)供電,大大降低了電源耦合的干擾,本實(shí)驗(yàn)板也提供電源接口,方便使用。 YNi=0,k=0,j=0,value=0開始i4j=8cord7value=value1j++,k++YNircord[i]=valueValue=0,i++YNvalue |=0x80cord=ircord[k]返回irpro_ok=1j=1圖37 遙控碼值處理函數(shù)第4章 硬件安裝及調(diào)試總結(jié)本設(shè)計(jì)硬件電路在控制成本的情況下,盡可能的選擇了集成度高功能強(qiáng)大的芯片。count=32irdata[i]=countcount=0,i++YNcount=0,startflag=1YNi=0i==33Nirok=1,i=0返回Y圖36 紅外信號接收流程圖紅外信號接收完成后,置接收標(biāo)志為irok=1,通知遙控碼值處理函數(shù)處理接收到的紅外信號,處理完成清接收標(biāo)志,接收下個(gè)信號,并置處理完成標(biāo)志irpro_ok=1,通知主函數(shù)根據(jù)遙控鍵值控制小車。YN開啟定時(shí)器0、外部中斷1開始是否產(chǎn)生外部中斷1startflag==1count42amp。開始延時(shí),若讀到的電平為低,說明該位為“0”,反之則為“1”,為了保險(xiǎn)起見,,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(+)/2=。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,、“0”;、“1”。 //允許T2計(jì)時(shí) TR2=1。//設(shè)T2為定時(shí)模式 CP_RL2=0。//設(shè)重載值 RCAP2L=LSB_reload_value。//設(shè)初值 TL2=LSB_reload_value。 //不用于波特率發(fā)生器 EXEN2=0。 //定時(shí)器2外部標(biāo)志位清除 TCLK=0。定時(shí)器2初始化具體操作如下:void time2_init(void)//定時(shí)器2初始化 {T2MOD=0X00。 define go PWM1=1,PWM2=0,PWM3=1,PWM4=0define back PWM1=0,PWM2=1,PWM3=0,PWM4=1define left PWM1=0,PWM2=1,PWM3=1,PWM4=0define right PWM1=1,PWM2=0,PWM3=0,PWM4=1 速度調(diào)整子程序小車的調(diào)速是通過遙控來控制的,可實(shí)現(xiàn)加減速等功能,此處采用AT89S52特有的定時(shí)器2功能來實(shí)現(xiàn),而且時(shí)間可編程。 sbit PWM3=P0^2。include sbit PWM1=P0^0。小車驅(qū)動(dòng)電路采用三極管組成的H型電路,因此只要控制三極管的導(dǎo)通截止即可實(shí)現(xiàn)小車的控制。具體操作流程如圖34所示。數(shù)據(jù)和命令的傳輸都是低位在先。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。 DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。 ep = 0。_nop_()。 _nop_()。_nop_()。_nop_()。 dis_data= cmd。 _nop_()。 rw = 0。例如寫指令函數(shù):lcd_wcmd(BYTE cmd)// 寫入指令數(shù)據(jù)到LCD{while(lcd_bz())。具體操作流程如圖32所示,液晶初始化過程如圖33所示。流程圖如圖31所示。圖217 避障電路第3章 系統(tǒng)軟件設(shè)計(jì)本次設(shè)計(jì)源程序是用C語言編寫的,主要分為主程序、液晶顯示程序、溫度檢測程序、電機(jī)驅(qū)動(dòng)程序、調(diào)速程序、遙控解碼程序等模塊。此部分是對小車功能的進(jìn)一步完善,使小車可以實(shí)現(xiàn)智能化。如圖216所示。一般用軟件模擬PWM可以有延時(shí)和定時(shí)兩種方法,延時(shí)方法占用大量的CPU,所以這里采用定時(shí)方法。所以這里用脈寬調(diào)制(PWM)來實(shí)現(xiàn)調(diào)速。圖214 H橋電路驅(qū)動(dòng)電機(jī)順時(shí)針轉(zhuǎn)動(dòng)兩個(gè)橋式電路分別控制小車兩邊車輪,指示電路分別指示左右電機(jī)旋轉(zhuǎn)狀態(tài)(如圖215)。如圖214所示。電路圖如圖213所示。圖212 紅外遙控接收電路 直流電機(jī)驅(qū)動(dòng)直流電動(dòng)機(jī)是將直流電能轉(zhuǎn)化為機(jī)械能的電力機(jī)械,其驅(qū)動(dòng)方法就是直接將直流電源加到直流電機(jī)上,是之旋轉(zhuǎn)。有的廠家建議在供電腳和電源之間接入330歐電阻,進(jìn)一步降低電源干擾。根據(jù)發(fā)射端調(diào)制載波的不同應(yīng)選用相應(yīng)解調(diào)頻率的接收頭。交流信號進(jìn)入帶通濾波器,帶通濾波器可以通過30khz到60khz的負(fù)載波,通過解調(diào)電路和積分電路進(jìn)入比較器,比較器輸出高低電平,還原出發(fā)射端的信號波形。其內(nèi)部電路包括紅外監(jiān)測二極管,放大器,限幅器,帶通濾波器,積分電路,比較器等。在編寫解碼程序時(shí),通過判斷脈沖的寬度,即可得到“O”或“1”?!癘”碼由O.。通常有曼徹斯特編碼和脈沖寬度編碼
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1