- 單片機C語言程序設計實訓100例
- 彭偉編著
- 839字
- 2018-12-27 05:11:54
第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仿真時電源已默認連接,仿真電路原理圖中它們全部缺省。當然,在實際硬件環境中,電源與晶振部分不能缺省。
- The Complete Rust Programming Reference Guide
- Learning Single:page Web Application Development
- Maven Build Customization
- VSTO開發入門教程
- Learning Informatica PowerCenter 10.x(Second Edition)
- STM32F0實戰:基于HAL庫開發
- Getting Started with LLVM Core Libraries
- 從Java到Web程序設計教程
- C#開發案例精粹
- Python Automation Cookbook
- JavaScript編程精解(原書第3版)
- Web程序設計與架構
- Building E-Commerce Solutions with WooCommerce(Second Edition)
- Android Application Programming with OpenCV 3
- CentOS High Performance