本書根據作者學習單片機的經驗和筆記整理而成,從實戰出發,以制作簡易信號發生器為主線,以學習51單片機為目的。從點亮一個發光二極管開始,到顯示、輸出一個完整的波形,逐步引導讀者進行思考、嘗試、犯錯、修正以及優化,最終不僅學會51單片機,更掌握學習的方法,在使用其他單片機時快速入門。本書共分3個部分。第1部分是對單片機的初步介紹和學習前的準備工作;第2部分是學習單片機,并制作簡易信號發生器的過程,同時在里面添加了關于電源的內容;第3部分注重能力的提升,講解了一些常用器件的使用方法,以及在遇到問題時該如何求助,向誰求助。本書可作為自動化、電子信息科學與技術、智能儀器、電子技術、機電一體化和物聯網等相關專業高年級本科生學習單片機時的入門教材,也可作為單片機愛好者的學習手冊。
《51單片機逆向學習實戰教程》是從根本上教你如何學單片機、如何解決學習過程中遇到的問題的一本書。
書中以市面常見的51小系統板為核心,通過焊接和編程的方式,逐步講解了各種基礎器件,并終完成一個簡易小項目的制作。
書中不僅提供了大量的例程源碼、原理講解和錯誤分析,還講解了遇到問題時,應該如何分解問題,去哪里查找答案。
《51單片機逆向學習實戰教程》配套豐富的例程、課件和視頻教程。
第1部分從項目起步,學習單片機
第1章單片機的前世今生
1.1老生常談單片機
1.1.1你好,單片機
1.1.2為什么學習51單片機
1.1.3常見的單片機類型
1.2因材施教,因物施法
1.2.1通過Proteus仿真學習單片機
1.2.2通過開發板學習單片機
1.2.3逆向學習
1.3軟件入門基礎
1.3.1匯編語言與C語言的那些事
1.3.2C語言入門五式
1.3.3加減乘除
1.3.4數制三變
1.3.5與或反
1.3.6常用數據類型與大小
1.4單片機資料準備
1.4.1找到datasheet
1.4.2認識STC89C52
1.4.3STC89C52與AT89S52
第2章項目的確定與準備
2.1知己知彼
2.1.1我們的目標
2.1.2起步的門檻
2.2項目的準備工作
2.2.1準備器件
2.2.2安裝Keil軟件
2.2.3安裝CH340的驅動程序
2.2.4用Keil新建一個工程
第2部分動手吧,做個信號發生器
第3章搞定電源
3.1線性穩壓器
3.1.1什么是線性穩壓器
3.1.27805及其應用電路
3.1.3AMS1117及其應用電路
3.1.4低靜態電流的MCP1790
3.1.5線性穩壓器的優點與缺點
3.2DCDC
3.2.1什么是DCDC
3.2.2LM2576及其應用電路
3.2.3MP2307及其應用電路
3.2.4DCDC的優點與缺點
3.3方案的選擇與思考
3.3.1電源芯片的主要參數
3.3.2可調電源的一點聯想
第4章Hello,LED
4.151最小系統板
4.2時鐘
4.2.1晶體與晶振
4.2.23個周期
4.3驅動LED
4.3.1初識LED
4.3.2點亮LED
4.3.3程序的編譯與下載
4.3.4特殊功能寄存器的位定義
4.3.5引腳的驅動能力
4.3.6LED閃爍
4.3.7Keil仿真
4.4程序的風格
4.5流水燈與子函數
4.5.1流水燈1
4.5.2流水燈2
4.6頭文件
4.6.1什么是頭文件
4.6.2頭文件的種類
第5章攻克定時中斷
5.1中斷
5.1.1揭掉中斷的面紗
5.1.2中斷的種類與優先級
5.1.3中斷相關的寄存器
5.2定時器
5.2.1什么是定時器
5.2.2定時相關寄存器
5.3定時中斷與LED
5.3.1定時中斷控制LED閃爍
5.3.2自動裝載模式控制LED閃爍
5.4PWM
5.4.1了解PWM波形
5.4.2自動裝載模式與PWM
5.4.3PWM與呼吸燈
5.5函數的定義與聲明
第6章征服數碼管
6.1三極管與蜂鳴器
6.1.1什么是三極管
6.1.2什么是蜂鳴器
6.1.3三極管驅動蜂鳴器
6.1.4蜂鳴器驅動電路優化
6.1.5開關三極管的使用誤區
6.2認知數碼管
6.2.1什么是數碼管
6.2.2數碼管的驅動電路
6.2.3數碼管編碼
6.3點亮數碼管
6.3.1宏定義
6.3.2數字靜止顯示
6.4數組
6.4.1一維數組的定義及使用
6.4.2數字循環顯示
6.4.3code的用法
6.4.4數碼管動態顯示
6.4.5局部變量與全局變量
6.5指針
6.5.1指針與指針變量
6.5.2指針與數組
6.5.3指針、數組、數碼管
第7章玩轉按鍵
7.1掃描檢測
7.1.1檢測單個按鍵
7.1.2按鍵消抖
7.1.3按鍵控制蜂鳴器
7.1.4檢測矩陣鍵盤
7.1.5函數返回值
7.1.6函數返回值的注意事項
7.2中斷檢測
7.2.1外部中斷的介紹
7.2.2低電平中斷檢測按鍵
7.2.3下降沿中斷檢測按鍵
7.2.4按鍵與計數器
7.3掃描檢測與中斷檢測的優缺點
第8章拿下IIC和DAC
8.1關于PCF8591
8.1.1什么是數/模轉換
8.1.2PCF8591的主要參數
8.1.3DAC的主要指標
8.1.4什么是IIC
8.2PCF8591的外圍電路
8.2.1PCF8591的應用電路
8.2.2硬件地址
8.2.3基準源
8.2.4IIC總線接口和時序
8.2.5PCF8591的輸出電路
8.3輸出多少,你說了算
8.3.1學會看datasheet
8.3.2相關寄存器
8.3.3跑起來吧,PCF8591
8.3.4基于D/A的呼吸燈
8.3.5多個C源文件
8.3.6extern的用法
第9章誕生吧,信號發生器
9.1誕生前的準備
9.1.1程序流程圖
9.1.2信號發生器的流程圖
9.1.3程序調試思路
9.1.4確定原理圖
9.1.5波形取值
9.2頻率不可調
9.2.1定時、查表、輸出
9.2.2中斷、優化、補償
9.2.3波形、頻率、顯示
9.3頻率可調
9.3.1頻率上限與下限
9.3.2輸入與算法
9.3.3第一個波形
9.4波形可調
9.4.1方波、三角波取值
9.4.2波形、頻率可調
9.5指針與優化
9.5.1數組與指針
9.5.2中斷、再次優化
第3部分查漏補缺,方案與能力的升級
第10章遲到的UART口
10.1UART口的第一次接觸
10.1.1什么是UART口
10.1.2UART口應用電路
10.1.3波特率
10.1.4寄存器與工作方式
10.2UART口的應用
10.2.1UART與LED
10.2.2UART與ASCII碼表
10.2.3UART與內碼
10.3串口的用途
10.3.1調試
10.3.2信號發生器方案大變樣
第11章遺忘的A/D采樣
11.1模/數轉換
11.1.1什么是模/數轉換
11.1.2PCF8591的模/數轉換
11.2采樣與輸出
11.2.1電位器采樣
11.2.2NTC與光敏電阻
第12章雜七雜八
12.11602液晶
12.1.1液晶屏相關參數
12.1.2操作時序及指令
12.1.3液晶顯示例程
12.2紅外遙控
12.2.1紅外遙控的初步接觸
12.2.2紅外遙控的通信方式
12.2.3紅外遙控編程實例
12.2.4433模塊的解碼
12.3溫度傳感器DS18B20
12.3.1DS18B20的初步了解
12.3.2控制DS18B20的指令
12.3.3DS18B20的工作時序
12.3.4DS18B20的實例
第13章善假于物
13.1百度與搜索
13.1.1直接搜索
13.1.2關鍵字搜索
13.2QQ與求人
13.2.1技術討論群
13.2.2QQ群提問的忌諱
13.2.3提問的藝術
參考文獻
后記