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

正文內(nèi)容

畢業(yè)論文-基于手機(jī)wifi技術(shù)的遙控小車設(shè)計(jì)-在線瀏覽

2025-01-10 19:55本頁面
  

【正文】 串口通信接收收手機(jī)是控制指令,因此需要對單片機(jī)定時(shí)器初值進(jìn)行設(shè)置,若采用常用 12M 晶振,初值不一定是整數(shù),通信時(shí)便會產(chǎn)生積累誤差,進(jìn)而產(chǎn)生波特率誤差,影響通信的同步性。 軟件設(shè)計(jì) 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與一般電子系統(tǒng)設(shè)計(jì)的差別在于,它既要構(gòu)成硬件邏輯電路,也要設(shè)計(jì)相應(yīng)的支持軟件。 本程序的主要思路是,利用單片機(jī)的計(jì)數(shù)器計(jì)時(shí),控制 IO 口產(chǎn)生 PWM 波用于控制電機(jī)轉(zhuǎn)速。其控制流程大致如下如所示: 10 否 是 否 是 顯示系統(tǒng) 顯示系統(tǒng)既可以選擇使用 LED,也可以 選擇使用 LCD。 開始 系統(tǒng)初 始 化 是否連接到 上位機(jī) 進(jìn)入控 制模式 是否接受到 串口指令 響應(yīng) 控制 結(jié)束 11 由于本次設(shè)計(jì)所要顯示的內(nèi)容不多,并不需要太大的液晶屏來顯示。 1602 液晶每次可以顯示 2 行 16 個字符,總共 32 個字符,而且 可以顯示所有的 ASCII 碼 ,包括標(biāo)點(diǎn),數(shù)字,英文大小寫 等,因此,使用該液晶屏可以很好的實(shí)現(xiàn)顯示功能。 表 1602 液晶顯示屏的主要技術(shù)指標(biāo) LCD1620 顯示容量: 16X2 個字符 芯片工作電壓: 工作電流: (5V) 最佳工作電壓: 5V 字符尺寸: (WXH)mm 1602 液晶顯示屏共有 16 個引腳,其各個引腳的功能如下表,表 中所示。 L298N 恒壓恒流橋式 2A 驅(qū)動芯片, L298N 可接受標(biāo)準(zhǔn) TTL 邏輯電平信號 VSS,VSS 可接 4. 5~ 7 V 電壓。輸出電流可達(dá) 2. 5 A,可驅(qū)動電感性負(fù)載。 L298 可驅(qū)動 2 個電動機(jī),OUT1, OUT2 和 OUT3, OUT4 之間可分別接電動。 解決該問題常用以下三種方法: 1) 、選用性能更好的的電源: 2) 、采用獨(dú)立電源供電,即使用兩個電源分別給單片機(jī)和電機(jī)供電; 3) 、在電源附近并聯(lián)一個較大值的電容,當(dāng)電機(jī)啟動時(shí),電流較大,電容中的電可以補(bǔ)償一部分電流,保證電壓不至于太低。 14 4 結(jié)束語 該項(xiàng)目的獨(dú)特創(chuàng)新之處在于小車的控制是通過手機(jī)來實(shí)現(xiàn),而不是遙控手柄或電腦,從而使用更加方便,實(shí)現(xiàn)用 WIFI 技術(shù)對玩具小車進(jìn)行遙控控制,包括小車前進(jìn)、后退、轉(zhuǎn)彎等功能。因此,該項(xiàng)目的成果將不僅僅局限于一個遙控小車,更具有價(jià)值的是手機(jī)遠(yuǎn)程控制系統(tǒng) 。目前基于 Android 手機(jī)和 WIFI 技術(shù)開發(fā)的娛樂軟件較多,而控制機(jī)電產(chǎn)品的軟件和專利相對較少。 WIFI 具有較強(qiáng)的數(shù)據(jù)傳輸能力,普通智能手機(jī)完全能達(dá)到 1M/S 以上的速度。 參考文獻(xiàn) 《 51 單片機(jī) c 語言教程》 夏家莉等人 《 Goolge Android 開發(fā)技術(shù)》 3 郭宏志 《 Android 應(yīng)用開發(fā)詳解》 4(美)昊斯特曼 著,葉乃文,鄺勁 筠,杜永萍譯 《 java 核心技術(shù)卷 1基礎(chǔ)知識 》 15 附 錄 附錄 1 部分電路原理圖 1602液晶顯示 單片機(jī)最想系統(tǒng) 電 機(jī) 驅(qū) 動 模 塊 電源模塊 16 附錄 2 液晶驅(qū)動程序 define uchar unsigned char define uint unsigned int sbit lcden=P3^4。 sbit wela=P2^7。 uint num。 uchar code table2[]=RX 00 00 0。 void delay(z)。 void write_date(date)。 P0=。 lcden=1。 lcden=0。 wela=0。 lcden=0。 write_(0x0e)。 write_(0x01)。 for(num=0。num++) { write_date(table1[num])。 17 } write_(0x80+0x40)。num11。 delay(5)。 } void write_date(uchar date) { lcdrs=1。 delay(5)。 delay(5)。 } void delay(int z) { int x,y。x0。y0。 } } void print(uchar add,uchar date) { write_(0x80+0x40+add)。 } 附錄 3 電機(jī)驅(qū)動程序 define uchar unsigned char define uint unsigned int /********* L298N **************/ sbit LEFT_IN1 = P1^3。 sbit LEFT_IN2 = P1^5。 //右邊電機(jī) sbit RIGHT_EN = P1^1。 /**************PWM 定義產(chǎn)生 ****************/ define PWM_PERIOD 100 uchar PWM_COUNTER = 0。 //左邊電機(jī)占空比 uchar RIGHT_PWM_DUTY = 50。 } /************延時(shí) ms 級 *************/ void DelayMs(uint ms) { unsigned int i,j。 i ms。 j 0。 } /************************************************************** 內(nèi)部資源初始化 *******************************************************************/ void motor_init() { TMOD = 0x22。 //100us 定時(shí) 2^8100=156=9cH TL0 = 0x9c。 // 中斷優(yōu)先級:定時(shí)器 0, 外部中斷 0優(yōu)先 EA = 1。 // 打開外部中斷 1 ET0 = 1。 // 啟動定時(shí)器 0 } /***********定時(shí)器 0 中斷服務(wù)函數(shù) ************** 函數(shù)功能: 輸出 PWM波 ******************************************/ 19 void Timer0(void) interrupt 1 { PWM_COUNTER ++。 if(PWM_COUNTER RIGHT_PWM_DUTY) RIGHT_EN = 0。 LEFT_EN = 1。 } } /*************前 進(jìn) ****************/ void GoHead(uchar speed_left,uchar speed_right) { LEFT_IN1 = 1。 RIGHT_IN1 = 1。 LEFT_PWM_DUTY = speed_left。//走直線占空比校正 } /*************后退 ***************/ void GoBack(uchar speed_left,uchar speed_right) { LEFT_IN1 = 0。 RIGHT_IN1 = 0。 LEFT_PWM_DUTY = speed_left。//走直線占空比校正 } /*************左正右反 右轉(zhuǎn) ***************/ void GoLeft(uchar speed_left,uchar speed_right) { LEFT_IN1 = 0。 RIGHT_IN1 = 1。 LEFT_PWM_DUTY = speed_left。//走直線占空比校正 } /*************右正左反 左轉(zhuǎn) ***************/ void GoRight(uchar speed_left,uchar speed_right) { LEFT_IN1 = 1。 RIGHT_IN1 = 0。 LEFT_PWM_DUTY = speed_left。//走直線占空比校正 } 附錄 4 單片機(jī)主函數(shù) //Wifi 智能小車 第二版 include //包含 STC52系列單片機(jī)的頭文件 include include sbit KEY1=P3^6。 define sensor_IROA P3 //跟上面定義一樣,取 P3^3P3^5 unsigned int PWM_G1=33。 // unsigned char R_date[3]={0}。 unsigned char pattern=0。 //用于手機(jī)控制標(biāo)記 unsigned char check_phone=0。 unsigned char sen_inp_IROA() 21 { unsigned IROA_date。 IROA_date=~IROA_date。=0x38。 return(IROA_date)。 GoHead(0,0)。i3。 RBuff_date[i]=0。 TL1=0XFA。 REN=1。 SM1=1。 ES=1。 while(!TI)。 } void uart(void) interrupt 4 { 22 if(RI) { RI=0。 RBuff_date[0]= RBuff_date[1]。 RBuff_date[2]=SBUF。amp。amp。amp。 pattern=1。 } //PC 控制 if(RBuff_date[0]==0x3C amp。 RBuff_date[1]==0x31 amp。 RBuff_date[2]==0x3E) { pattern=2。 // beed_ctrl(500,4)。amp。amp。 // print(0x4f,1)。amp。amp。 // print(0x4f,1)。 } else if(RBuff_date[0]==0x7B amp。 RBuff_date[1]==0x30 amp。 23 RBuff_date[2]==0x7D) { pattern=0。 init_system()。amp。 } else { R_date[0]=RBuff_date[0]。 R_date[2]=RBuff_date[2]。 RBuff_date[1]= RBuff_date[2]。 RBuff_date[3]=SBUF。 R_date[1]=RBuff_date[1]。 } } else TI=0。 init_system()。 SCI_TX(0x55)。 //發(fā)送“ 0xf0“ if(pattern==1) { switch(R_date[0]) { case 0x44: switch(R_date[1]) { case 0x4c: switch(R_date[2]) { case 0x31: GoHead(20,20)。 case 0x32: GoHead(20,90)。 case 0x33: GoHead(90,20)。 default: break。 case 0x44: switch(R_date[2]) { case 0x31: GoLeft(30,30)。 case 0x32: GoLeft(30,0)。 cas
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1