上一節(jié)介紹的是 I2C 每一位信號(hào)的時(shí)序流程,而 I2C 通信在字節(jié)級(jí)的傳輸中,也有固定的時(shí)序要求。I2C 通信的起始信號(hào)(Start)后,首先要發(fā)送一個(gè)從機(jī)的地址,這個(gè)地址一共有7位,緊跟著的第8位是數(shù)據(jù)方向位(R/W),“0”表示接下來要發(fā)送數(shù)據(jù)(寫),‘“1”表示接下來是請(qǐng)求數(shù)據(jù)(讀)。
DS1302 我們前邊也有提起過,是三根線,分別是 CE、I/O 和 SCLK,其中 CE 是使能線,SCLK 是時(shí)鐘線,I/O 是數(shù)據(jù)線。前邊我們介紹過了 SPI 通信,同學(xué)們發(fā)現(xiàn)沒發(fā)現(xiàn),這個(gè) DS1302 的通信線定義和 SPI 怎么這么像呢?
通過上圖可以看出理想波形與實(shí)際波形之間是有區(qū)別的,實(shí)際波形在按下和釋放的瞬間都有抖動(dòng)的現(xiàn)象,抖動(dòng)時(shí)間的長(zhǎng)短和按鍵的機(jī)械特性有關(guān),一般為5~10ms。通常我們手動(dòng)按鍵然后釋放,這個(gè)動(dòng)作中穩(wěn)定閉合的時(shí)間超過了20ms。因此單片機(jī)在檢測(cè)鍵盤是否按下時(shí)都要加上去抖動(dòng)操作,有專用的去抖動(dòng)電路,也有專門的去抖動(dòng)芯片,但通常我們采用軟件延時(shí)的方法就可以解決抖動(dòng)問題。
MCS- 51系列單片機(jī)的指令系統(tǒng)是一種簡(jiǎn)明高效的指令系統(tǒng),其基本指令共有111條,其中單字節(jié)指令49條,雙字節(jié)指令4\'5條,三字節(jié)指令17條。如果按功能可以講這些指令分為五類:數(shù)據(jù)傳送類(29條)、算術(shù)操作類(24條)、邏輯操作類(24條)、控制轉(zhuǎn)移類(17條)以及位變量操作類(17條)。對(duì)于反向設(shè)計(jì)而言,我們關(guān)心的不是它的各種具體指令的多少而是指令的尋址方式。所謂的尋址方式就是尋找確定參與操作的數(shù)的真正地址。MCS-51系列單片機(jī)的111條指令一共只采用了5種尋址方式。
RS232 標(biāo)準(zhǔn)是誕生于 RS485 之前的,但是 RS232 有幾處不足的地方: 接口的信號(hào)電平值較高,達(dá)到十幾 V,使用不當(dāng)容易損壞接口芯片,電平標(biāo)準(zhǔn)也與 TTL 電平不兼容。
計(jì)時(shí)器記錄單片機(jī)外部發(fā)生的事情;而定時(shí)器是單片機(jī)自身提供的計(jì)數(shù)器,51單片機(jī)經(jīng)過12分頻后提供給單片機(jī)的只有1MHZ的脈沖,脈沖時(shí)間間隔1微秒。MC51外接12M晶振(11.0592MHZ),12MHZ/12=1MHZ=1000000次/秒=1000000次/1000000微秒=1次/1微秒=1指令/1微秒。晶體每震蕩1次就產(chǎn)生1個(gè)脈沖,花費(fèi)1微秒,執(zhí)行一次指令。
51單片機(jī)采用高電平復(fù)位。以當(dāng)前使用較多的AT89系列單片機(jī)來說,電路圖如下。在復(fù)位腳加高電平2個(gè)機(jī)器周期可使單片機(jī)復(fù)位。復(fù)位后的主要特征是各IO口呈現(xiàn)高電平,程序計(jì)數(shù)器從零開始執(zhí)行程序。
弄了幾天的Proteus仿真,終于覺得自己想做的東西,已經(jīng)全部用Proteus仿真過了,應(yīng)該可以動(dòng)手做了。于是先用Proteus畫好原理圖,再用ARES畫好PCB板圖——雖然我只是用洞洞板焊接,但是有個(gè)PCB板圖做參照,連線會(huì)容易很多?;藘蓚€(gè)小時(shí),去中關(guān)村買了必要的原件,開始動(dòng)手。
AD590產(chǎn)生的電流與絕對(duì)溫度成正比,它可接收的工作電壓為4V-30V,檢測(cè)的溫度范圍為-55℃-+150℃,它有非常好的線性輸出性能,溫度每增加1℃,其電流增加1uA。
AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52在洗衣機(jī)得到廣泛應(yīng)用
MCS-51的P0口和P2口可以作為并行擴(kuò)展總線,可以擴(kuò)展64K字節(jié)程序存貯器和64K字節(jié)RAM I/O口
復(fù)位就是指通過某種手段使單片機(jī)內(nèi)部某些資源一種固定的初始狀態(tài),以確保單片機(jī)每次復(fù)位后都能在某一固定的環(huán)境中從某一固定的入口地址處開始運(yùn)行
單片機(jī)CPU與外部設(shè)備交換信息通常有如下幾種方式:無條件傳送方式,查詢傳送方式和中斷傳送方式。我們以單片機(jī)與微型打印機(jī)接口為例講述這三種方式。假定用戶要打印三個(gè)數(shù)據(jù),這三個(gè)數(shù)據(jù)保存在單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器10H,11H,和12H中,8051用并口P2與微型打印機(jī)的并行數(shù)據(jù)口DB進(jìn)行數(shù)據(jù)交換。
8051芯片內(nèi)部有一高增益反相放大器,用于構(gòu)成振蕩器,反向放大器輸入端為XTAL1,輸出端XTAL2。在XTAL1和XTAL2兩端跨接一個(gè)石英晶體及兩個(gè)電容就構(gòu)成了穩(wěn)定自激振蕩器,電容器C1和C2通常都取30pF左右,對(duì)振蕩頻率有微調(diào)作用。振蕩頻率范圍是1.2-12MHz。
8051系列各種芯片的引腳是互相兼容的,8051,8751和8031均采用40腳雙列直播封裝型式。當(dāng)然,不同芯片之間引腳功能也略有差異。8051單片機(jī)是高性能的單片機(jī),因?yàn)槭艿揭_數(shù)目的限制,所以有不少引腳具有第二功能,其中有些功能是8751芯片所專有的