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

正文內容

基于avr單片機物聯(lián)網(wǎng)系統(tǒng)設計畢業(yè)設計-閱讀頁

2025-07-09 15:38本頁面
  

【正文】 圖315 62256管腳圖 本章小結 上述元器件為設計中的主要元件,有核心控制器、設備驅動元件以及傳感器等等,原件根據(jù)設備的運作條件選取,皆符合設備的運轉要求,本章中注明了元件的各參數(shù),元件管腳圖等等,為電路設計做了良好的鋪墊。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容(通常取30pF)。電路如圖41所示。它通過RST引腳送入單片機,與單片機的第9引腳連接,進行復位操作。復位方式有兩種:手動和加電復位。它是系統(tǒng)的原始復位方式,發(fā)生在開機加電時,是系統(tǒng)自動完成的。而手動復位也應通過專用電路實現(xiàn)。在調試或運行程序時,若遇到死機、死循環(huán)等情況,手動復位是擺脫這種局面的最常用的方法。在實際系統(tǒng)中,總是把加電復位電路和手動復位電路結合在一起,形成一個既能加電復位又能手動復位的公用復位電路。圖42 復位電路 光強采集及AD轉換電路光強采集電路由光敏電阻和一個1K電阻組成,然后取光敏電阻兩端電壓接A/D轉換器ADC0804。在本設計中Vref/2接一個010K電位器作為A/D轉換器ADC0804調節(jié)輸入電壓,從而一定程度上調整測量精確度。圖43 光強采集及AD轉換電路 串口通信電路采集的光強信號參數(shù)經(jīng)A/D轉換后,在單片機中進行處理。MAX232的13腳連接PC機串口座的第3腳TXD端,PC機發(fā)送數(shù)據(jù)。圖44 串口通信電路 步進電機驅動電路 在Proteus中,選擇motorstepper,這是四相步進電機,六個端子,其中兩個公共端與ULN2003A的COM端相連接,并且一同連接到+5V電源上,ULN2003的ABCD四相與P2口相連接。圖45 步進電機驅動電路 液晶驅動電路 液晶顯示電路主要有YJD1602A1組成,其中D0D7連接至單片機的P1口,,,具體的液晶驅動電路如圖46所示。其紅外電路如圖47所示。 智能終端系統(tǒng)總圖如圖48所示。RTL8019AS地址總線SA0~SA4與74HC573鎖存后的51單片機地址總線低5位A0~A4相連,SA5~SA7接地,SA8~SA9接高電平,SAl0~SAl9接地, RTL8019AS的I/O地址為300H。因此,系統(tǒng)的數(shù)據(jù)總線由PA口提供,標號為D0D7,系統(tǒng)的地址總線由PC口和鎖存器的輸出O007提供,標號為A0A15。由于IRQS0~IRQS2都處于懸空狀態(tài),決定了INT0(IRQ2/9)中斷輸出引腳,中斷輸出引腳與IRQS0~IRQS2的對應關系如表41所示。JP連接到電源電壓VCC,選擇跳線方式。 電路如圖49所示。經(jīng)過proteus仿真后運行良好,為下一步的電路焊接做好基礎。圖51 “0”、“1”組合波形 用Cool Edit Pro 因為本身條件有限,沒有用示波器對紅外一體接收頭輸出的波形進行采集和判別。將平時不用的廢舊耳機的功放部分剪掉,露出部分銅線。另外一頭直接插在麥克的輸入端。圖52 紅外遙控碼波形 得到紅外遙控碼波形之后,需要對其進行解碼,也就是“0”,“1”的判別,具體的判別方式如圖53。在編寫紅外解碼程序可以參考波形下方的時間軸來確定波形的跳變的時間,可以更方便的進行程序的編寫。 count++。 //紅外波形去抖動 TR0=1。 //提取中斷時間間隔時長 TH0=0。 if((TcImin)amp。(TcImax)) //如果時間在8ms到14ms之間,則為前導碼 { n=0。 //將標志位置1 return。 if(sign==1) //找到啟始碼 { Tc=Tc+20。amp。 //將取到的0或1按位存放在數(shù)組中 n++。amp。 //將取到的0或1按位存放在數(shù)組中 n++。 sign=0。 //確定收到正確的碼值 } else IrOK=0。一般情況下,啟動A/D轉換前應該復位這個信號,以等待新的轉換完成后ADC0804發(fā)出新的信號,這樣才可以讀到新的轉換結果。 ADC0804的A/D轉換器在滿足一定條件時開始一個轉換過程,這個條件是實現(xiàn)片選(CS=0)的前提下,引腳上出現(xiàn)一個上升沿。 在A/D轉換結束以后,ADC0804的引腳將給出一個低脈沖,如果把這個引腳直接連到單片機的外部中斷引腳,這個低脈沖將引起單片機中斷,單片機可以在中斷處理程序中讀取ADC0804的轉換結果。 圖54 ADC0804工作時序void change1(){ CS=0。 //寫信號輸入AD寫入 _nop_()。 CS=1。 //足夠的AD轉換時間if(adval==255) lcd_position=0。amp。 ……if(adval47amp。adval60) lcd_position=16。 //讀取P1口之前先給其寫全1 CS=0。 //AD讀使能 adval=P1。 //關閉讀 CS=0xff 。 //AD寫入 } 串口發(fā)送與接收程序 89C52的串行口雖然是既能實現(xiàn)同步通信,又能實現(xiàn)異步通信的全雙工串行口,但在單片機的串行數(shù)據(jù)通信中,最常用的是異步方式通常寫為UART。接收數(shù)據(jù)采用中斷方式接收,同樣也是在SBUF接收狀態(tài)下從RXD引腳接收到數(shù)據(jù)。 串口發(fā)送程序如下:for(fs=0。fs++){ES=0。 //將數(shù)組中的元素送入SBUF中while(!TI)。 //軟件清0 ES=1。 //接收中斷標志位清零RecDat=SBUF。 //清發(fā)送中斷 }} 步進電機驅動程序 該電機為四相電機,通電方式為八拍方式(AABBBCCCDDDAA。這樣的通電方式使得電機逆時針旋轉。void step_motor(unsigned int step){ unsigned int a,b。b0。a8。 //按照八拍通電方式將各繞組通電 delay_bujin()。 圖55 RAM緩沖區(qū) 2指令說明 1)初始化設置 設置顯示模式如表52。表53 顯示光標及開/關設置指令碼功能00001DCBD=1顯示開; D=0 顯示關C=1光標開; C=0光標關B=1閃爍光標; B=0光標不閃爍000001NSN=1光標加一,地址指針在讀寫1個字符后加1N=0光標減一,地址指針在讀寫1個字符后減1S=1屏幕移動,光標不移,整屏左移(N=1)或右移(N=0)S=0 當寫1個字符時,整屏不移動 2)數(shù)據(jù)控制 通過數(shù)據(jù)地址的指針,可以訪問內部RAM。 表54 數(shù)據(jù)地址指針設置指令碼功能80H+地址碼(027H,40H67H)設置數(shù)據(jù)地址指針其它設置如表是55。 //選擇寫指令P0=。 lcden=1。 lcden=0。 //選擇寫數(shù)據(jù)P0=date。lcden=1。lcden=0。 //選擇向液晶寫入lcden=0。 //設置16X2顯示,5X7點陣,8位數(shù)據(jù)接口write_(0x0e)。 //當讀或寫一個字符后地址指針加一,且光標加一write_(0x01)。 //設置數(shù)據(jù)地址指針} DS18B20溫度傳感器驅動程序 DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉換時的延時時間由2s 減為750ms。計數(shù)器1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,重新轉入計數(shù)器1的預置值,于是,計數(shù)器1對低溫系數(shù)晶振產生的脈沖信號進行重新計數(shù),當計數(shù)器2計到0時,溫度寄存器停止數(shù)值累加,此時所測溫度為寄存器中的數(shù)值。并且遵循通信DS18B20的通信協(xié)議,該協(xié)議定義了:讀時序、寫時序、初始化時序。DS18B20的復位時序如圖56:圖56 DS18B20復位時序圖DS18B20具有讀1時序和讀0時序。這一個過程至少需要60us才能完成。當要寫0時序時,拉低總線60us,保證DS18B20在15us到45us之間能夠準確的采樣“0”電平,寫1時,總線拉低后,在15us之內放開。ROM指令表和RAM指令表如表511和表512所示。 復制暫存器 48H 將暫存器的內容拷貝到DS18B20的E2中。 讀供電方式 0B4H 對于在此命令發(fā)送至DS18B20之后發(fā)出的第一個讀數(shù)據(jù)時間片,器件都會給出其電源方式的信號:0=寄生電源供電,1=外部電源供電。 DS=0。 while(i0)i。 i=4。}bit tmpreadbit(void) //讀位{ uint i。 DS=0。 //單總線拉低15微妙之內釋放總線,讓DS18B20把數(shù)據(jù)傳到單總線上 DS=1。i++。 i=8。 return (dat)。 dat=0。i=8。 dat=(j7)|(dat1)。}void tmpwritebyte(uchar dat) //寫數(shù)據(jù)到DS18B20{ uint i。 bit testb。j=8。0x01。 if(testb) //寫“1” { DS=0。i++。 //釋放單總線 i=8。 } else { DS=0。while(i0)i。 //釋放總線 i++。 } }}void tmpchange(void) { dsreset()。 tmpwritebyte(0xcc)。 //啟動溫度轉換}uint tmp() { float tt。 dsreset()。 tmpwritebyte(0xcc)。 //發(fā)出讀溫度命令 a=tmpread()。 temp=b。 temp=temp|a。 temp=tt*10+。}void display(uint temp) //溫度送液晶顯示器顯示{ uint temp_ge,temp_shi,temp_fen。 fasong=temp/10。 temp_ge=temp%100/10?!瓆 單片機與Kingview 單片機與組態(tài)王通信協(xié)議格式:讀寫格式如表513。表514 讀命令格式字頭設備地址標志數(shù)據(jù)地址數(shù)據(jù)字節(jié)個數(shù)異或CR 應答:若正常,則應答格式如表515。表517 上位機發(fā)送寫命令格式字頭設備地址標志數(shù)據(jù)地址數(shù)據(jù)字節(jié)數(shù)數(shù)據(jù)…異或CR 若正常,下位機應答格式如表518。表519 不正常情況下下位機應答格式字頭設備地址**異或CR程序如下:if(RecDat==HEAD) //如果檢測到字頭,則開始接收{ Count1=0。} else{ if(RecDat==0x0d) //檢測到結束標志,表明接收結束 { RecOk=1。 //將接收到的數(shù)據(jù)放入數(shù)組中Count1++。 //各部分初始化程序init_hongwai_uart()。……while(1){ …… if(mode==1){ …… //步進電機轉動相應的轉角 }if(mode==2) //溫度顯示{if(changemode==0){write_(0x0
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1