導語:本期主要知識點為單片機定時計數器、中斷和串行口的學習。單片機對于初學者來說確實很難理解,不少學過單片機的同學或電子愛好者,甚至在畢業時仍舊是一無所獲?;诖?,電子發燒友網將整合《單片機學習知識點全攻略》,共分為四個系列,以饗讀者,敬請期待!此系列對于業內電子工程師也有收藏和參考價值。
參閱相關系列
系列三主要知識點:
15:單片機位操作指令
16:單片機定時器與計數器
17:單片機定時器/計數器的方式
18:單片機的中斷系統
19:單片機定時器、中斷試驗
20:單片機定時/計數器實驗
21:單片機串行口介紹
15、單片機位操作指令
前面那些流水燈的例程,我們已經習慣了“位”一位就是一盞燈的亮和滅,而我們學的指令卻全都是用“字節”來介紹的:字節的移動、加法、減法、邏輯運算、移位等等。用字節來處理一些數學問題,比如說:控制冰箱的溫度、電視的音量等等很直觀,能直接用數值來表在??墒侨绻盟鼇砜刂埔恍╅_關的打開和合上,燈的亮和滅,就有些不直接了,記得我們上次課上的流水燈的例程嗎?我們知道送往P1口的數值后并不能馬上知道哪個燈亮和來滅,而是要化成二進制才知道。工業中有很多場合需要處理這類開關輸出,繼電器吸合,用字節來處理就顯示有些麻煩,所以在8031單片機中特意引入一個位處理機制。
位尋址區
在8031中,有一部份RAM和一部份SFR是具有位尋址功能的,也就是說這些RAM的每一個位都有自已的地址,能直接用這個地址來對此進行操作。
內部RAM的20H-2FH這16個字節,就是8031的位尋址區。看圖1??梢娺@里面的每一個RAM中的每個位我們都可能直接用位地址來找到它們,而不必用字節地址,然后再用邏輯指令的方式。
能位尋址的特殊功能寄存器
8031中有一些SFR是能進行位尋址的,這些SFR的特點是其字節地址均可被8整除,如A累加器,B寄存器、PSW、IP(中斷優先級控制寄存器)、IE(中斷允許控制寄存器)、SCON(串行口控制寄存器)、TCON(定時器/計數器控制寄存器)、P0-P3(I/O端口鎖存器)。以上的一些SFR我們還不熟,等我們講解相關內容時再作詳細解釋。
位操作指令
MCS-51單片機的硬件結構中,有一個位處理器(又稱布爾處理器),它有一套位變量處理的指令集。在進行位處理時,CY(就是我們前面講的進位位)稱“位累加器”。有自已的位RAM,也就是我們剛講的內部RAM的20H-2FH這16個字節單元即128個位單元,還有自已的位I/O空間(即P0.0…。.P0.7,P1.0…….P1.7,P2.0……。.P2.7,P3.0……。.P3.7)。當然在物理實體上它們與原來的以字節尋址用的RAM,及端口是完全相同的,或者說這些RAM及端口都能有兩種使用辦法。
【詳情參閱:單片機學習知識點全攻略(三) 】
TOP16 單片機入門設計:簡單好玩的心率測量儀
這個小東西簡單而好玩,可以做為單片機入門的一個課業設計。
將你的食指輕輕地放在傳感器上,就能看到LED指示燈隨著你的心跳而閃動,15秒鐘以后,還能在數碼管上顯示你當前的心率。
核心部分在傳感器上,這里用的是一套紅外對管。
人體指尖的動脈比較發達,當動脈血管隨心臟周期性收縮與舒張時,血管中的血液容積也會發生變化。
這時紅外接收探頭便能采集到的相應的光脈沖信號,經過去噪和放大后送到單片機,進行運算處理,便得到了心率數據。
【詳情參閱:單片機入門設計:簡單好玩的心率測量儀 】
TOP17 51單片機紅外遙控旋轉LED數字電子鐘
在網上看到不少老外做的各種旋轉LED顯示屏,非常COOL,我也動手用洞洞板試做了一個類似的顯示屏,結果感覺還不錯。于是再接再勵繼續努力,將作品進一步改進,完善后制成如今這個樣子。
由于剛學51單片機,加上制作電路板軟件也是從零開始,的確花了我不少的時間和精力。不過也就是在這艱難的獨立制作中,真正學到了不少實在的東西。
本項目的關鍵是如何解決高速旋轉的電路板如何供電,如何調時的問題。我采用電機電刷的原理,將旋轉軸鉆空,通過一只插頭將電源的從反面引到前面的電路板上,而這個旋轉的插頭又與固定在背板上的兩個銅片接觸的。調時的問題有些困難,一是讓電路板在旋轉前與PC機相接,由電腦傳送調時數據,這雖然可行但不方便。還有就是用遙控方法,但此方案在調試方面有很大的困難。
顯示方式上,我采用平衡式的兩排LED,這除了在旋轉時能較好的保持平衡外,主要能利用兩邊交替顯示方式,比單排要快一倍。
本裝置不僅是一個時鐘,它還可以動態顯示漢字及圖案,這就看如何發揮了。
其具體制作過程如下:
一.旋轉電機的制作
從制作成本與方便考慮,選用舊電腦用的大軟驅上的直流無刷電機,只是對局部進行改造。
【詳情參閱:51單片機紅外遙控旋轉LED數字電子鐘 】
評論