版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、北京交通大學(xué)微機原理與接口技術(shù)綜合實踐說明書摘 要利用ds18b20溫度傳感器與89c51相連測量室內(nèi)溫度并且在六位led顯示器的中間兩位顯示出來。led顯示器的前兩個顯示上限溫度,中間兩個顯示當(dāng)前溫度測量值。最后兩位顯示下限溫度。利用按鍵設(shè)置溫度的上限與下限,并在led顯示器上動態(tài)顯示。系統(tǒng)共有四個按鍵,前兩個按鍵實現(xiàn)溫度上限的調(diào)整,后兩個實現(xiàn)溫度下限的調(diào)整。當(dāng)溫度低于下限(15)值時二極管發(fā)光,當(dāng)室溫高于上限(40)時蜂鳴器報警,發(fā)出有規(guī)律的聲音。通過按鍵調(diào)節(jié)溫度上下限,使當(dāng)前外界溫度的范圍包含在溫度傳感器的上下限內(nèi),從而使得蜂鳴器關(guān)閉和二極管光滅。關(guān)鍵詞:ds18b20數(shù)字溫度傳感器 8
2、9c51 led共陰極顯示器 程序匯編 調(diào)試目 錄一、ds18b206二、89c5117三、815519四、實驗設(shè)備及原理23五、設(shè)計思路及程序流程圖28六、上機調(diào)試過程37七、心得體會38八、附件40 參考文獻47正 文一、ds18b20溫度傳感器 ds1820 單線數(shù)字溫度計特性 獨特的單線接口僅需一個端口引腳進行通訊 簡單的多點分布應(yīng)用 無需外部器件 可通過數(shù)據(jù)線供電 零待機功耗 測溫范圍-55+125,以 0.5遞增 溫度以 9 位數(shù)字量讀出 溫度數(shù)字量轉(zhuǎn)換時間 200ms(典型值) 用戶可定義的非易失性溫度報警設(shè)置 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件 應(yīng)用包
3、括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng) 引腳說明 16腳ssoppr35符號說明91gnd接地82dq數(shù)據(jù)輸入/輸出腳。對于單線操作:漏極開路(見“寄生電源”節(jié))73vdd可選的 vdd 引腳。具體接法見“寄生電源”節(jié)ds18b20(16 腳 ssop):所有上表中未提及的引腳都無連接。 概覽圖1的方框圖示出了ds1820的主要部件。ds18b20 有三個主要數(shù)字部件:1)64 位激光 rom,2)溫度傳感器,3)非易失性溫度報警觸發(fā)器th和tl。器件用如下方式從單線通訊線上汲取能量:在信號線處于高電平期間把能量儲存在內(nèi)部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高
4、電平到來再給寄生電源(電容)充電。ds18b20 也可用外部 5v 電源供電。ds18b20 依靠一個單線端口通訊。在單線端口條件下,必須先建立 rom 操作協(xié)議,才能進行存儲器和控制操作。因此,控制器必須首先提供下面 5 個 rom 操作命令之一:1)讀 rom,2)匹配 rom,3)搜索 rom,4)跳過 rom,5)報警搜索。這些命令對每個器件的激光 rom 部分進行操作,在單線總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條 rom 操作序列后,即可進行存儲器和控制操作,控制器可以提供6條存儲器和控制操作指令中的任一條。一條
5、控制操作命令指示 ds18b20 完成一次溫度測量。測量結(jié)果放在 ds18b20 的暫存器里,用一條讀暫存器內(nèi)容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。溫度報警觸發(fā)器 th 和 tl 各由一個 eeprom 字節(jié)構(gòu)成。如果沒有對 ds18b20 使用報警搜索命令,這些寄存器可以做為一般用途的用戶存儲器使用。可以用一條存儲器操作命令對 th 和 tl 進行寫入,對這些寄存器的讀出需要通過暫存器。所有數(shù)據(jù)都是以最低有效位在前的方式進行讀寫。 寄生電源 寄生電源的方框圖見圖 1。這個電路會在 i/o 或 vdd 引腳處于高電平時“偷”能量。當(dāng)有特定的時間和電壓需求時(見節(jié)標(biāo)題“單線總線系統(tǒng)”),i/
6、o 要提供足夠的能量。寄生電源有兩個好處:1)進行遠(yuǎn)距離測溫時,無需本地電源,2)可以在沒有常規(guī)電源的條件下讀 rom。要想使 ds18b20 能夠進行精確的溫度轉(zhuǎn)換,i/o 線必須在轉(zhuǎn)換期間保證供電。由于 ds18b20 的工作電流達到 1ma,所以僅靠 5k 上拉電阻提供電源是不行的,當(dāng)幾只 ds18b20 掛在同一根 i/o線上并同時想進行溫度轉(zhuǎn)換時,這個問題變得更加尖銳。 有兩種方法能夠使 ds18b20 在動態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng)。第一種方法,當(dāng)進行溫度轉(zhuǎn)換或拷貝到存儲器操作時,給 i/o 線提供一個強上拉。用 mosfet 把 i/o 線直接拉到電源上就可以實現(xiàn),見圖 2。
7、在發(fā)出任何涉及拷貝到存儲器或啟動溫度轉(zhuǎn)換的協(xié)議之后,必須在最多 10s 之內(nèi)把 i/o 線轉(zhuǎn)換到強上拉。使用寄生電源方式時,vdd 引腳必須接地。另一種給 ds18b20 供電的方法是從 vdd 引腳接入一個外部電源,見圖 3。這樣做的好處是 i/o線上不需要加強上拉,而且總線控制器不用在溫度轉(zhuǎn)換期間總保持高電平。這樣在轉(zhuǎn)換期間可以允許在單線總線上進行其他數(shù)據(jù)往來。另外,在單線總線上可以掛任意多片 ds18b20,而且如果它們都使用外部電源的話,就可以先發(fā)一個 skip rom 命令,再接一個 convert t 命令,讓它們同時進行溫度轉(zhuǎn)換。注意當(dāng)加上外部電源時,gnd 引腳不能懸空。溫度高
8、于 100時,不推薦使用寄生電源,因為 ds18b20 在這種溫度下表現(xiàn)出的漏電流比較大,通訊可能無法進行。在類似這種溫度的情況下,強烈推薦使用 ds18b20 的 vdd 引腳。 對于總線控制器不知道總線上的 ds18b20 是用寄生電源還是用外部電源的情況,ds18b20 預(yù)備了一種信號指示電源的使用意圖??偩€控制器發(fā)出一個 skip rom 協(xié)議,然后發(fā)出讀電源命令,這條命令發(fā)出后,控制器發(fā)出讀時間隙,如果是寄生電源,ds18b20 在單線總線上發(fā)回“0”,如果是從 vdd 供電,則發(fā)回“1”,這樣總線控制器就能夠決定總線上是否有 ds18b20 需要強上拉。如果控制器接收到一個“0”,
9、它就知道必須在溫度轉(zhuǎn)換期間給 i/o 線提供強上拉。這個命令協(xié)議詳見“存儲器操作命令”節(jié)。 測溫操作 ds18b20 通過一種片上溫度測量技術(shù)來測量溫度。圖 4 示出了溫度測量電路的方框圖。 ds18b20 是這樣測溫的:用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進行計數(shù)來得到溫度值。計數(shù)器被預(yù)置到對應(yīng)于-55的一個值。如果計數(shù)器在門周期結(jié)束前到達 0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。 同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數(shù)器又開始
10、計數(shù)直到 0,如果門周期仍未結(jié)束,將重復(fù)這一過程。 斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨力。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值。 溫度/數(shù)據(jù)關(guān)系(表 1)溫度數(shù)據(jù)輸出(二進制)數(shù)據(jù)輸出(十六進制)+12500000000 1111101000fa+2500000000 001100100032+1/200000000 000000010001000000000 000000000000-1/211111111 11111111ffff-2511111111 11
11、001110ffce-5511111111 10010010ff92ds18b20 內(nèi)部對此計算的結(jié)果可提供 0.5的分辨力。溫度以 16bit 帶符號位擴展的二進制補碼形式讀出,表 1 給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行方式傳輸。ds18b20 測溫范圍-55+125,以 0.5遞增。如用于華氏溫度,必須要用一個轉(zhuǎn)換因子查找表。 報警搜索操作 ds18b20 完成一次溫度轉(zhuǎn)換后,就拿溫度值和存儲在th和tl中的值進行比較。因為這些寄存器是8位的,所以 0.5位被忽略不計。th或tl的最高有效位直接對應(yīng)16位溫度寄存器的符號位。如果測得的溫度高于th或低于tl,器件內(nèi)部就會置
12、位一個報警標(biāo)識。每進行一次測溫就對這個標(biāo)識進行一次更新。當(dāng)報警標(biāo)識置位時,ds1820會對報警搜索命令有反應(yīng)。這樣就允許許多ds18b20并聯(lián)在一起同時測溫,如果某個地方的溫度超過了限定值,報警的器件就會被立即識別出來并讀取,而不用讀未報警的器件。64位(激)光刻rom 每只ds18b20都有一個唯一的長達64位的編碼。最前面8位是單線系列編碼(ds1820 的編碼是 9h)。下面48位是一個唯一的序列號。最后8位是以上56位的crc碼。(見圖 5)64位rom和rom操作控制區(qū)允許ds18b20作為單線制器件并按照詳述于“單線總線系統(tǒng)”一節(jié)的單線協(xié)議工作。只有建立了rom操作協(xié)議,才能對ds
13、1820進行控制操作。這個協(xié)議用rom操作協(xié)議流程圖來描述。單線總線控制器必須得天獨厚提供5條rom操作命令其中之一:1)read rom,2)match rom,3)search rom,4)skip rom,5)alarm search。成功進行一次rom操作后,就可以對ds18b20進行特定的操作,總線控制器可以發(fā)出六個存儲器和控制操作命令中的任一條。 crc 發(fā)生器 ds1820 中有 8 位 crc 存儲在 64 位 rom 的最高有效字節(jié)中??偩€控制器可以用 64 位 rom 中的前 56 位計算出一個 crc 值,再用這個和存儲在 ds1820 中的值進行比較,以確定 rom 數(shù)
14、據(jù)是否被總線控制器接收無誤。crc 計算等式如下: crc=+ds1820 同樣用上面的公式產(chǎn)生一個 8 位 crc 值,把這個值提供給總線控制器用來校驗傳輸?shù)臄?shù)據(jù)。在任何使用 crc 進行數(shù)據(jù)傳輸校驗的情況下,總線控制器必須用上面的公式計算出一個 crc 值,和存儲在 ds1820 的 64 位 rom 中的值或 ds1820 內(nèi)部計算出的 8 位 crc 值(當(dāng)讀暫存器時,做為第 9 個字節(jié)讀出來)進行比較。crc 值的比較以及是否進行下一步操作完全由總線控制器決定。當(dāng)在 ds1820中存儲的或由其計算的 crc值和總線控制器計算的值不相符時,ds1820 內(nèi)部并沒有一個能阻止命令序列進行
15、的電路。 單線crc可以用一個由移位寄存器和 xor 門構(gòu)成的多項式發(fā)生器來產(chǎn)生,見圖 7。 移位寄存器的各位都被初始化為 0。然后從系列編號的最低有效位開始,一次一位移入寄存器。8位系列編碼都進入以后,序列號再進入,48 位序列號都進入后,移位寄存器中就存儲了crc值。移入8位crc會使移位寄存器復(fù)0。存儲器ds1820的存儲器結(jié)構(gòu)示于圖 8。存儲器由一個暫存 ram 和一個存儲高低溫報警觸發(fā)值 th 和tl 的非易失性電可擦除()ram 組成。當(dāng)在單線總線上通訊時,暫存器幫助確保數(shù)據(jù)的完整性。數(shù)據(jù)先被寫入暫存器,這里的數(shù)據(jù)可被讀回。數(shù)據(jù)經(jīng)過校驗后,用一個拷貝暫存器命令會把數(shù)據(jù)傳到非易性()
16、ram 中。這一過程確保更改存儲器時數(shù)據(jù)的完整性。暫存器的結(jié)構(gòu)為 8 個字節(jié)的存儲器。頭兩個字節(jié)包含測得的溫度信息。第三和第四字節(jié)是 th和 tl 的拷貝,是易失性的,每次上電復(fù)位時被刷新。下面兩個字節(jié)沒有使用,但是在讀回數(shù)據(jù)時,它們?nèi)勘憩F(xiàn)為邏輯 1。第七和第八字節(jié)是計數(shù)寄存器,它們可以被用來獲得更高的溫度分辨力(見“測溫操作”一節(jié))。還有一個第九字節(jié),可以用讀暫存器命令讀出。這個字節(jié)是以上八個字節(jié)的 crc 碼。crc 的執(zhí)行方式如第二個標(biāo)題“crc 發(fā)生器”所述。 單線總線系統(tǒng) 單線總線系統(tǒng)包括一個總線控制器和一個或多個從機。ds18b20 是從機。關(guān)于這種總線分三個題目討論:硬件結(jié)構(gòu)、
17、執(zhí)行序列和單線信號(信號類型和時序)。 單線總線只有一條定義的信號線;重要的是每一個掛在總線上的器件都能在適當(dāng)?shù)臅r間驅(qū)動它。為此每一個總線上的器件都必須是漏極開路或三態(tài)輸出。ds18b20 的單總線端口(i/o引腳)是漏極開路式的,內(nèi)部等效電路見圖9。一個多點總線由一個單線總線和多個掛于其上的從機構(gòu)成。單線總線需要一個約 5k的上拉電阻。 單線總線的空閑狀態(tài)是高電平。無論任何理由需要暫停某一執(zhí)行過程時,如果還想恢復(fù)執(zhí)行的話,總線必必須停留在空閑狀態(tài)。在恢復(fù)期間,如果單線總線處于非活動(高電平)狀態(tài),位與位間的恢復(fù)時間可以無限長。如果總線停留在低電平超過480s,總線上的所有器件都將被復(fù)位。 通
18、過單線總線端口訪問ds1820的協(xié)議如下: 初始化 rom 操作命令 存儲器操作命令 執(zhí)行/數(shù)據(jù) 初始化 通過單線總線的所有執(zhí)行(處理)都從一個初始化序列開始。初始化序列包括一個由總線控制器發(fā)出的復(fù)位脈沖和跟有其后由從機發(fā)出的存在脈沖。存在脈沖讓總線控制器知道ds1820在總線上且已準(zhǔn)備好操作。rom 操作命令 一旦總線控制器探測到一個存在脈沖,它就可以發(fā)出5個rom命令中的任一個。所有rom操作命令都8位長度。read rom 33h 這個命令允許總線控制器讀到ds18b20的8位系列編碼、唯一的序列號和8位crc碼。只有在總線上存在單只ds1b820的時候才能使用這個命令。如果總線上有不止
19、一個從機,當(dāng)所有從機試圖同時傳送信號時就會發(fā)生數(shù)據(jù)沖突(漏極開路連在一起開成相與的效果)。 match rom 55h 匹配rom命令,后跟64位rom序列,讓總線控制器在多點總線上定位一只特定的 ds18b20。只有和64位rom序列完全匹配的ds1820才能響應(yīng)隨后的存儲器操作命令。所有和64位rom序列不匹配的從機都將等待復(fù)位脈沖。這條命令在總線上有單個或多個器件時都可以使用。 skip rom cch 這條命令允許總線控制器不用提供64位rom編碼就使用存儲器操作命令,在單點總線情況下又節(jié)省時間。如果總線上不止一個從機,在skip rom命令之后跟著發(fā)一條讀命令,由于多個從機同時傳送信
20、號,總線上就會發(fā)生數(shù)據(jù)沖突(漏極開路下拉效果相當(dāng)于相與)。 search rom f0h 當(dāng)一個系統(tǒng)初次啟動時,總線控制器可能并不知道單線總線上有多少器件或它們的64位rom編碼。搜索rom命令允許總線控制器用排除法識別總線上的所有從機的64位編碼。 alarm search ech 這條命令的流程圖和search rom相同。然而,只有在最近一次測溫后遇到符合報警條件的情況,ds18b20才會響應(yīng)這條命令。報警條件定義為溫度高于th或低于tl。只要ds18b20不掉電,報警狀態(tài)將一直保持,直到再一次測得的溫度值達不到報警條件。i/o 信號 ds18b20需要嚴(yán)格的協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議
21、包括幾種單線信號類型:復(fù)位脈沖、存在脈沖、寫0、寫1、讀0和讀1。所有這些信號,除存在脈沖外,都是由總線控制器發(fā)出的。和ds18b20間的任何通訊都需要以初始化序列開始,初始化序列見圖 11。一個復(fù)位脈沖跟著一個存在脈沖表明 ds18b20 已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)(適當(dāng)?shù)膔om命令和存儲器操作命令)。 存儲器操作命令 write scratchpad 4e 這個命令向ds18b20的暫存器中寫入數(shù)據(jù),開始位置在地址2。接下來寫入的兩個字節(jié)將被存到暫存器中的地址位置2和3。可以在任何時刻發(fā)出復(fù)位命令來中止寫入。 read scratchpad beh 這個命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開
22、始,一直進行下去,直到第9(字節(jié)8,crc)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時間發(fā)出復(fù)位命令來中止讀取.copy scratchpad 48h 這條命令把暫存器的內(nèi)容拷貝到ds18b20的存儲器里,即把溫度報警觸發(fā)字節(jié)存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而ds1820又正在忙于把暫存器拷貝到存儲器,ds1820就會輸出一個“0”,如果拷貝結(jié)束的話,ds18b20則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動強上拉并最少保持10ms。 convert t 44h 這條命令啟動一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而
23、后 ds18b20 保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而ds18b20又忙于做時間轉(zhuǎn)換的話,ds18b20將在總線上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動強上拉,并保持500ms。recallb8h 這條命令把報警觸發(fā)器里的值拷回暫存器。這種拷回操作在ds18b20上電時自動執(zhí)行,這樣器件一上電暫存器里馬上就存在有效的數(shù)據(jù)了。若在這條命令發(fā)出之后發(fā)出讀時間隙,器件會輸出溫度轉(zhuǎn)換忙的標(biāo)識:“0”=忙,“1”=完成。read power supply b4h 若把這條命令發(fā)給 ds18b20 后發(fā)出讀時間隙,器件
24、會返回它的電源模式:“0”=寄生電源,“1” =外部電源。讀/寫時間隙 ds1820 的數(shù)據(jù)讀寫是通過時間隙處理位和命令字來確認(rèn)信息交換。寫時間隙當(dāng)主機把數(shù)據(jù)線從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙:寫1時間隙和寫0時間隙。所有寫時間隙必須最少持續(xù)60s,包括兩個寫周期間至少1s的恢復(fù)時間。i/o線電平變低后,ds18b20在一個15s到60s的窗口內(nèi)對i/o 線采樣。如果線上是高電平,就是寫1,如果線上是低電平,就是寫0(見圖 12) 時 序 主機使用時間隙(time slots)來讀寫 dsl8b20 的數(shù)據(jù)位和寫命令字的位 (1)初始化主機總線t0時刻發(fā)送一復(fù)位脈
25、沖(最短為 480us 的低電平信號)接著在t1時刻釋放總線并進入接收狀態(tài)dsl8b20在檢測到總線的上升沿之后等待15-60us接著ds18b20 在t2時刻發(fā)出存在脈沖(低電平持續(xù)60-240us)。reset push b ;保存 b 寄存器 push a ;保存 a 寄存器 mov a,#4 ;設(shè)置循環(huán)次數(shù) clr p1.0 ;發(fā)出復(fù)位脈沖 mov b,#250 ;計數(shù) 250 次 djnz b,$ ;保持低電平 500us setb pl.0 ;釋放總線 mov b,#6 ;設(shè)置時間常數(shù) clr c ;清存在信號標(biāo)志 waitl: jb pl.0,wh ;若總線釋放 跳出循環(huán) djn
26、z b,waitl ;總線低 等待 djnz acc,waitl ;釋放總線等待一段時間 sjmp short wh : mov b,#111 wh1 : orl c,p1.0 djnz b,wh1 ;存在時間等待 short : pop a pop bret(2)寫時間隙 當(dāng)主機總線t0時刻從高拉至低電平時就產(chǎn)生寫時間隙從t0時刻開始15us之內(nèi)應(yīng)將所需寫的位送到總線上dsl820在t0后15-60us間對總線采樣.若低電平寫入的位是0,若高電平寫入的位是1.連續(xù)寫 2 位間的間隙應(yīng)大于1us。寫位子程序(待寫位的內(nèi)容在 c 中) wrbit: push b ;保存 b mov b,#28
27、;設(shè)置時間常數(shù) clr p1.0 ;寫開始 nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us mov pl.0,c ;c 內(nèi)容到總線 wdlt: djnz b,wdlt ;等待 56us pop b setb pl.0 ;釋放總線 ret ;返回 寫字節(jié)子程序(待寫內(nèi)容在 a 中): wrbytb: push b ;保存 b mov b,#08h ;設(shè)置寫位個數(shù) wlop: rrc a ;把寫的位放到 c acall wrbit ;調(diào)寫 1位子程序 djnz b wlop ;8 位全寫完? pop b ret (3)讀時間隙 讀位子程序(讀得的位到 c
28、中) rdbit: push b ;保存 b push a ;保存 a mov b,#23 ;設(shè)置時間常數(shù) clr p1.0 ;讀開始 nop ;1us nop ;1us nop ;1us nop ;1us setb pl.0 ;釋放總線 mov a,p1 ;p1口讀到a mov c,eoh ;p1.0 內(nèi)容 c nop ;1us nop ;1us nop ;1us nop ;1us rddlt:djnz b,rddlt ;等待 46us setb p1.0 pop a pop b ret 讀字節(jié)子程序(讀到內(nèi)容放到 a 中) rdbyte: push b ;保存 b rlop: mov b,
29、#08h ;設(shè)置讀位數(shù) acall rdbit ;調(diào)讀 1 位子程序 rrc a ;把讀到位在 c 中并依次送給 a djnz b,rlop ;8 位讀完? pop b ;恢復(fù) b ret 二、89c5189c51的內(nèi)部結(jié)構(gòu)和引腳功能名稱類型名稱和功能vssi地vcci電源:提供掉電、空閑、正常工作電壓p0.0-0.7 i/op0 口是開漏雙向口,可以寫為1使其狀態(tài)為懸浮用作高阻輸入。p0也可以在訪問外部程序存儲器時作地址的低字節(jié)。在訪問外部數(shù)據(jù)時作數(shù)據(jù)總線,此時通過內(nèi)部強上拉輸出 1 p1.0-1.7 i/op1 口是帶內(nèi)部上拉的雙向i/o口,向p1口寫入1時 p1 口被內(nèi)部上拉為高電平,可
30、用作輸入口 當(dāng)作為輸入口。當(dāng)作為輸入腳時,被外部拉低的 p1 口會因為內(nèi)部上拉而輸出電流。p1 口第 2 功能 :t2(p1.0) 定時/計數(shù)器 2 的外部計數(shù)輸入/時鐘輸出t2ex(p1.1) 定時/計數(shù)器 2 重裝載/捕捉/方向控制 p2.0-2.7 i/op2 口是帶內(nèi)部上拉的雙向i/o口,向p2口寫入1時,p2口被內(nèi)部上拉為高電平,可用作輸入口。當(dāng)作為輸入腳時,被外部拉低的p2口會因為內(nèi)部上拉而輸出電流。在訪問外部程序存儲器和外部數(shù)據(jù)時分別作為地址高位字節(jié)和 16 位地址(movx dptr),此時通過內(nèi)部強上拉傳送1當(dāng)使用8位尋址方式(mov ri)訪問外部數(shù)據(jù)存儲器時,p2口發(fā)送p
31、2特殊功能寄存器的內(nèi)容p3.0-3.7 i/op3口是帶內(nèi)部上拉的雙向i/o口向p3口寫入1時,p3口被內(nèi)部上拉為高電平,可用作輸入口。當(dāng)作為輸入腳時,被外部拉低的p3口會因為內(nèi)部上拉而輸出電流p3 口還具有以下特殊功能:rxd(p3.0) 串行輸入口 txd(p3.1) 串行輸出口 int0(p3.2) 外部中斷 0 int1(p3.3) 外部中斷 t0(p3.4) 定時器 0 外部輸入 t1(p3.5) 定時器 1 外部輸入 wr(p3.6) 外部數(shù)據(jù)存儲器寫信號 rd(p3.7) 外部數(shù)據(jù)存儲器讀信號 rsti復(fù)位 當(dāng)晶振在運行中,只要復(fù)位管腳出現(xiàn)2個機器周期高電平即可復(fù)位,內(nèi)部有擴散電
32、阻連接到vss僅需要外接一個電容到vcc即可實現(xiàn)上電復(fù)位 aleo地址鎖存使能在訪問外部存儲器時,輸出脈沖鎖存地址的低字節(jié),在正常情況下,ale輸出信號恒定為1/6振蕩頻率,并可用作外部時鐘或定時,注意每次訪問外部數(shù)據(jù)時一個ale脈沖將被忽略ale可以通過置位sfr的auxlilary.0 禁止,置位后ale只能在執(zhí)行movx指令時被激活 o程序存儲使能 當(dāng)執(zhí)行外部程序存儲器代碼時 psen 每個機器周期被激活兩次 在訪問外部數(shù)據(jù)存儲器時 psen 無效 訪問內(nèi)部程序存儲器時 psen 無效 i外部尋址使能/編程電壓在訪問整個外部程序存儲器時ea 必須外部置低 如果ea為高時,將執(zhí)行內(nèi)部程序除
33、非程序計數(shù)器包含大于片內(nèi) flash 的地址 該引腳在對 flash 編程時接 5v/12v 編程電壓(vpp) 如果保密位1 已編程ea在復(fù)位時由內(nèi)部鎖存 xtal1i晶體 1 反相振蕩放大器輸入和內(nèi)部時鐘發(fā)生電路輸入 xtal2o晶體 2 反相振蕩放大器輸出 三、81558155的內(nèi)部結(jié)構(gòu)和引腳功能8155各引腳功能說明如下:rst:復(fù)位信號輸入端,高電平有效。復(fù)位后,3個i/o口均為輸入方式。ad0ad7:三態(tài)的地址/數(shù)據(jù)總線。與單片機的低8位地址/數(shù)據(jù)總線(p0口)相連。單片機與8155之間的地址、數(shù)據(jù)、命令與狀態(tài)信息都是通過這個總線口傳送的。:讀選通信號,控制對8155的讀操作,低電
34、平有效。:寫選通信號,控制對8155的寫操作,低電平有效。:片選信號線,低電平有效。io/m :8155的ram存儲器或i/o口選擇線。當(dāng)io/ 0時,則選擇8155的片內(nèi)ram,ad0ad7上地址為8155中ram單元的地址(00hffh);當(dāng)io/ 1時,選擇 8155的i/o口,ad0ad7上的地址為8155 i/o口的地址。ale:地址鎖存信號。8155內(nèi)部設(shè)有地址鎖存器,在ale的下降沿將單片機p0口輸出的低8位地址信息及 ,io/ 的狀態(tài)都鎖存到8155內(nèi)部鎖存器。因此,p0口輸出的低8位地址信號不需外接鎖存器。pa0pa7:8位通用i/o口,其輸入、輸出的流向可由程序控制。pb0
35、pb7:8位通用i/o口,功能同a口。pc0pc5:有兩個作用,既可作為通用的i/o口,也可作為pa口和pb口的控制信號線,這些可通過程序控制。timer in:定時/計數(shù)器脈沖輸入端。timer out:定時/計數(shù)器輸出端。vcc:5v電源。 2、8155的地址編碼及工作方式 在單片機應(yīng)用系統(tǒng)中,8155是按外部數(shù)據(jù)存儲器統(tǒng)一編址的,為16位地址,其高8位由片選線提供, 0,選中該片。當(dāng)0,io/m0時,選中8155片內(nèi)ram,這時8155只能作片外ram使用,其ram的低8位編址為00hffh;當(dāng)0,io/m1時,選中8155的i/o口,其端口地址的低8位由ad7ad0
36、確定,如表6-6所示。這時,a、b、c口的口地址低8位分別為01h、02h、03h(設(shè)地址無關(guān)位為0)。 下表為8155芯片的i/o口地址ad7ad6ad5ad4ad3ad2ad1ad0所選端口×××××000命令/狀態(tài)寄存器×××××001a口×××××010b口×××××011c口×××××100定時器低8位××&
37、#215;××101定時器高6位及方式××××××××ram單元8155的a口、b口可工作于基本i/o方式或選通i/o方式。c口可工作于基本i/o方式,也可作為a口、b口在選通工作方式時的狀態(tài)控制信號線。當(dāng)c口作為狀態(tài)控制信號時,其每位線的作用如下:pc0:aintr(a口中斷請求線)pc1:abf(a口緩沖器滿信號)pc2: (a口選通信號)pc3:bintr(b口中斷請求線)pc4:bbf(b口緩沖器滿信號)pc5: (b口選通信號)8155的i/o工作方式選擇是通過對8155內(nèi)部命令寄存器
38、設(shè)定控制字實現(xiàn)的。命令寄存器只能寫入,不能讀出,命令寄存器的格式如下圖所示。在alt1alt4的不同方式下,a口、b口及c口的各位工作方式如下:alt1:a口,b口為基本輸入/輸出,c口為輸入方式。alt2:a口,b口為基本輸入/輸出,c口為輸出方式。alt3:a口為選通輸入/輸出,b口為基本輸入/輸出。pc0為aintr,pc1為abf,pc2為 ,pc3pc5為輸出。alt4:a口、b口為選通輸入/輸出。pc0為aintr,pc1為abf,pc2為 ,pc3為bintr,pc4為bbf,pc5為 。圖6-16 8155命令寄存器格式8155內(nèi)還有一個狀態(tài)寄存器,用于鎖存輸入/輸出口和定時/
39、計數(shù)器的當(dāng)前狀態(tài),供cpu查詢用。狀態(tài)寄存器的端口地址與命令寄存器相同,低8位也是00h,狀態(tài)寄存器的內(nèi)容只能讀出不能寫入。所以可以認(rèn)為8155的i/o口地址00h是命令/狀態(tài)寄存器,對其寫入時作為命令寄存器;而對其讀出時,則作為狀態(tài)寄存器。3、8155的定時/計數(shù)器8155內(nèi)部的定時/計數(shù)器實際上是一個14位的減法計數(shù)器,它對timer in端輸入脈沖進行減1計數(shù),當(dāng)計數(shù)結(jié)束(即減1計數(shù)“回0”)時,由timer out端輸出方波或脈沖。當(dāng)timer in接外部脈沖時,為計數(shù)方式;接系統(tǒng)時鐘時,可作為定時方式。定時/計數(shù)器由兩個8位寄存器構(gòu)成,其中的低14位組成計數(shù)器,剩下的兩個高位(m2,
40、m1)用于定義輸出方式。其格式如下:d7 d6 d5 d4 d3 d2 d1 d0 m2 m1 t13 t12 t11 t10 t9 t8d7 d6 d5 d4 d3 d2 d1 d0 t7 t6 t5 t4 t3 t2 t1 t0 定時器/計數(shù)器的使用 8155的定時器/計數(shù)器與mcs-51單片機芯片內(nèi)部的定時器/計數(shù)器,在功能上是完全相同的,同樣具有定時和計數(shù)兩種功能。但是再使用上卻與mcs-51的定時器/計數(shù)器有許多不同之處。具體表現(xiàn)在: 8155的定時器/計數(shù)器是減法計數(shù),而mcs-51的定時器/計數(shù)器卻是加法計數(shù).因此確定計數(shù)初值的方法是不同的. mcs-51的定時器/計數(shù)器有多種工
41、作方式.而8155的定時器/計數(shù)器,則只有一種固定的工作方式,既14位計數(shù),通過軟件方法進行計數(shù)值加載. mcs-51的定時器/計數(shù)器有兩種計數(shù)脈沖。當(dāng)定時工作時,從芯片內(nèi)部按機器周期提供固定頻率的計數(shù)脈沖;當(dāng)計數(shù)工作時,從芯片外部引入計數(shù)脈沖。但8155的定時器/計數(shù)器,不論是定時工作還是計數(shù)工作,都由外部提供計數(shù)脈沖,其信號引腳就是timer in. mcs-51的定時器/計數(shù)器,計數(shù)溢出自動置位tcon寄存器的計數(shù)溢出標(biāo)志位(tf),供用戶以查詢或中斷方式使用;但8155的定時器/計數(shù)器,計數(shù)溢出時向芯片外邊輸出一個信號(timer out)。而且這一信號還有脈沖和方波兩種形式,可由用戶
42、進行選擇。具體由m1.m2兩位定義: m2 m1=00 單個方波 m2 m1=01 連續(xù)方波 m2 m1=10 單個脈沖 m2 m1=11 連續(xù)脈沖 8155定時器/計數(shù)器的工作方式由命令字中的高二位d7d6進行控制。具體說明如下: d7d6 =00 不影響計數(shù)器工作。 d7d6 =01 停止計數(shù)。如計數(shù)器未啟動則無操作,如計數(shù)器正運行則停止計數(shù)。 d7d6 =10 達到計數(shù)值(計數(shù)器減為0)后停止。 d7d6 =11 啟動計數(shù)器。如計數(shù)器沒運行,則在裝入計數(shù)值后開始計數(shù);如計數(shù)已運行,則在當(dāng)前計數(shù)值計滿后,再以新的計數(shù)值進行計數(shù)。 四、實驗設(shè)備及原理工具清單:1、電烙鐵 2、電烙鐵架 3、鑷
43、子 4、小螺絲刀 5、偏口鉗 6、焊錫 7、電路板8、元器件清單:序號名 稱數(shù) 量序號名 稱數(shù) 量189c5116共陰極數(shù)碼管 62815517ds18b20 1374ls14184740729575452 310注:以上元器件不能焊在板上。序號名 稱數(shù) 量序號名 稱數(shù) 量1電阻 0.1k518晶振 11.059212電阻 0.3k119單排插針/座 (3)13電阻 1k120短路塊14電阻 2.2k421單排插座 (3)15電阻 3k122單排插座 (30)26電阻 4.7k123dip 4027電阻 8.2k124dip 14 38排電阻 0.1k*8125dip839電解電容4.7uf/
44、3.3uf426蜂鳴器110電解電容 10uf227電源線 (黃) 111電解電容 47uf/33uf128電源線 (黑)112瓷片電容 30p/33p229支座413獨石電容 0.1uf13014獨石電容 0.01uf23115三極管 901313216發(fā)光二極管(紅)13317按鈕開關(guān)434主要設(shè)備、器件結(jié)構(gòu)及原理介紹74ls14inputoutputaylhhl六反相器(有施密特觸發(fā)器)。真值表如右:邏輯圖如下:引出端符號 : 1a6a 輸入端 1y6y 輸出端 74077407ttl集電極開路六正相高壓驅(qū)動器。74ls07引腳圖 74ls07邏輯圖 74ls07真值表754527545
45、2是雙外圍器件驅(qū)動芯片,其引腳圖如下圖左所示:1a和1b是內(nèi)部與非門的兩個輸入端,通過三極管放大后由1y輸出。相似的,2a和2b另一個與非門的輸入端,2y為這一路信號的輸出。1y,2y輸出的是經(jīng)過三極管放大后的信號,從而起到增加驅(qū)動能力的作用。75452常用于驅(qū)動步進電機等!電解電容電解電容是電容的一種介質(zhì)有電解液涂層有極性,分正負(fù)不可接錯。電容(electric capacity),由兩個金屬極,中間夾有絕緣材料(介質(zhì))構(gòu)成。其特點:單位體積的電容量非常大,比其它種類的電容大幾十到數(shù)百倍;額定的容量可以做到非常大,可以輕易做到幾萬f甚至幾f(但不能和雙電層電容比);價格比其它種類具有壓倒性優(yōu)
46、勢,因為電解電容的組成材料都是普通的工業(yè)材料,比如鋁等等。制造電解電容的設(shè)備也都是普通的工業(yè)設(shè)備,可以大規(guī)模生產(chǎn),成本相對比較低。瓷片電容用高介電常數(shù)的電容器陶瓷鈦酸鋇一氧化鈦擠壓成圓管、圓片或圓盤作為介質(zhì),并用燒滲法將銀鍍在陶瓷上作為電極制成。它又分高頻瓷介和低頻瓷介兩種。具有小的正電容溫度系數(shù)的電容器,用于高穩(wěn)定振蕩回路中,作為回路電容器及墊整電容器。低頻瓷介電容器限于在工作頻率較低的回路中作旁路或隔直流用,或?qū)Ψ€(wěn)定性和損耗要求不高的場合包括高頻在內(nèi)。這種電容器不宜使用在脈沖電路中,因為它們易于被脈沖電壓擊穿。獨石電容電容量大、體積小、可靠性高、電容量穩(wěn)定,耐高溫耐濕性好等。廣泛應(yīng)用于電子
47、精密儀器。各種小型電子設(shè)備作諧振、耦合、濾波、旁路。容量范圍:0.5pf-1uf耐壓:二倍額定電壓。三極管三極管,是一種電流控制電流的半導(dǎo)體器件。作用是把微弱信號放大成輻值較大的電信號,也用作無觸點開關(guān)。三極管是一種電流放大器件,但在實際使用中常常利用三極管的電流放大作用,通過電阻轉(zhuǎn)變?yōu)殡妷悍糯笞饔?。發(fā)光二極管發(fā)光二極管的核心部分是由p型半導(dǎo)體和n型半導(dǎo)體組成的晶片,在p型半導(dǎo)體和n型半導(dǎo)體之間有一個過渡層,稱為pn結(jié)。在某些半導(dǎo)體材料的pn結(jié)中,注入的少數(shù)載流子與多數(shù)載流子復(fù)合時會把多余的能量以光的形式釋放出來,從而把電能直接轉(zhuǎn)換為光能。pn結(jié)加反向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種利
48、用注入式電致發(fā)光原理制作的二極管叫發(fā)光二極管,通稱led。 當(dāng)它處于正向工作狀態(tài)時(即兩端加上正向電壓),電流從led陽極流向陰極時,半導(dǎo)體晶體就發(fā)出從紫外到紅外不同顏色的光線,光的強弱與電流有關(guān)。晶振晶體振蕩器,簡稱晶振,其作用在于產(chǎn)生原始的時鐘頻率,這個頻率經(jīng)過頻率發(fā)生器的倍頻或分頻后就成了電腦中各種不同的總線頻率。蜂鳴器蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,廣泛應(yīng)用于計算機、打印機、報警器、定時器等電子產(chǎn)品中作發(fā)生器件。電磁式蜂鳴器驅(qū)動原理:蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機io引腳輸出的電流較小,單片機輸出的ttl
49、電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。s51增強型單片機實驗板通過一個三極管c8550來放大驅(qū)動蜂鳴器,原理圖見下面圖:s51增強型單片機實驗板驅(qū)動蜂鳴器原理圖如圖所示,蜂鳴器的正極接到vcc(+5v)電源上面,蜂鳴器的負(fù)極接到三極發(fā)射管的發(fā)射極e,三極管的基級b經(jīng)過限流電阻r1后由單片機的p3.7引腳控制,當(dāng)p3.7輸出低電平時,三極管t1截止,沒有電流流過線圈,蜂鳴器不發(fā)聲;當(dāng)p3.7輸出高電平時,三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過程序控制p3.7引腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。 ·led顯示器工作原理:led(發(fā)光二極管l
50、ight emitting diode的英文縮寫)是利用pn結(jié)把電能轉(zhuǎn)換成光能的固體發(fā)光器件,根據(jù)制造材料的不同可以發(fā)出紅、黃、綠、白等不同色彩的可見光來。led的伏安特性類似于普通二極管,正向壓降約為2伏左右,工作電流一般在10 -20ma之間較為合適。led顯示器有多種結(jié)構(gòu)形式,單段的圓形或方形led常用來顯示設(shè)備的運行狀態(tài),8段led可以顯示各種數(shù)字和字符,所以也稱為led數(shù)碼管,其外形如圖所示。8段led在控制系統(tǒng)中應(yīng)用最為廣泛,其接口電路也具有普遍借鑒性。因此,我們介紹8段led數(shù)碼管顯示器。8段led顯示器的結(jié)構(gòu)與工作原理如圖所示。一個8段led顯示器的結(jié)構(gòu)與工作原理如圖6-1所示。它是由8個發(fā)光二極管組成,各段依次記為a、b、c、d、e、f、g、dp ,其中dp表示小數(shù)點(不帶小數(shù)點的稱為7段led)。8段led顯示器有共陰極和共陽極兩種結(jié)構(gòu),分別如圖(b)、(c)所示。共陰極led的所有發(fā)光管的陰極并接成公共端com,而共陽極led的所有發(fā)光管的陽極并接成公共端com。當(dāng)共陰極led的com端接地,則某個發(fā)光二極管的陽極加上高電平時,則該管有電流流過因而點亮發(fā)光;當(dāng)共陽極led的com端接高電平,則某個發(fā)光管的陰極加上低電平時,則該管有電流流過因而點亮發(fā)光。8段led通過不同段
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙衛(wèi)生職業(yè)學(xué)院《管理溝通(英語)》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南農(nóng)業(yè)大學(xué)《建筑工業(yè)化與裝配式結(jié)構(gòu)》2023-2024學(xué)年第一學(xué)期期末試卷
- 孩子里程碑的教育模板
- 保險業(yè)基礎(chǔ)講解模板
- 述職報告創(chuàng)新實踐
- 職業(yè)導(dǎo)論-房地產(chǎn)經(jīng)紀(jì)人《職業(yè)導(dǎo)論》點睛提分卷3
- 年終工作總結(jié)格式要求
- 二零二五版LNG液化天然氣裝運合同3篇
- 二零二五年度汽車后市場擔(dān)保合作協(xié)議合同范本集錦:維修保養(yǎng)服務(wù)2篇
- 二零二五版國際金融公司勞務(wù)派遣與風(fēng)險管理協(xié)議3篇
- 小學(xué)語文生本課堂教學(xué)設(shè)計
- 上海某建筑基礎(chǔ)及上部結(jié)構(gòu)加固工程施工方案磚木結(jié)構(gòu) 磚混結(jié)構(gòu)
- 精神病醫(yī)院財務(wù)后勤總務(wù)管理制度
- 停車場施工施工組織設(shè)計方案
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標(biāo)準(zhǔn)簡介(湘教版)
- 河道治理工程監(jiān)理通知單、回復(fù)單范本
- 超分子化學(xué)簡介課件
- 高二下學(xué)期英語閱讀提升練習(xí)(一)
- 易制爆化學(xué)品合法用途說明
- 【PPT】壓力性損傷預(yù)防敷料選擇和剪裁技巧
評論
0/150
提交評論