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

正文內(nèi)容

基于51單片機的“掃地機器人”設(shè)計報告-在線瀏覽

2025-01-09 10:38本頁面
  

【正文】 。 L298N 是一個具有高電壓大電流的全橋驅(qū)動7 芯片,它相應(yīng)頻率高,一片 L298N 可以分別控制兩個直流電機,而且還帶有控制使能端。我們采用現(xiàn)成的封裝好的電機驅(qū)動模塊,能將 612伏的電壓轉(zhuǎn)化為 5伏電壓輸出,給單片機和其他模塊供電,操作簡單功能強大。該傳感器的探測距離可以通過電位器調(diào)節(jié)、具有干擾小、便于裝配、使用方便等特點。 五 、設(shè)計與論證 程序流程圖 9 六、理論分析與計算 (1)單片機間的控制 由于是 基于人機交互界面控制的掃地機器人,故可由兩個單片機控制不同的模塊( STC12C5A60S2控制顯示模塊, STC89C52RC 控制小車模塊) 。 (2)背光燈及小車車輪控制 由 STC12IO 口輸出一定的 PWM 信號,可調(diào)節(jié)背光燈的亮度。 (3)小車的避障功能 通過紅外傳感器測距,當(dāng)紅外傳感器與 障礙物距離縮短到一定距離時,紅外傳感器會給單片機傳輸一個電信號 ,單片機識別電信號后可控制小車轉(zhuǎn)向,從而避開障礙物。再通過電池電壓與容量的簡易關(guān)系,設(shè)計簡易程序?qū)崿F(xiàn)在 12864 固定區(qū)域顯示。 (7)返回出發(fā) 點 通過循跡模塊對地面進行識別,若識別到黑線即會輸出電信號,單片機識別電信號后行走一小段時間后便停止行動 (1)主程序 main 函數(shù)開始執(zhí)行初始化,初始化 LCD 等外部硬件,在 LCD 上顯示固定數(shù)據(jù) (2)進入 while 循環(huán)重復(fù)掃描按鍵,時間比較,顯示電量 ,背光選擇。由于單片機執(zhí)行速度快,故按下按鍵的同時,單片機幾乎同時執(zhí)行按鍵掃描函數(shù),對來自 IO 口的電平信號進行分析 。因 LCD 的執(zhí)行速度很快,人眼存在視覺停留效果,故改變數(shù)據(jù)時,人不易察覺到這一過程。因此,在對DS1302 時鐘數(shù)據(jù)的更改時需將更改的時鐘數(shù)據(jù)改變?yōu)?16 進制再進行儲存。再通過對電壓與電源電路的簡易關(guān)系,判斷電壓屬于哪個范圍即顯示相應(yīng)的剩余電量。表現(xiàn)為紅外傳感器指示燈亮起 (2) 通過 LCD 顯示 AD 串口檢測到的電壓,同時用萬用表檢測電源兩端的輸出電壓,觀察讀取數(shù)據(jù)是否準(zhǔn)確。調(diào)節(jié)行走電機的轉(zhuǎn)速, 使其實現(xiàn)轉(zhuǎn)向, 觀察其是否能達到預(yù)估效果 (5)通過給電機驅(qū)動模塊輸入使能信號,控制行走電機轉(zhuǎn)向,使其實現(xiàn)前行 和后退 , 觀察其是否能達到預(yù)估效果 (6)根據(jù)需要的功能設(shè)計程序,觀察其在 LCD 上是否能夠按預(yù)想狀況進行 測試儀器 :萬用表 九、測試數(shù)據(jù)與結(jié)果分析 測試數(shù)據(jù) 要求 測試內(nèi)容 測試前 測試后 備注 基本要求 1: 設(shè)計掃地機器 前進 通過觀測可知 (能夠 前15 人,自主完成前進、后退、轉(zhuǎn)向等控制 進) 后退 通過觀測可知 (能夠后退) 轉(zhuǎn)向 通過觀測可知 (能夠轉(zhuǎn)向) 基本要求 2: 實現(xiàn) 避障功能,能自主走完一個用圍墻圍起 來2m*2m的區(qū)域 避障 通過觀測可知 (能夠 避障) 自主走完一個用圍墻圍起來 2m*2m的區(qū)域 通過觀測可知 (能夠走完待清掃區(qū)域) 基本要求 3: 設(shè)計簡易掃地裝置,能夠清掃小紙團 清掃小紙團 通過觀測可知 (能夠清掃小紙條,部分有較小幾率16 彈出垃圾收集裝置 拓展功能 1: 設(shè)計良好的人機界面,用于設(shè)置 開啟時間,顯示電量等 設(shè)置時間 ~為設(shè)置時間標(biāo)志, ho,mi,se 分別為時分秒設(shè)置標(biāo)記 設(shè)置開啟時間 ~為設(shè)置時間標(biāo)志, ho,mi,se 分別為時分秒設(shè)置標(biāo)記 設(shè)置關(guān)閉時間 ~為設(shè)置時間標(biāo)志, ho,mi,se 分別為時分秒設(shè)置標(biāo)記 顯示電量 拓展功能 2: 能夠清掃更小 清掃更小的 通過觀測可17 的垃圾,如紙屑 垃圾 知 (能夠清掃較小紙屑 ) 拓展功能 3: 清掃之后能夠回到用黑膠布圍成的30cm*30cm的起點區(qū)域 回到起點 通過觀測可知 (能夠回到起點) 其他 拓展功能: 設(shè)置 LCD 背光亮度 設(shè)置 LCD 背光亮度 測試前為直接接上電源后 LCD 背光燈亮度(亮度太大,耗能高,刺眼) 18 結(jié)果分析 基本要求 完成情況 1 設(shè)計掃地機器人,自主完成前進、后退、轉(zhuǎn)向等控制 完成 2 實現(xiàn)避障功能,能自主走完一個用圍墻圍起 來 2m*2m 的區(qū)域 完成 ,小車在檢測到前方障礙物時會自行轉(zhuǎn)向 3 設(shè)計簡易掃地裝置,能夠清掃小紙團 完成 ,通過兩個反向旋轉(zhuǎn)毛刷可以將小紙團收集進自制簡易垃圾收集裝置 拓展功能 1 設(shè)計良好的人機界面,用于設(shè)置開啟時間,顯示電量等 完成 ,可以顯示實時時間,開啟時間,關(guān)閉時間,電量。 sbit LCD_EN=P3^1。 sbit LCD_RS=P3^3。 sbit SDA=P3^5。 sbit key=P2^0。 sbit s2=P2^5。 sbit s4=P2^7。 sfr ISP_ADDRH=0xc3。 sfr ISP_CMD=0xc5。 sfr ISP_CONTR=0xc7。 sfr ADC_RES = 0xBD。 sfr P1ASF = 0x9D。 22 sbit CCF0 = CCON^0。 sbit CR = CCON^6。 sfr CMOD = 0xD9。 sfr CH = 0xF9。 sfr CCAP0L = 0xEA。 sfr CCAPM1 = 0xDB。 sfr CCAP1H = 0xFB。 sfr PCAPWM1 = 0xf3。 char miao,shi,fen。 uchar s1num,s2num。 uchar code table1[]=掃地機器人 。 uchar code table3[]= TIME: 00:00:00。 void InitADC()。 int GetADCResult(uchar ch)。 void ShowResult(uchar ch)。//計算 AD 轉(zhuǎn)換電壓值 void delayus(uint z)。 void Q0(void)。 void xcx(uint addr,uchar dat)。 void write_(uchar mand)。 void ds1302writebyte(uchar dat)。 uchar ds1302read(uchar cmd)。 24 // 初次初始化 ds1302 使用 //void init_ds1302(void)。 void keyscan()。 //蜂鳴器報警 void clock()。 void powershow()。 void show1(int x)。 void beiguang()。 while(1) { keyscan()。 pare()。 beiguang()。 } if(s3==0) { pwm(128)。 } } } void pwm(uchar x) { CCON = 0。 CH = 0。 26 CCAP0H = CCAP0L = x。 CR = 1。 uchar num。num0。 } VAL_AV/=。 VAL_AV=VAL_AV*。 } void powershow() //顯示電量 { float dianya。 if(dianya=) 27 { show1(0)。 } else if(dianya=) { show1(3)。 } else if(dianya=) { show1(8)。 } else if(dianya=) { show(1,2)。 } else if(dianya=) { show(1,8)。 } else if(dianya=) { show(2,5)。 } else if(dianya=) { show(3,0)。 } else if(dianya=) { show(3,5)。 } else if(dianya=) { show(4,0)。 } else if(dianya=) { show(4,5)。 } else if(dianya=) { show(5,5)。 } else if(dianya=) 29 { show(6,0)。 } else if(dianya=) { show(6,5)。 } else if(dianya=) { show(7,0)。 } else if(dianya=) { show(7,5)。 } else if(dianya=) { show(8,0)。 } else if(dianya=) { show(8,5)。 } else if(dianya=) { show(9,0)。 } else if(dianya=) { show(9,5)。 } else if(dianya=) { show(9,9)。 write_date(0x30+1)。 write_date(0x30+0)。%39。 } } void show(int x,int y) 31 { write_(0x80+6)。 39。 write_date(0x30+x)。 write_date(39。)。 write_date(39。)。 39。 write_date(0x30+x)。%39。 } void delayus(uint z) { uint x,y。x0。y0。 } void delayms(uint z) //延時 32 { uint x,y。x0。y0。 } void Q0(void) { ISP_CONTR=0。 ISP_TRIG=0。 ISP_ADDRL=0。 ISP_CMD=0X03。 ISP_ADDRH=addr8。 ISP_TRIG=0X5A。 33 delayus(1)。//關(guān)閉 ISP,IAP } void xcx(uint addr,uchar dat) { ISP_CONTR=0X82。 ISP_ADDRL=addr。 ISP_DATA=dat。 ISP_TRIG=0X5A。 delayus(1)。//關(guān)閉 ISP,IAP } uchar dcx(uint addr) { uchar dat。 ISP_CMD=0X01。 34 ISP_ADDRH=addr8。 ISP_TRIG=0X5A。 delayus(1)。 Q0()。 } void write_(uchar mand) //寫指令到 12864 { LCD_RS=0。 LCD_EN=0。 delayms(5)。 delayms(5)。 } 35 void write_date(uchar date) //寫顯示數(shù)據(jù)到 12864 { LCD_RS=1。 LCD_EN=0。 delayms(5)。 delayms(5)。 } void ds1302writebyte(uchar dat) { uchar i。 delayms(1)。i8。0x01。 SCLK=1。 SCLK=0。//數(shù)據(jù)右移一位 } } uchar ds1302readbyte() { uchar i,dat。 for(i=0。i++) { dat
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1