- 單片機(jī)C語言程序設(shè)計實訓(xùn)100例
- 彭偉編著
- 219字
- 2018-12-27 05:11:53
第1章 8051單片機(jī)C語言程序設(shè)計概述
開發(fā)8051 單片機(jī)系統(tǒng)時,使用C 語言會使開發(fā)周期大為縮短,開發(fā)效率大幅提高,程序可讀性好且易于移植,所以使用C 語言開發(fā)單片機(jī)系統(tǒng)已經(jīng)成為必然趨勢。本書給出了100 余個在Keil μVision3 下編寫的單片機(jī)C 語言程序案例,這些案例同時給出了Proteus 下的仿真電路。讀者閱讀本書需要已經(jīng)學(xué)習(xí)了8051 單片機(jī)C 語言程序設(shè)計技術(shù),本章僅介紹使用C 語言設(shè)計單片機(jī)系統(tǒng)必須參考和重點掌握的內(nèi)容,這些內(nèi)容會給讀者閱讀、調(diào)試、研究本書案例及進(jìn)行設(shè)計實訓(xùn)提供幫助。
1.1 8051單片機(jī)引腳
圖1-1給出了8051單片機(jī)的幾種不同封裝形式及引腳分布,本節(jié)將對單片機(jī)4個雙向I/O端口引腳、控制引腳、晶振及電源引腳進(jìn)行簡要介紹。

圖1-1 8051單片機(jī)不同封裝形式及引腳圖
8051的4個雙向I/O端口功能如下所述。
(1)P0端口具有雙重功能,它可用做I/O端口,連接輸入/輸出設(shè)備,但需要外接上拉電阻,P0端口還能用做數(shù)據(jù)總線(D0~D7)和低8位地址總線(A0~A7)復(fù)用端口,低8位地址與數(shù)據(jù)分時使用P0端口,低8位地址由ALE(Address Latch Enable,地址鎖存允許)信號的下降沿鎖存到外部地址鎖存器中,然后傳送8位數(shù)據(jù)。本書有關(guān)2764、6264和8255的案例中使用了P0端口的第二重功能。
(2)P1端口是通用I/O端口,每一位都能作為I/O接口線使用,本書有關(guān)獨立按鍵或鍵盤矩陣按鍵的案例中,按鍵多數(shù)連接在P1端口。
(3)P2端口具有雙重功能,它可以作為I/O端口,連接輸入/輸出設(shè)備,在擴(kuò)展外部存儲器或擴(kuò)展I/O接口時,P2端口作為系統(tǒng)擴(kuò)展時16位地址總線的高8位(A8~A15)使用,低8位地址由P0端口提供。本書有關(guān)存儲器擴(kuò)展和接口擴(kuò)展的案例使用了P2端口的第二重功能。
(4)P3端口具有雙重功能,功能一與P1端口相同,作為功能二使用時,P3.0~P3.7分別對應(yīng)于RXD、TXD、INT0、INT1、T0、T1、WR及RD,第3章基礎(chǔ)程序設(shè)計中有關(guān)串口、外部中斷及定時/計數(shù)器的案例分別涉及前6位,第4章硬件應(yīng)用中關(guān)于存儲器擴(kuò)展和接口擴(kuò)展的案例連接了最后2位WR和RD,這2位實際上用于控制總線。
8051的控制引腳有RST,ALE/PROG,PSEN,EA/VPP,本書多數(shù)案例中的RST(Reset)引腳連接了系統(tǒng)復(fù)位外圍電路,只有部分案例未在RST引腳連接復(fù)位電路,但這并不影響Proteus的仿真,ALE引腳在存儲器擴(kuò)展和I/O接口擴(kuò)展案例中用到,另外,由于本書所有案例程序都綁定在8051內(nèi)部程序ROM中,案例中EA全部連接高電平。
XTAL1,XTAL2引腳在本書多數(shù)案例中連接12MHz晶振,在串口通信案例中本書選擇的是11.0592MHz晶振。Proteus缺省晶振連接時不影響仿真運行,頻率可在芯片屬性中直接設(shè)置。主電源引腳VSS,VCC分別接GND和+5V,Proteus仿真時電源已默認(rèn)連接,仿真電路原理圖中它們?nèi)咳笔 .?dāng)然,在實際硬件環(huán)境中,電源與晶振部分不能缺省。
- Python概率統(tǒng)計
- Facebook Application Development with Graph API Cookbook
- Boost C++ Application Development Cookbook(Second Edition)
- 神經(jīng)網(wǎng)絡(luò)編程實戰(zhàn):Java語言實現(xiàn)(原書第2版)
- INSTANT Django 1.5 Application Development Starter
- Unreal Engine 4 Shaders and Effects Cookbook
- RISC-V體系結(jié)構(gòu)編程與實踐(第2版)
- 機(jī)器學(xué)習(xí)與R語言實戰(zhàn)
- NoSQL數(shù)據(jù)庫原理
- Service Mesh實戰(zhàn):基于Linkerd和Kubernetes的微服務(wù)實踐
- C語言從入門到精通
- Django 3.0應(yīng)用開發(fā)詳解
- PrimeFaces Blueprints
- 硬件產(chǎn)品設(shè)計與開發(fā):從原型到交付
- ASP.NET本質(zhì)論