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

正文內(nèi)容

基于單片機(jī)的激光測(cè)距儀的設(shè)計(jì)與實(shí)現(xiàn)論文(編輯修改稿)

2024-12-16 02:44 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 P2 口輸出其特殊功能寄存器的內(nèi)容。 P2 口在 FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3 口: P3口管腳是 8個(gè)帶內(nèi)部上拉電阻的雙向 I/O口,可接收輸出 4個(gè) TTL 門電流。當(dāng) P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于 12 外部下拉為低電平, P3口將輸出電流 (ILL),也是由于上拉的緣故。 P3 口也可作為AT89C51 的一些特殊功能口: RXD(串行輸入口 )。 TXD(串行輸出口 )。 INT0(外部中斷 0)。 INT1(外部中斷 1)。 T0(記時(shí)器 0外部輸入 )。 T1(記時(shí)器 1外部輸入 )。 WR (外部數(shù)據(jù)存儲(chǔ)器寫選通 )。 RD (外部數(shù)據(jù)存儲(chǔ)器讀選通 )。 同時(shí) P3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST腳兩個(gè)機(jī)器周期的高平時(shí)間。 ALE / PROG :當(dāng)訪問外 部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí), ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時(shí), ALE 只有在執(zhí)行 MOVX, MOVC 指令時(shí) ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。 PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在 由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期PSEN 兩次有效。但在訪問內(nèi)部部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的 PSEN 信號(hào)將不出現(xiàn)。 EA/VPP:當(dāng) EA保持低電平時(shí),訪問外部 ROM。注意加密方式 1時(shí), EA 將內(nèi)部鎖定為RESET。當(dāng) EA 端保持高電平時(shí),訪問內(nèi)部 ROM。在 FLASH 編程期間,此引腳也用于施加12V 編程電源 (VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 開發(fā)板配置 板子尺寸: *95*( cm) 13 1. 4 按鍵鍵盤:輸入設(shè)備,可做中 斷實(shí)驗(yàn)用。 2. 2 個(gè) LED 燈:可做各種花樣燈實(shí)驗(yàn)或狀態(tài)顯示設(shè)備。 3. 超聲波傳感器接口:可做超聲波測(cè)距實(shí)驗(yàn)。 4. 24L01 無線模塊:可以做無線通信,自組網(wǎng)實(shí)驗(yàn)。 5. 紅外接收 IC 接口:可使用 H1838 等接收頭做紅外接收實(shí)驗(yàn),可擴(kuò)展紅外遙控鍵盤。 6. 溫度傳感器 DS18B20 接口 :學(xué)習(xí)“單總線”通訊,可做溫度計(jì),溫度報(bào)警裝置。 7. 溫濕度傳感器 DHT11 接口 :可做溫度計(jì)和濕度計(jì)。 8. 光敏電阻傳感器接口 :可接光敏電阻,學(xué)習(xí)用 AD采集光照強(qiáng)度。 9. 壓敏電阻傳感器接口 :可接壓敏傳感器,學(xué)習(xí)用 AD采集壓力值 。 10. 以 MAX3232 為核心的串口 1:此做為串行通訊的 ,可做串行通訊實(shí)驗(yàn), STC 單片機(jī)也是通過此串口 1燒寫程序的。 11. 以 MAX3232 為核心的串口 2:有了第二串口,我們可以用 2個(gè)串行同時(shí)通信,可以用串口 2進(jìn)行監(jiān)控和調(diào)試。 12. 1602LCD 接口:可直插字符型 1602,點(diǎn)陣圖型 12232 等。 13. 12864LCD 接口:可直插點(diǎn)陣圖型 12864 等。 14. Nokia 5110LCD 屏接口:可接 5110 液晶和 3310 液晶。 (三種液晶共用一個(gè) 20管腳排 母,可通過跳帽選擇,詳見使用手冊(cè)) 15. P 口擴(kuò)展:板子單片機(jī)的 P口都有擴(kuò)展插針引出,方便擴(kuò)展。 16. 輸入電源: USB 口供電與外電源供電端,選擇一種就可以了。 17. 系統(tǒng)電源: ,既可以調(diào)試 5V單片機(jī)和 單片機(jī)。輸入電壓是 5V。 18. 輸出電源:五組 ,可供其它設(shè)備取電。 14 圖 34 雙串口原理圖 本次設(shè)計(jì)用的是 NOKIA5110 屏 Nokia5110 是一款經(jīng)典機(jī)型,可能由于經(jīng)典的緣故,舊機(jī)器很多,所以很多 電子工程師就把舊機(jī)器的屏 幕拆下來, 自己驅(qū)動(dòng) Nokia5110, 用于開發(fā)的設(shè)備顯 示,取代 LCD1602。 使用 Nokia5110 液晶的四大理由: 性價(jià)比高, LCD1602 可以顯示 32 個(gè)字符,而 Nokia5110 可以顯示 15 個(gè)漢 字,30 個(gè)字符。 Nokia5110 裸屏僅 元, LCD1602 一般 15 元左右, LCD 12864 一般 50~70 元。 2) 接口簡(jiǎn)單,僅四根 I/O 線即可驅(qū)動(dòng), LCD1602 需 11 根 I/O 線, LCD12864 需 12 根。 速度快,是 LCD12864 的 20 倍,是 LCD1602 的 40 倍。 Nokia5110 工作電壓 ,正常顯示時(shí)工作電流 200uA 以下,具有掉電模 式,適合電池供電的便攜式移動(dòng)設(shè)備。 編譯環(huán)境 15 keil uVision2 是德國(guó) Keil software 公司出品的 51 系列單片機(jī) C 語言軟件開發(fā)系統(tǒng)。其在 C 語言上加入了單片機(jī)特有的語法,并最大程度上保留了 C 語言上的大部分的語法規(guī)則,從而大大方便了編程,也提高了人們對(duì)其的認(rèn)可程度。 測(cè)試環(huán)境的可用性: include sbit led=P1^0。 void main(void) { led=1。 while(1) { led=0。 } } 圖 34 keil測(cè)試 經(jīng)測(cè)試該編譯器可用,編譯環(huán)境就搭建好了。 16 激光測(cè)距儀的關(guān)鍵技術(shù) 總體結(jié)構(gòu)圖如下: 圖 41模塊連接圖 圖 42 ISIS professional上的模擬圖 17 由于 ISIS professional上沒有激光的收發(fā)單元件,就以跑步機(jī)的設(shè)計(jì)為模擬圖,經(jīng)測(cè)試通過。 5110屏幕的線序?yàn)椋? sbit res = P1^4。 //復(fù)位 ,0 復(fù)位 sbit sce = P1^3。 //片選 sbit dc = P1^2。 //1 寫數(shù)據(jù), 0 寫指令 sbit sdin = P1^1。 //數(shù)據(jù) sbit sclk = P1^0。 //時(shí)鐘 編寫語言的設(shè)計(jì)流程 本設(shè)計(jì)包括 3 大模塊,包括激光收發(fā)模塊、單片機(jī)模塊、 5110 顯示屏模塊。由于激光收發(fā)模塊的完整封裝性,它提供了開燈、開始連續(xù)測(cè)量、停止連續(xù)測(cè)量、指令確認(rèn)及關(guān)閉激光的命令接口, 所以在連接玩單片機(jī)后只需在編譯時(shí)給出合理的編寫邏輯即可。 第二個(gè)模塊是 5110 屏,由于以前從沒有接觸過 lcd,用的都是 led,在查找了 5110的資料后對(duì)其的原理有了較為直觀的了解。 第三個(gè)模塊是單片機(jī)本身,在綜合了網(wǎng)上的各種資料后,選擇了 51 系列的單片機(jī),其完全符合本設(shè)計(jì)的要求。 5110 屏顯示的實(shí)現(xiàn) 通過指令完成了連續(xù)模式的測(cè)量實(shí)現(xiàn),激光探頭向單片機(jī)發(fā)送數(shù)據(jù)流,單片機(jī)截取的數(shù)據(jù)流并向 LCD 屏幕上通過函數(shù)實(shí)現(xiàn) LCD 的顯示,其中包括了字庫的調(diào)用、坐標(biāo)的設(shè)定、屏幕的初始化、及刷新等功能。 void delay(int t) { uchar i。 while (t) { for (i=0。i125。i++) {} } 18 } void Lcd5110WriteDta(uchar dat) { unsigned char i。 sce=0。 dc=1。 for (i=0。i8。i++) { if (datamp。0x80) sdin=1。 else sdin=0。 dat=dat1。 sclk=0。 nop()。 sclk=1。 } dc=1。 sce=1。 sdin=1。 } void Lcd5110WriteCMD(uchar dat) { unsigned char i。 sce=0。 dc=0。 for (i=0。i8。i++) { if (datamp。0x80) sdin=1。 else sdin=0。 dat=dat1。 sclk=0。 nop()。 sclk=1。 } dc=1。 sce=1。 sdin=1。 } /* 19 LCD_init: LCD 初始化 */ void Lcd5110Init(void) { char i。 // res=0。 // delay(10)。 // res=1。 //以上三句 不用也行 Lcd5110WriteCMD(0x21 )。//初始化 Lcd,功能設(shè)定使用擴(kuò)充指令 Lcd5110WriteCMD(0xa0 )。//設(shè)定液晶偏置電壓 //Lcd5110WriteCMD(0xc0)。//設(shè)定液晶偏置電壓 //調(diào)試用 顯示全黑 Lcd5110WriteCMD(0x02 )。//溫度校正 Lcd5110WriteCMD(0x13 )。//1:48 Lcd5110WriteCMD(0x20 )。//使用基本指令 Lcd5110WriteCMD(0x0C )。//設(shè)定顯示模式,正常顯示 for (i=0。i84。i++) { Y0Ram[i]=Y1Ram[i]=Y2Ram[i]=Y3Ram[i]=0。 } } /* LCD_set_XY: 設(shè)置 LCD 坐標(biāo)函數(shù) 輸入?yún)?shù): X: 0- 83 Y: 0- 5 */ void Lcd5110SetXY(uchar X,Y) { Lcd5110WriteCMD(0x40 | Y )。// 垂直方向 05 Lcd5110WriteCMD(0x80 | X )。// 水平方向 083 } /* LCD_clear: LCD 清屏函數(shù) */ void Lcd5110Clear(void) { unsigned char t。 unsigned char k。 Lcd5110SetXY(0,0)。 for (t=0。t6。t++) { for (k=0。k84。k++) Lcd5110WriteDta(0x00)。 } 20 } LCD_write_shu 是 顯示 8(寬) *16(高)點(diǎn)陣列數(shù)字字母符號(hào)等半角類, Addr 是寫入地址, Row 是第幾行 對(duì)于 6*8 點(diǎn)陣 實(shí)際 5*7 留有空邊 ,字高 8 個(gè)點(diǎn) , 屏幕一共 6行 豎著 48 個(gè)點(diǎn), dd 是代表字符。 void Lcd5110Write6x8AtAddr(uchar row, addr, dat) { unsigned char i。 dat=dat32。 //ascii 轉(zhuǎn)換為字庫偏移地址 Lcd5110SetXY(addr, row1)。// 某行的某個(gè)地址 行 16 地址 083 for (i=0。 i6。i++) { Lcd5110WriteDta(Ascii6x8[dat*6+i])。 } } void Lcd5110show6x8AscWithNoAddr(uchar dat)//顯示一個(gè) 6*8 點(diǎn)陣 { uchar i。 dat=32。 for (i=0。 i6。i++) Lcd5110WriteDta(Ascii6x8[dat*6+i])。 } void Lcd5110String6x8(uchar row , addr, uchar *p) { Lcd5110SetXY(addr, row)。// 列,頁 while (*p!=39。\039。) { Lcd5110show6x8AscWithNoAddr(*p++)。 } } void Lcd5110show8x16AscAtAddr(uchar row,addr, dat) { uchar i 。 dat=32。 Lcd5110SetXY(addr,row)。 for (i=0。 i8。i++) Lcd5110WriteDta
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1