官术网_书友最值得收藏!

第1章 8051單片機C語言程序設計概述

開發8051 單片機系統時,使用C 語言會使開發周期大為縮短,開發效率大幅提高,程序可讀性好且易于移植,所以使用C 語言開發單片機系統已經成為必然趨勢。本書給出了100 余個在Keil μVision3 下編寫的單片機C 語言程序案例,這些案例同時給出了Proteus 下的仿真電路。讀者閱讀本書需要已經學習了8051 單片機C 語言程序設計技術,本章僅介紹使用C 語言設計單片機系統必須參考和重點掌握的內容,這些內容會給讀者閱讀、調試、研究本書案例及進行設計實訓提供幫助。

1.1 8051單片機引腳

圖1-1給出了8051單片機的幾種不同封裝形式及引腳分布,本節將對單片機4個雙向I/O端口引腳、控制引腳、晶振及電源引腳進行簡要介紹。

圖1-1 8051單片機不同封裝形式及引腳圖

8051的4個雙向I/O端口功能如下所述。

(1)P0端口具有雙重功能,它可用做I/O端口,連接輸入/輸出設備,但需要外接上拉電阻,P0端口還能用做數據總線(D0~D7)和低8位地址總線(A0~A7)復用端口,低8位地址與數據分時使用P0端口,低8位地址由ALE(Address Latch Enable,地址鎖存允許)信號的下降沿鎖存到外部地址鎖存器中,然后傳送8位數據。本書有關2764、6264和8255的案例中使用了P0端口的第二重功能。

(2)P1端口是通用I/O端口,每一位都能作為I/O接口線使用,本書有關獨立按鍵或鍵盤矩陣按鍵的案例中,按鍵多數連接在P1端口。

(3)P2端口具有雙重功能,它可以作為I/O端口,連接輸入/輸出設備,在擴展外部存儲器或擴展I/O接口時,P2端口作為系統擴展時16位地址總線的高8位(A8~A15)使用,低8位地址由P0端口提供。本書有關存儲器擴展和接口擴展的案例使用了P2端口的第二重功能。

(4)P3端口具有雙重功能,功能一與P1端口相同,作為功能二使用時,P3.0~P3.7分別對應于RXD、TXD、INT0、INT1、T0、T1、WR及RD,第3章基礎程序設計中有關串口、外部中斷及定時/計數器的案例分別涉及前6位,第4章硬件應用中關于存儲器擴展和接口擴展的案例連接了最后2位WR和RD,這2位實際上用于控制總線。

8051的控制引腳有RST,ALE/PROG,PSEN,EA/VPP,本書多數案例中的RST(Reset)引腳連接了系統復位外圍電路,只有部分案例未在RST引腳連接復位電路,但這并不影響Proteus的仿真,ALE引腳在存儲器擴展和I/O接口擴展案例中用到,另外,由于本書所有案例程序都綁定在8051內部程序ROM中,案例中EA全部連接高電平。

XTAL1,XTAL2引腳在本書多數案例中連接12MHz晶振,在串口通信案例中本書選擇的是11.0592MHz晶振。Proteus缺省晶振連接時不影響仿真運行,頻率可在芯片屬性中直接設置。主電源引腳VSS,VCC分別接GND和+5V,Proteus仿真時電源已默認連接,仿真電路原理圖中它們全部缺省。當然,在實際硬件環境中,電源與晶振部分不能缺省。

主站蜘蛛池模板: 桂阳县| 常熟市| 阳谷县| 乐清市| 兴安盟| 建平县| 金沙县| 军事| 南丰县| 泾阳县| 裕民县| 宿迁市| 高平市| 安丘市| 怀宁县| 宁明县| 乌苏市| 海伦市| 鄂伦春自治旗| 高密市| 汕尾市| 商城县| 黄浦区| 永昌县| 夏河县| 溧水县| 澄迈县| 黔东| 泸西县| 安丘市| 启东市| 金川县| 金华市| 兴业县| 海城市| 成武县| 志丹县| 涟水县| 昌黎县| 怀集县| 西盟|