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

正文內(nèi)容

基于單片機的萬年歷設(shè)計畢業(yè)論文(編輯修改稿)

2024-08-23 06:02 本頁面
 

【文章內(nèi)容簡介】 ,高電平選擇數(shù)據(jù),低電平選擇命令;(e)5腳(R/W):讀、寫選擇端(H/L),高電平選擇讀數(shù)據(jù),低電平選擇寫數(shù)據(jù);(f)6腳(E)信號使能端;(g)714腳(D0D7):雙向分時數(shù)據(jù)、命令引腳;(h)15腳(BLA):液晶顯示驅(qū)動電壓正壓信號(為了防止液晶屏過壓損毀常外接10歐左右的限流電阻);(i)16腳(BLK):液晶顯示驅(qū)動電壓負壓信號; 1602液晶工作時序(d),(e),(f); (d) (e) (f)下面詳細分析:由于本設(shè)計僅僅用于顯示,因此對于該器件讀操作不作詳細介紹,(e)可知:(a)寫數(shù)據(jù):(e)圖知,當RS為高電平RW為低電平時,為向液晶內(nèi)寫數(shù)據(jù),然后當拉高E時,將數(shù)據(jù)寫入液晶;(b)寫命令:(e)圖可知,當RS為低電平RW為低電平時,為向液晶內(nèi)些命令,當拉高E時,將命令寫入液晶;(a)顯示模式:(b)顯示開關(guān)及光標設(shè)置:(c)數(shù)據(jù)指針設(shè)置:(d)其它設(shè)置; 1602液晶主要程序分析(參照讀、寫指令時序,因為我們不讀取液晶,所以初始化中將WR始終拉低)void write_(uchar )∕∕該程序的作用是向1602液晶內(nèi)寫指令{ lcdrs=0。∕∕rs拉低時表明向1602內(nèi)寫指令 delay(5)。 ∕∕延時5ms P0=。 ∕∕將指令放到數(shù)據(jù)線上 delay(5)。 ∕∕延時5ms lcden=1。 ∕∕將en拉高 delay(5)。 ∕∕延時5ms lcden=0。 ∕∕將en拉低后指令寫入}void write_data(uchar date)∕∕該程序的作用是向1602液晶內(nèi)寫數(shù)據(jù){ lcdrs=1。 ∕∕rs拉低時表明向1602內(nèi)寫數(shù)據(jù) delay(5)。 ∕∕延時5ms P0=date。 ∕∕將數(shù)據(jù)放到數(shù)據(jù)線上 delay(5)。 ∕∕延時5ms lcden=1。 將en拉高 delay(5)。 ∕∕延時5ms lcden=0。 ∕∕將en拉低后數(shù)據(jù)寫入} 紅外發(fā)射系統(tǒng)主要采用一些特定的編碼芯片,將不同的按鍵進行編碼,然后經(jīng)38kHz的載頻進行二次調(diào)制以提高發(fā)射效率,達到降低電源功耗的目的然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射(a)典型的LM7461M芯片構(gòu)成的紅外發(fā)射系統(tǒng): (a)由于本設(shè)計不涉及紅外發(fā)射系統(tǒng)的原理分析,因此在此不作詳細分析,(b): (b)該波形一共有三部分構(gòu)成分別由引導碼、用戶碼、鍵控碼組成,接著就是8位用戶碼和8位用戶反碼,8位鍵控碼和8位鍵控反碼;紅外接收過程實際就是發(fā)射的逆過程,下面詳細分析(a)紅外一體化接收頭,(c),(d); (c) (d)圖中3腳為供電端();2腳接地端;1腳為數(shù)據(jù)端口,為了提高靈敏度,;(b)(e) (e)由接收到的波形圖可以看出,它和發(fā)射波形在高低電平上剛好相反,任然由引導碼、用戶碼、鍵控碼組成,因此可通過單片機對其進行解碼操作!(e)解碼操作:解碼的關(guān)鍵是如何識別“0”和“1”(f),可以利用單片機的定時計數(shù)器來對紅外碼進行時間的監(jiān)控。 (f)從位的定義我們可以發(fā)現(xiàn)“0”、“1”,不同的是高電平的寬度不同,“0”,“1”,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。,開始延時,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,,否則如果該位為“0”,讀到的已是下一位的高電平,因此?。?)/2=。uint low_ir_time()//此程序的作用是檢測低電平的時間{ TH0=0。//定時器/計數(shù)器裝初值 TL0=0。//定時器/計數(shù)器裝初值 TR0=1。//啟動定時器/計數(shù)器 while(!ir)。//等待 TR0=0。//關(guān)閉定時器/計數(shù)器 return TH0*256+TL0。//返回低電平持續(xù)時間}uint high_ir_time()//此程序的作用是檢測高電平的時間{ TH0=0。 //定時器/計數(shù)器裝初值 TL0=0。 //定時器/計數(shù)器裝初值 TR0=1。 //啟動定時器/計數(shù)器 while(ir)。 //等待 TR0=0。 //關(guān)閉定時器/計數(shù)器 return TH0*256+TL0。 //返回高電平持續(xù)時間}while(1) { restart: while(ir)。//等待低電平 temp=low_ir_time()。 if((temp8500)||(temp9500)) continue。//如果低電平持續(xù)時間小于8500,或者大于9500,那么跳過未執(zhí)行的語句,轉(zhuǎn)到初始條件判斷 temp=high_ir_time()。 if((temp4000)||(temp5000)) continue。//同上 for(i=0。i4。i++)//讀4個8位的碼 { for(j=0。j8。j++)//讀8位的碼 { temp=low_ir_time()。 if((temp200)||(temp800)) goto restart。//,如果是就繼續(xù); temp=high_ir_time()。 if((temp200)||(temp2000)) goto restart。//,如果是就繼續(xù); aa[i]=aa[i]1。//右移 if(temp1120)//判斷是不是1,如果是1就繼續(xù),否則跳過,默認為0; { aa[i]=aa[i]|0x80。//最高位寫1 } } } if(aa[2]=~aa[3])//判斷鍵控碼和鍵控反碼是不是相同 { display_IR_CODE()。 } } DS18B20溫度傳感器電路設(shè)計: DS18B20溫度傳感器概述溫度傳感器的種類眾多,在應用與高精度、高可靠性的場合時美國DALLAS(達拉斯)公司生產(chǎn)的DS18B20溫度傳感器當仁不讓。它擁有超小的體積,超低的硬件開消,抗干擾能力強,精度高,附加功能強等優(yōu)點,使得DS18B20備受歡迎。對于我們普通的電子愛好者來說,DS18B20的優(yōu)勢更是我們學習單片機技術(shù)和開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇,本設(shè)計即采用由美國達拉公司生產(chǎn)的DS18B20溫度傳感器。 DS18B20溫度傳感器的主要特性全數(shù)字溫度轉(zhuǎn)換及輸出,先進的單總線數(shù)據(jù)通信,最高12位分辨率,精度可達177。,12位分辨率時的最大工作周期為750毫秒,檢測溫度范圍為–55176。C ~+125176。C (–67176。F ~+257176。F),內(nèi)置EEPROM,限溫報警功能,64位光刻ROM,內(nèi)置產(chǎn)品序列號方便多機掛接,多樣封裝形式適應不同硬件系統(tǒng)。 DS18B20溫度傳感器基本原理(a),(b) (a) (b)各引腳功能:(a)1腳(GND):參考電壓為0V;(b)2腳(DQ):單總線分時復用數(shù)據(jù)端;(c)3腳(VDD):溫度傳感器的電源供電端(); DS18B20溫度傳感器配置寄存器該寄存器為DS18B20提供分辨率設(shè)置,對R0、R1不同配置可以為DS18B20分配不同的分辨率,如下表: DS18B20溫度傳感器暫存器中溫度數(shù)值的存儲形式在DS18B20中用兩個字節(jié)的空間來存儲數(shù)據(jù)(LSB用來存儲低8位,MSB用來存儲高8位),如下表所示:分析:(a)DS18B20中LSB低4位為溫度值的小數(shù)位,高4位為溫度值的整數(shù)位;在MSB中高5位為符號位,當溫度值大于或等于0℃時高5位均為0,當溫度值小于0℃時,高5位均為1,因此,可以通過判斷S位來判斷溫度處在零下還是零上,MSB中低3位為溫度值的整數(shù)位;(b)DS18B20溫度數(shù)值處理方式:LSB與MSB一共16位,因此,此時的分辨率為1∕℃例如:此時寄存器內(nèi)部存儲的數(shù)據(jù)為MSB+LSB(0000000010100010)轉(zhuǎn)化為十進制數(shù)為162, ℃;但是如果表示負溫度時, 那么寄存器內(nèi)部(S=0)的時數(shù)據(jù)為MSB+LSB(1111111001101111),按位去反(0000000110010000)轉(zhuǎn)化為十進制數(shù)為401, ℃。因此,可以根據(jù)S位來判斷溫度的正負; DS18B20溫度傳感器工作時序由于DS18B20是單總線分時復用芯片,因此在操作時要遵守嚴格的工作時序,(a),(b),(c) (a) (b) (c) 控制器對DS18B20操作流程(要想操作DS18B20,必須要做到三步:復位、發(fā)送ROM指令、發(fā)送RAM指令)(a)復位:首先我們必須對DS18B20芯片進行復位,(a),復位就是由控制器(單片機)給DS18B20單總線由高電平拉低至480uS960uS的低電平信號,然后由MCU釋放總線,當18B20接到此復位信號后則會在1560uS后回發(fā)一個芯片的存在脈沖(即由DS18B20將總線拉低60240uS),當控制器接收到存在脈沖后表明復位成功,否則放棄此次復位操作,延時一段時間,準備下一步操作;(b)向DS18B20內(nèi)部寫“0”或“1”:(b),MCU首先將單總線由高電平拉至低電平,并保持超過1uS后,如果寫“0”,就繼續(xù)拉低總線,保持至少60uS(但是不要超過120uS)的時間,DS18B20會在從總線一開始被拉低的1560uS的時間內(nèi)對總線進行采樣,如果檢測到總線為低電平就表明寫“0”;當MCU首先將總線由高電平拉至低電平,并保持1uS后,如果寫“1”,控制器就將總線拉高(即釋放總線),保持至少60uS(但是不要超過120uS)的時間,DS18B20會在從總線一開始被拉低的1560uS的時間內(nèi)對總線進行采樣,如果檢測到總線為高電平就表明寫“1”;注意,如上圖(d)中在寫0或1時之間至少要保持1uS的時間,不可連續(xù)操作;(c)從DS18B20內(nèi)部讀“0”或“1”:(c),當控制器從DS18B20內(nèi)部讀0或1時,控制器首先將總線由高電平拉至低電平,并保持超過1uS后,將總線拉低(即釋放總線),DS18B20會對這一操作立即作出反應,迅速將要輸出的數(shù)據(jù)放到總線上,控制器會在下降沿開始的115uS內(nèi)對總線進行采樣,如果MCU檢測到總線為低電平,則表明DS18B20輸出了0,如國檢測到總線為高電平,則表明DS18B20輸出了1;(d)控制器發(fā)布ROM指令:雙方達成協(xié)議之后接下來將要進行通信了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。ROM指令在下文有詳細的介紹。(e)控制器發(fā)送存儲器RAM操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復制到RAM、工作方式切換。 DS18B20芯片內(nèi)部ROM操作指令(a)Read ROM(讀ROM)[33H] (方括號中的為16進制的命令字);這個命令允許總線控制器讀到DS18B20的64位ROM。只有當總線上只存在一個DS18B20的時候才可以使用此指令,如果掛接不只一個,當通信時將會發(fā)生數(shù)據(jù)沖突。(b)Match ROM(指定匹配芯片)[55H];這個指令后面緊跟著由控制器發(fā)出了64位序列號,當總線上有多只DS18B20時,只有與控制發(fā)出的序列號相同芯片才可以做出反應,其它芯片將等待下一次復位。這條指令適應單芯片和多芯片掛接(本設(shè)計不涉及)。(c)Skip ROM(跳躍ROM指令)[CCH];這條指令使MCU不對ROM編碼做出反應,在單總線的情況之下,為了節(jié)省時間可以選用此指令(即總線上只有一個DS18B20時),如果在多芯片掛接時使用此指令將會出現(xiàn)數(shù)據(jù)沖突,導致錯誤出現(xiàn)。(d)search ROM(搜索芯片)[F0H];芯片初始化后,搜索指令允許總線上掛接多芯片時用排除法識別所有器件的64位ROM。(e)Alarm Search(報警芯片搜索)[ECH];在多芯片掛接的情況下,報警芯片搜索指令只對附合溫度高于TH或小于TL報警條件的芯片做出反應。只要芯片不掉電,報警狀態(tài)將被保持,直到再一次測得溫度值達不到報警條件為止。 DS18B20溫度傳感器芯片內(nèi)部存儲器RAM操作指令(a)Write Scratchpad (向RAM中寫數(shù)據(jù))[4EH];這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個字節(jié)的數(shù)據(jù)將會被存到地址2(報警RAM之TH)和地址3(報警RAM之TL)。寫入過程中可以用復位信號中止寫入。(b)Read Scratchpad (從RAM中讀數(shù)據(jù))[BEH];此指令將從RAM中讀數(shù)據(jù),讀地址從地址0開始,一直可以讀到地址9,完成整個RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復位信號中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時間。(c)Copy Scratchpad (將RAM數(shù)據(jù)復制到EEPROM中)[48H];此指令將RAM中數(shù)據(jù)存
點擊復制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1