1. (1小時學會c語言51單片機)C語言入門教程
51作為學習入門,確實是最最基礎的了,不過至少它可以讓一個新手明白控制是怎麼回事,反饋是怎麼回事,程序是怎麼下載進去運行,又是怎麼控制到io輸入輸出的,如何去訪問寄存器,掌握一套在嵌入式領悟最最基本的開發方法和學習思路。這部分如果有興趣,建議學習時間不要超過兩個月。
1.c語言,及部分匯編代碼
2.用一個月時間看完做完郭天祥的十天學會51單片機
3.買一塊開發板
4.學習能夠看懂看會原理圖
5.掌握搜集資料,datasheet查找閱讀英文手冊的能力
6.自己動手動手動手做一個簡單的功能
最後,我其實不建議51入門,可以直接stm32,雖然他還是單片機。不過十年前我當初也是51入門的,樂此不疲。至於忽悠你什麼協議,內核,我覺得讓一個大一嵌入式新手學這些,無疑沒有基礎就想建高樓,所以踏踏實實從基礎開始,大學就是注重基礎,學習能力!
2. 單片機c語言編程時會用到哪些常用的C語
關鍵字
用 途
說 明
auto
存儲種類說明
用以說明局部變數,預設值為此
break
程序語句
退出最內層循環
case
程序語句
Switch語句中的選擇項
char
數據類型說明
單位元組整型數或字元型數據
const
存儲類型說明
在程序執行過程中不可更改的常量值
continue
程序語句
轉向下一次循環
default
程序語句
Switch語句中的失敗選擇項
do
程序語句
構成do..while循環結構
double
數據類型說明
雙精度浮點數
else
程序語句
構成if..else選擇結構
enum
數據類型說明
枚舉
extern
存儲種類說明
在其他程序模塊中說明了的全局變數
flost
數據類型說明
單精度浮點數
for
程序語句
構成for循環結構
goto
程序語句
構成goto轉移結構
if
程序語句
構成if..else選擇結構
int
數據類型說明
基本整型數
long
數據類型說明
長整型數
register
存儲種類說明
使用CPU內部寄存的變數
return
程序語句
函數返回
short
數據類型說明
短整型數
signed
數據類型說明
有符號數,二進制數據的最高位為符號位
sizeof
運算符
計算表達式或數據類型的位元組數
static
存儲種類說明
靜態變數
struct
數據類型說明
結構類型數據
swicth
程序語句
構成switch選擇結構
typedef
數據類型說明
重新進行數據類型定義
union
數據類型說明
聯合類型數據
unsigned
數據類型說明
無符號數數據
void
數據類型說明
無類型數據
volatile
數據類型說明
該變數在程序執行中可被隱含地改變
while
程序語句
構成while和do..while循環結構
附表1-1 ANSIC標准關鍵字
關鍵字
用 途
說 明
bit
位標量聲明
聲明一個位標量或位類型的函數
sbit
位標量聲明
聲明一個可位定址變數
Sfr
特殊功能寄存器聲明
聲明一個特殊功能寄存器
Sfr16
特殊功能寄存器聲明
聲明一個16位的特殊功能寄存器
data
存儲器類型說明
直接定址的內部數據存儲器
bdata
存儲器類型說明
可位定址的內部數據存儲器
idata
存儲器類型說明
間接定址的內部數據存儲器
pdata
存儲器類型說明
分頁定址的外部數據存儲器
xdata
存儲器類型說明
外部數據存儲器
code
存儲器類型說明
程序存儲器
interrupt
中斷函數說明
定義一個中斷函數
reentrant
再入函數說明
定義一個再入函數
using
寄存器組定義
定義晶元的工作寄存器
附表1-2 C51編譯器的擴展關鍵字
附錄二 AT89C51特殊功能寄存器列表(適用於同一架構的晶元)
符 號
地 址
注 釋
*ACC
E0H
累加器
*B
F0H
乘法寄存器
*PSW
D0H
程序狀態字
SP
81H
堆棧指針
DPL
82H
數據存儲器指針低8位
DPH
83H
數據存儲器指針高8位
*IE
A8H
中斷允許控制器
*IP
D8H
中斷優先控制器
*P0
80H
埠0
*P1
90H
埠1
*P2
A0H
埠2
*P3
B0H
埠3
PCON
87H
電源控制及波特率選擇
*SCON
98H
串列口控制器
SBUF
99H
串列數據緩沖器
*TCON
88H
定時器控制
TMOD
89H
定時器方式選擇
TL0
8AH
定時器0低8位
TL1
8BH
定時器1低8位
TH0
8CH
定時器0低8位
TH1
8DH
定時器1高8位
帶*號的特殊功能寄存器都是可以位定址的寄存器
3. 單片機C語言程序,看不懂,求講解
「T0中斷服務程序不是一個子程序嗎?但沒看見在主程序中調用這個子程序啊,求講解這個程序命令的運行過程,定時器怎麼中斷的?」
該子程序是在硬體產生中斷的時候,跳轉到相應中斷入口後,再跳轉到這個中斷服務程序的。請注意函數後面的「interrupt x」聲明,這是C51的擴展內容。
「用示波器測波形是測p1.0引腳,為什麼是這個引腳,怎麼確定的?p1_0不是個變數名嗎?」
P1_0這個符號在前面的頭文件 t89c51cc02.h 中有定義。至於「為什麼是這個引腳」,是由硬體設計及本程序共同確定的。P1_0(不是你寫的p1_0,C語言要區分大小寫哦)代表P1口的第0管腳,在頭文件中通過sbit定義。
「為什麼T0中斷服務程序和主程序中都有T0的初值,設置還是一樣,他們有什麼關系?」
主程序前面的是對Timer0初始化,賦以初值。執行 TR0 = 1; 這一句以後,Timer0就開始運行了——TL0與TH0組成的13位計數器開始不斷遞增。當13位全部為1之後,再遞增就全部為0,此時溢出事件會觸發產生定時器0,同時計數器仍然在繼續計數——為了讓時間間隔保持一致,就需要再度將計數器賦以初值。
4. 51單片機C語言應用程序設計實例精講的目錄
第1章51單片機開發的基礎知識
1.151單片機的硬體結構
1.1.1功能模塊
1.1.2CPU
1.1.3並行I/O埠
1.1.4存儲囂結構
1.1.5定時/計數器
1.1.6串列口
1.1.7中斷系統
1.251單片機的指令系統
1.2.1定址方式
1.2.2指令說明
1.2.3指令系統表
1.3本章總結
第2章C語言程序各語句用法與意義
2.1數據結構
2.1.1數據類型
2.1.2變數與常量
2.1.3數組
2.1.4指針
2.1.5結構
2.1.6共用體
2.1.7枚舉
2.2運算符與表達式
2.2.1運算符分類與優先順序
2.2.2算術運算符與表達式
2.2.3關系運算符與表達式
2.2.4邏輯運算符與表達式
2.2.5位操作運算符與表達式
2.2.6賦值運算符與表達式
2.3程序結構與函數
2.3.1程序結構
2.3.2函數
2.4流程式控制制語句
2.4.1選擇語句
2.4.2循環語句
2.4.3轉移語句
2.5本章總結
第3章Keil8051C編譯器
3.1Keil編譯器簡介
3.2使用Keil開發應用軟體
3.2.1建立工程
3.2.2工程的設置
3.2.3編譯與連接
3.3dScopeforWindows的使用
3.3.1如何啟動
3.3.2如何調試
3.3.3調試窗口
3.4本章總結 第4章單片機實現液晶顯示
4.1實例說明
4.2設計思路分析
4.2.1液晶顯示模塊
4.2.2液晶顯示工作原理
4.2.3設計思路
4.3硬體電路設計
4.3.1器件選取
4.3.2電源模塊
4.3.3液晶顯示模塊
4.3.4單片機模塊
4.4軟體設計
4.4.1液晶控制驅動囂指令集
4.4.2程序說明
4.5實例總結
第5章基於MAX7219的8位數碼管顯示
5.1實例說明
5.2設計思路分析
5.2.1LED顯示驅動晶元的選取
5.2.2MAX7219的工作原理
5.3硬體電路設計
5.3.1主要器件
5.3.2電路原理圖
5.4軟體設計
5.4.1MAX7219的工作時序和寄存器描述
5.4.2程序說明
5.5實例總結
第6章鍵盤輸入實例——實現4x4鍵盤
6.1實例說明
6.2設計思路分析
6.3硬體電路設計
6.4軟體設計
6.5實例總結
第7章單片機實現語音錄放
7.1實例說明
7.2設計思路分析
7.2.1語音晶元選取
7.2.2語音晶元1SD2560簡介
7.3硬體電路設計
7.3.1主要器件
7.3.2電路原理圖及說明
7.4軟體設計
7.4.1程序流程
7.4.2程序說明
7.5實例總結 第8章基於MAX197的並行A/D轉換
8.1實例說明
8.2設計思路分析
8.2.1A/D轉換原理
8.2.2如何選擇A/D轉換器件
8.2.3A/D轉換器對電源電路的要求
8.3硬體電路設計
8.3.1主要器件
8.3.2電路原理圖及說明
8.4軟體設計
8.4.1MAX197控制字
8.4.2程序流程
8.4.3程序說明
8.5實例總結
第9章基於TLC549的串列A/D轉換
9.1實例說明
9.2設計思路分析
9.2.1晶元選取
9.2.2工作原理
9.3硬體電路設計
9.3.1主要器件
9.3.2電路原理圖及說明
9.4軟體設計
9.4.1轉換過程和時序要求
9.4.2程序流程
9.4.3程序說明
9.5實例總結
第10章基於MAX527的並行D/A轉換
10.1實例說明
10.2設計思路分析
10.2.1D/A轉換原理
10.2.2如何選擇D/A轉換器件
10.2.3D/A轉換器對電源電路的要求
10.3硬體電路設計
10.3.1主要器件
10.3.2電路原理圖及說明
10.4軟體設計
10.4.1MAX527的地址和重要引腳
10.4.2程序流程
10.4.3程序說明
10.5實例總結
第11章基於MAX517的串列D/A轉換
11.1實例說明
11.2設計思路分析
11.2.1晶元選取
11.2.2工作原理
11.3硬體電路設計
11.3.1主要器件
11.3.2電路原理圖及說明
11.4軟體設計
11.4.1時序要求和轉換過程
11.4.2程序說明
11.5實例總結
第12章基於SHT71數字溫/濕度感測器的採集實現
12.1實例說明
12.2設計思路分析
12.2.1SHT71性能概述
12.2.2SHT71的功能說明
12.2.3SHT71的引腳尺寸和說明
12.3硬體電路設計
12.4軟體設計
12.4.1SHT71的操作方法
12.42程序流程
12.4.3源程序清單
12.5實例總結
第13章基於DS1624的數字溫度計設計
13.1實例說明
13.1.2設計思路分析
13.2.1DS1624簡介
13.2.2DS1624基本特性
13.2.3DS1624工作原理
13.2.4DS1624工作方式
13.2.5DS1624的指令集
13.3硬體電路設計
13.3.1硬體設計
13.3.2原理科及其說明
13.4軟體設計
13.4.1程序流程
13.4.2程序說明
13.5實例總結 第14章基於DS12C887的實時日歷時鍾顯示系統設計
14.1實例說明
14.2設計思路分析
14.2.1選擇合適的日歷時鍾晶元7
14.2.2如何由DS12C887晶元獲取時間信息
14.3硬體電路設計
14.3.1結構框圖
14.3.2主要器件
14.3.3電路原理圖及說明
14.4軟體設計
14.4.1DS12C877的內存空間
14.4.2程序流程
14.4.3程序代碼及說明
14.5實例總結
第15章單片機控制的步進電機系統
15.1實例說明
15.2設計思路分析
15.2.1步進電機的工作原理
15.2.2步進電機的控制
15.2.3脈沖分配與驅動晶元的選取
15.3硬體電路設計
15.3.1結構框圖
15.3.2主要器件
15.3.3電路原理圖廈說明
15.4軟體設計
15.4.1程序流程
15.4.2程序說明
15.5實例總結
第16章基於MAX1898的智能充電器設計
16.1實例說明
16.2設計思路分析
16.2.1為何需要實現充電器的智能化
16.2.2如何選擇電池充電晶元
16.2.3MAX1898的充電工作原理
16.3硬體電路設計
16.3.1主要器件
16.3.2電路原理圖及說明
16.4軟體設計
16.4.1程序流程
16.4.2程序說明
16.5實例總結 第17章基於NORFlashAM29LV320的數據存儲
17.1實例說明
17.2設計思路分析
17.2.1晶元AM29LV320
17.2.2具體設計思路
17.3硬體電路設計
17.4軟體設計
17.4.1AM29LV320的命令與狀態
17.4.2串列非同步數據傳輸
17.4.3程序代碼說明
17.5實例總結
第18章基於XC95144的串口擴展
18.1實例說明
18.2設計思路分析
18.2.1串口發送的設計
18.2.2串口接收的設計
18.2.3串口模塊的設計l
18.3硬體電路設計
18.4軟體設計
18.4.1CPLD的設計原理圖
18.4.2C51單片機程序代碼說明
18.5實例總結
第19章基於8255擴展並行口
19.1實例說明
19.2設計思路分析
19.2.1並行口擴展的原理
19.2.2晶元選擇
19.3硬體電路設計
19.4軟體設計
19.5實例總結 第20章單片機實現智能信號發生器
第21章單片機實現步進式PWM信號輸出
第22章單片機實現CRC演算法
第23章單片機實現軟體濾波
第七篇通信傳輸系統設計
第24章單片機實現點對點的數據傳輸
第25章單片機實現點對多點的數據傳輸
第26章單片機實現乙太網介面
第27章單片機實現1C匯流排通信
第28章單片機實現RS-485匯流排現場監測系統
第29章CAN匯流排介面通信設計
第八篇電源監控與抗干擾設計
第30章單片機監控電路設計
第31章光電隔離電路設計 附錄A匯編語言與C語言的混合編程
附錄B實例配套實驗箱
5. 新概念51單片機C語言教程的作品目錄
第1篇入門篇
1.1單片機概述
1.1.1什麼是單片機
1.1.2單片機標號信息及封裝類型
1.1.3單片機能做什麼
1.1.4如何開始學習單片機
1.251單片機外部引腳介紹
1.3電平特性
1.4二進制與十六進制
1.4.1二進制
1.4.2十六進制
1.5二進制的邏輯運算
1.5.1與
1.5.2或
1.5.3非
1.5.4同或
1.5.5異或
1.6單片機的C51基礎知識介紹
1.6.1利用C語言開發單片機的優點
1.6.2C51中的基本數據類型
1.6.3C51數據類型擴充定義
1.6.4C51中常用的頭文件
1.6.5C51中的運算符
1.6.6C51中的基礎語句
1.6.7學習單片機應該掌握的主要內容
2.1Keil工程建立及常用按鈕介紹
2.1.1Keil工程的建立
2.1.2常用按鈕介紹
2.2點亮第一個發光二極體
2.3while語句
2.4for語句及簡單延時語句
2.5Keil模擬及延時語句的精確計算
2.6不帶參數函數的寫法及調用
2.7帶參數函數的寫法及調用
2.8利用C51庫函數實現流水燈
第2篇內外部資源操作篇
3.1數碼管顯示原理
3.2數碼管靜態顯示
3.3數碼管動態顯示
3.4中斷概念
3.5單片機的定時器中斷
4.1獨立鍵盤檢測
4.2矩陣鍵盤檢測
5.1模擬量與數字量概述
5.2A/D轉換原理及參數指標
5.3ADC0804工作原理及其實現方法
5.4D/A轉換原理及其參數指標
5.5DAC0832工作原理及實現方法
5.6DAC0832輸出電流轉換成電壓的方法
第6章串列口通信原理及操作流程
6.1並行與串列基本通信方式
6.2RS-232電平與TTL電平的轉換
6.3波特率與定時器初值的關系
6.451單片機串列口結構描述
6.5串列口方式1編程與實現
6.6串列口列印在調試程序中的應用
第7章通用型1602,12232,12864液晶操作方法
7.1液晶概述
7.2常用1602液晶操作實例
7.3常用12232液晶操作實例
7.4常用12864液晶操作實例
第8章I2C匯流排AT24C02晶元應用
8.1I2C匯流排概述
8.2單片機模擬I2C匯流排通信
8.3E2PROMAT24C02與單片機的通信實例
第9章基礎運放電路專題
9.1運放概述及參數介紹
9.2反相放大器
9.3同相放大器
9.4電壓跟隨器
9.5加法器
9.6差分放大器
9.7微分器
9.8積分器
第3篇提高篇
第10章定時器/計數器應用提高
10.1方式0應用
10.2方式2應用
10.3方式3應用
10.452單片機定時器2介紹
10.5計數器應用
第11章串列口應用提高
11.1方式0應用
11.2方式2和方式3應用
11.3單片機雙機通信
11.4單片機多機通信
第12章指針
12.1指針與指針變數
12.1.1內存單元、地址和指針
12.1.2指針變數的定義、賦值與引用
12.2指針變數的運算
12.3指針與數組
12.3.1指針與一維數組
12.3.2指針與多維數組
12.4指針與函數
12.4.1指針作為函數的參數
12.4.2指向函數的指針
12.4.3指針型函數
12.5指針與字元串
12.5.1字元串的表達形式
12.5.2字元指針作為函數參數
12.5.3使用字元指針與字元數組的區別
12.6指針數組與命令行參數
12.6.1指針數組的定義和使用
12.6.2指向指針的指針
12.6.3指針數組作為main()函數的命令行參數
12.7指針小結
12.7.1指針概念綜述
12.7.2指針運算小結
12.7.3等價表達式
12.8C51中指針的使用
12.8.1指針變數的定義
12.8.2指針應用
第13章STC系列51單片機功能介紹
13.1單片機空閑與掉電模式應用
13.2「看門狗」概念及其應用
13.3用軟體實現系統復位
13.4內部擴展RAM的應用
13.5擴展P4口的應用
13.6內部E2PROM的應用
13.7STC89系列單片機內部A/D應用
13.8STC12系列單片機內部A/D應用
13.9STC12系列單片機的PCA/PWM介紹
13.10STC12系列單片機的SPI介面介紹
13.11STC12系列單片機的「576MHz」超速運行
第4篇實戰篇
第14章利用51單片機的定時器設計一個時鍾
14.1如何從矩陣鍵盤中分解出獨立按鍵
14.2原理圖分析
14.3實例講解
第15章使用DS12C887時鍾晶元設計高精度時鍾
15.1時鍾晶元概述
15.2DS12C887時鍾晶元介紹
15.3如何用TX-1C實驗板擴展本實驗
15.4原理圖分析
15.5實例講解
第16章使用DS18B20溫度感測器設計溫控系統
16.1溫度感測器概述
16.2DS18B20溫度感測器介紹
16.3實例講解
第17章太陽能充/放電控制器
17.1控制器原理圖分析
17.2控制器板上元件介紹
17.3實例講解
第18章VC、VB(MSCOMM控制項)與單片機通信實現溫度顯示
18.1VCMSCOMM控制項與單片機通信實現溫度顯示
18.2VBMSCOMM控制項與單片機通信實現溫度顯示
第5篇拓展篇
第19章使用Protell99繪制電路圖全過程
19.1繪制電路板概述
19.2建立工程
19.3製作元件庫
19.4添加封裝及製作PCB封裝庫
19.5錯誤檢查及生成PCB
19.6布線電氣特性設置
19.7自動布線和手動布線
第20章ISD400x系列語音晶元應用
20.1ISD400x系列語音晶元介紹
20.2ISD400x系列語音晶元操作規則
20.3ISD400x系列語音晶元應用實現
第21章電機專題
21.1直流電機原理及應用
21.2步進電機原理及應用
21.3舵機原理及其應用
第22章常用元器件介紹
22.1二極體
22.2電容
22.3場效應管
22.4光耦
22.5蜂鳴器
22.6繼電器
22.7自恢復保險
22.8瞬態電壓抑制器
22.9晶閘管(可控硅)
22.10電荷泵
第23章直流穩壓電源專題
23.1整流電路
23.2濾波電路
23.3穩壓電路
23.4集成穩壓模塊的使用
23.5串聯開關型穩壓電源
第24章運放擴展專題
24.1簡單低通濾波器
24.2「電流-電壓」轉換電路
24.3光電放大器
24.4精密電流源
24.5可調參考電壓源
24.6復位穩定放大器
24.7模擬乘法器
24.8全波整流器和平均值濾波器
24.9正弦波振盪器
24.10三角波發生器
24.11自動跟蹤對稱電源
24.12可調實驗電源
24.13運放相關術語表
附錄A天祥電子開發實驗板簡介
A.1TX-1C51單片機開發板(配套詳細視頻教程)
A.2AVR單片機開發板(配套詳細視頻教程)
A.3PIC單片機開發板(配套詳細視頻教程)
A.4J-Link全功能ARM模擬器
A.5三星S3C44B0ARM7入門級開發板
A.6三星S3C44B0ARM7提高級開發板
A.7TX-51STAR51單片機開發板(配套詳細視頻教程)
參考文獻