C8051F系列單片機開發與C語言編程

C8051F系列單片機開發與C語言編程

《C8051F系列單片機開發與C語言編程》是2009年北京航天航空大學出版社出版的圖書,作者是童長飛。

基本信息

概述

在介紹C8051Fxxx單片機工作原理的基礎上,對單片機外設adc、dac、比較器、定時器、pwm、方波輸出和定時器捕捉等均給出調試代碼;在匯流排方面,對can,SMBusi2c,spi和uart均給出雙機調試代碼和一些高層套用,以幫助讀者更好地理解單片機工作原理;還增加了lcd、紅外編碼解碼、步進電機、直流電機、舵機、超聲測距、i2crom及串列時鐘等方面的套用,以提高實用性。

本書實例較多,而且採用c語言編程,程式代碼可讀性和移植性強,大部分代碼稍加修改即可成為其他型號單片機的子程式;

本書可作為使用C8051F系列單片機進行產品開發的工程技術人員的硬體和軟體設計參考書,部分內容對其他類型單片機的開發也具有一定的參考價值。

目錄

第1章keilc編程

1.1keilc快速入門1

1.1.1檔案載入1

1.1.2連線埠硬體操作5

1.1.3中斷操作7

1.1.4存儲空間分配11

1.1.5指針13

1.2keilc集成軟體設定20

1.2.1medwin設定和c51晶片燒寫20

1.2.2silabs集成軟體設定22

1.2.3在μvision51中調試silabs單片機24

1.2.4其他深入學習資料24

1.3最佳化程式24

1.4keilc庫函式25

1.4.1ctype.h字元函式25

1.4.2stdio.h標準i/o函式27

1.4.3string.h字元串函式31

1.4.4stdlib.h標準庫函式33

1.4.5math.h數學函式34

1.4.6absacc.h絕對地址訪問函式35

.1.4.7intrins.h內部函式35

1.4.8stdarg.h變數參數表36

1.4.9setjmp.h全程跳轉函式37

第2章cip51處理器

2.1cip51處理器特性38

2.2存儲組織結構41

2.3中斷系統43

2.4電源管理模式45

2.5cip51暫存器46

2.5.1sfrpgcn(sfrpagecontrolregister)46

2.5.2sfrpage(sfrpageregister)47

2.5.3sfrnext(sfrnextregister)47

2.5.4sfrlast(sfrlastregister)47

2.5.5sp(stackpointer)48

2.5.6DPL(datapointerlow)48

2.5.7DPH(datapointerhigh)48

2.5.8psw(programstatusword)49

2.5.9acc(accumulator)50

2.5.10b(bregister)50

2.5.11ie(interruptenable)50

2.5.12ip(interruptpriority)51

2.5.13eie1(extendedinterruptenable1)52

2.5.14eie2(extendedinterruptenable2)53

2.5.15eip1(extendedinterruptpriority1)54

2.5.16eip2(extendedinterruptpriority2)54

2.5.17pcon(powercontrol)55

第3章12位模/數轉換器adc0

3.1模擬通道選擇器和pga可調增益56

3.1.1amux模擬輸入配置57

3.1.2hvda高壓差動放大器58

3.2adc0工作模式60

3.2.1adc0啟動方式60

3.2.2adc0跟蹤模式61

3.2.3adc0信號建立時間62

3.3內部溫度感測器63

3.4adc0可程式監控模組63

3.5adc0電氣參數67

3.6參考電壓68

3.6.1參考電壓工作原理68

3.6.2參考電壓設定暫存器70

3.7adc0暫存器71

3.7.1amx0cf(amux0configurationregister)71

3.7.2amx0sl(amux0channelselectregister)71

3.7.3hva0cn(highvoltagedifferenceamplifiercontrolregister)72

3.7.4adc0cf(adc0configurationregister)73

3.7.5adc0cn(adc0controlregister)74

3.7.6adc0h(adc0datawordmsbregister)75

3.7.7adc0l(adc0datawordlsbregister)75

3.7.8adc0gth(adc0greaterthandatahighbyteregister)76

3.7.9adc0gtl(adc0greaterthandatalowbyteregister)76

3.7.10adc0lth(adc0lessthandatahighbyteregister)76

3.7.11adc0ltl(adc0lessthandatalowbyteregister)77

3.8adc0調試例程77

例程31內部溫度感測器77

例程32利用過採樣實現16位adc轉換80

例程33adc0單端輸入模式86

例程34adc0差動輸入模式90

例程35高差壓輸入adc0轉換94

例程36adc0監控中斷101

第4章8位模/數轉換器adc2

4.1adc2操作模式106

4.1.1adc2啟動模式107

4.1.2adc2跟蹤模式107

4.1.3adc2信號建立時間107

4.2adc2可程式監控模組108

4.3adc2電氣參數109

4.4adc2暫存器111

4.4.1amx2cf(amux2configurationregister)111

4.4.2amx2sl(amux2channelselectregister)111

4.4.3adc2cf(adc2configurationregister)112

4.4.4adc2cn(adc2controlregister)113

4.4.5adc2(adc2datawordregister)114

4.4.6adc2gt(adc2greaterthandataregister)115

4.4.7adc2lt(adc2lessthandataregister)116

4.5adc2調試例程116

第5章12位數/模轉換器dac

5.1dac輸出調度121

5.2dac操作暫存器122

5.2.1dac0h(dac0highbyteregister)122

5.2.2dac0l(dac0lowbyteregister)123

5.2.3dac0cn(dac0controlregister)123

5.2.4dac1h(dac1highbyteregister)124

5.2.5dac1l(dac1lowbyteregister)124

5.2.6dac1cn(dac1controlregister)125

5.3dac電氣參數126

5.4dac調試例程127

第6章比較器

6.1比較器工作暫存器132

6.1.1cptncn(comparator0,1and2controlregister)132

6.1.2cptnmd(comparatormodeselectionregister)133

6.2比較器電氣參數133

6.3比較器調試例程134

第7章reset復位源

7.1上電復位(power?onreset)140

7.2失電復位(power?failreset)141

7.3外部復位(externalreset)141

7.4時鐘失步監測復位(missingclockdetectorreset)141

7.5比較器0復位(comparator0reset)142

7.6外部cnvstr0復位(externalcnvstr0pinreset)142

7.7看門狗復位(watchdogtimerreset)142

7.8看門狗與復位源暫存器143

7.8.1wdtcn(watchdogtimercontrolregister)143

7.8.2rstsrc(resetsourceregister)144

7.9復位電氣參數145

第8章晶振

8.1可程式內部晶振147

8.2內部晶振電氣參數149

8.3外部晶振驅動電路149

第9章快閃記憶體

9.1快閃記憶體編程153

9.2快閃記憶體安全技術154

9.3快閃記憶體操作暫存器154

9.3.1flscl(flashmemorycontrol)154

9.3.2psctl(programstoreread/writecontrol)155

9.3.3flacl(flashaccesslimit)155

9.4快閃記憶體調試例程156

第10章記憶體

10.1記憶體訪問方式159

10.2xram接口選擇與配置160

10.3xram數據地址復用模式與非復用模式161

10.3.1數據地址復用模式161

10.3.2數據地址非復用模式162

10.4xram訪問控制時序162

10.4.1數據地址非復用模式時序162

10.4.2數據地址復用模式時序165

10.5記憶體控制暫存器168

10.5.1emi0cn(externalmemoryinterfacecontrol)168

10.5.2emi0cf(externalmemoryconfiguration)169

10.5.3emi0tc(externalmemorytimingcontrol)170

10.6外部記憶體接口時序參數171

第11章輸入/輸出連線埠

11.1p0~p3交叉開關配置173

11.2i/o連線埠配置176

11.2.1i/o連線埠輸出模式配置178

11.2.2i/o連線埠輸入模式配置179

11.3i/o連線埠暫存器179

11.3.1xbr0(porti/ocrossbarregister0)179

11.3.2xbr1(porti/ocrossbarregister1)180

11.3.3xbr2(porti/ocrossbarregister2)181

11.3.4xbr3(porti/ocrossbarregister3)182

11.3.5p0(port0dataregister)183

11.3.6p0mdout(port0outputmoderegister)183

11.3.7p1(port1dataregister)184

11.3.8p1mdin(port1inputmoderegister)184

11.3.9p1mdout(port1outputmoderegister)185

11.3.10p2(port2dataregister)185

11.3.11p2mdin(port2inputmoderegister)185

11.3.12p2mdout(port2outputmoderegister)186

11.3.13p3(port3dataregister)186

11.3.14p3mdin(port3inputmoderegister)187

11.3.15p3mdout(port3outputmoderegister)187

11.3.16p4(port4dataregister)187

11.3.17p4mdout(port4outputmoderegister)188

11.3.18p5(port5dataregister)188

11.3.19p5mdout(port5outputmoderegister)189

11.3.20p6(port6dataregister)189

11.3.21p6mdout(port6outputmoderegister)189

11.3.22p7(port7dataregister)190

11.3.23p7mdout(port7outputmoderegister)190

第12章can

12.1can簡介191

12.2can協定192

12.2.1數據幀194

12.2.2遠程幀197

12.2.3錯誤幀197

12.2.4過載幀198

12.2.5幀間空間199

12.2.6can匯流排其他相關定義和要求200

12.3can控制器暫存器204

12.3.1cancontrolregister(addresses0x01&0x00)205

12.3.2statusregister(addresses0x03&0x02)206

12.3.3errorcounter(addresses0x05&0x04)207

12.3.4bittimingregister(addresses0x07&0x06)207

12.3.5testregister(addresses0x0b&0x0a)208

12.3.6brpextensionregister(addresses0x0d&0x0c)208

12.3.7ifxcommandrequestregisters209

12.3.8ifxcommandmaskregisters209

12.3.9ifxmaskregisters211

12.3.10ifxarbitrationregisters212

12.3.11ifxmessagecontrolregisters212

12.3.12ifxdataaanddatabregisters214

12.3.13interruptregister(addresses0x09&0x08)214

12.3.14transmissionrequestregisters215

12.3.15newdataregisters215

12.3.16interruptpendingregisters215

12.3.17messagevalid1register216

12.3.18記憶體數據幀報文結構示意圖216

12.4can測試模式216

12.4.1靜音模式216

12.4.2迴路模式217

12.4.3迴路靜音模式217

12.4.4基本模式218

12.5can波特率設定218

12.6can調試例程223

例程121can雙節點通信223

例程122can多訊息通信231

例程123can互動收/發通信236

例程124can遠程幀控制244

12.7can外圍電路252

第13章smbus匯流排

13.1i2c匯流排簡介255

13.2smbus概述257

13.3smbus器件連線257

13.4smbus協定258

13.4.1smbus時序258

13.4.2smbus仲裁259

13.4.3smbus傳輸模式260

13.5smbus暫存器262

13.5.1smb0cn(smbus0controlregister)263

13.5.2smb0cr(smbus0clockrateregister)265

13.5.3smb0dat(smbus0dataregister)265

13.5.4smb0adr(smbus0addressregister)266

13.5.5smb0sta(smbus0statusregister)266

13.6smbus調試例程268

13.6.1利用配置嚮導完成smbus初始化268

13.6.2smbus主發從收調試過程280

13.6.3smbus主收從發調試過程285

13.6.4套用smbus實現記憶體互訪290

第14章spi匯流排

14.1spi信號描述301

14.1.1mosi控制線301

14.1.2MISO控制線301

14.1.3sck時鐘線301

14.1.4nss片選線302

14.2spi0傳輸模式303

14.2.1spi0主機模式303

14.2.2spi0從機模式304

14.3spi0中斷源304

14.4spi0時鐘305

14.5spi暫存器306

14.5.1spi0cfg(spi0configurationregister)307

14.5.2spi0cn(spi0controlregister)308

14.5.3spi0ckr(spi0clockrateregister)309

14.5.4spi0dat(spi0dataregister)309

14.6spi調試例程310

第15章uart0串列通信

15.1uart0工作模式316

15.1.1模式0316

15.1.2模式1317

15.1.3模式2318

15.1.4模式3319

15.2uart0多機通信319

15.2.1禁止地址控制320

15.2.2廣播地址控制320

15.3uart0標準波特率設定321

15.4uart0暫存器322

15.4.1scon0(uart0controlregister)323

15.4.2ssta0(uart0statusandclockselectionregister)324

15.4.3sbuf0(uart0databufferregister)325

15.4.4saddr0(uart0slaveaddressregister)325

15.4.5saden0(uart0slaveaddressenableregister)325

15.5uart0調試例程326

例程151uart0模式1全雙工通信326

例程152uart0模式3多機通信332

第16章uart1串列通信

16.1uart1增強型波特率產生器340

16.2uart1工作模式344

16.2.18位工作模式345

16.2.29位工作模式345

16.3uart1多機通信346

16.4uart1暫存器346

16.4.1scon1(serialport1controlregister)346

16.4.2sbuf1(serialuart1portdatabufferregister)347

16.5uart1調試例程348

例程161uart18位模式雙機通信348

例程162uart1多機通信353

第17章定時器

17.1t0和t1359

17.1.113位定時/計數模式(mode0)359

17.1.216位定時/計數器(mode1)363

17.1.38位自動重載定時/計數器(mode2)363

17.1.48位雙定時/計數器(mode3)364

17.2t0和t1暫存器365

17.2.1TCON(timercontrolregister)365

17.2.2TMOD(timermoderegister)366

17.2.3ckcon(clockcontrolregister)367

17.2.4tl0(timer0lowbyte)368

17.2.5tl1(timer1lowbyte)368

17.2.6th0(timer0highbyte)368

17.2.7th1(timer1highbyte)368

17.3t2,t3和t4定時/計數器369

17.3.1t2,t3和t4雙向計數369

17.3.2捕捉模式369

17.3.3自動重載模式370

17.3.4方波輸出模式371

17.4t2,t3和t4暫存器371

17.4.1tmrncn(timerncontrolregisters)371

17.4.2tmrncf(timernconfigurationregisters)372

17.4.3rcapnl(timerncaptureregisterlowbyte)373

17.4.4rcapnh(timerncaptureregisterhighbyte)374

17.4.5tmrnl(timernlowbyte)374

17.4.6tmrnh(timernhighbyte)374

17.5定時器調試例程375

例程171t3可調頻率方波輸出375

例程172t法測頻377

例程173t4捕捉測脈寬387

第18章pca可程式計數器陣列

18.1pca定時/計數器393

18.2捕捉/比較模組394

18.2.1邊沿捕捉模式395

18.2.2定時模式396

18.2.3高速輸出模式397

18.2.4頻率輸出模式397

18.2.58位pwm輸出模式398

18.2.616位pwm輸出模式398

18.3pca0暫存器399

18.3.1pca0cn(pcacontrolregister)399

18.3.2pca0md(pca0moderegister)400

18.3.3pca0cpmn(pca0capture/comparemoderegisters)401

18.3.4pca0l(pca0counter/timerlowbyte)402

18.3.5pca0h(pca0counter/timerhighbyte)402

18.3.6pca0cpln(pca0capturemodulelowbyte)402

18.3.7pca0cphn(pca0capturemodulehighbyte)403

18.4pca調試例程403

例程181pca捕捉測脈寬403

例程182pca高速輸出模式408

例程183pca可調頻率方波輸出413

例程184pca8位pwm脈寬調製416

例程185可變周期pwm脈寬調製418

例程186用pca檢測uart0波特率421

第19章lcd輸入/輸出子系統

19.1lcd控制器lc1621428

19.2lc1621操作原理432

19.3lc1621指令描述436

19.4lc1621單片機接口操作439

19.5lcd調試例程443

例程191lcd虛擬時序實現和顯示操作444

例程192用庫函式printf()實現lcd顯示操作449

例程193輸入/輸出子系統與lcd選單操作實現454

第20章單片機套用

20.1串列可擦寫romat24c256操作469

20.2ht1380時鐘晶片控制477

20.3直流電機驅動控制488

20.4步進電機控制493

20.5舵機控制499

20.6超音波感測器測距505

20.7紅外編碼/解碼510

20.7.1紅外遙控原理510

20.7.2紅外編碼/解碼電路512

20.7.3紅外編碼/解碼調試代碼513

20.7.4用MCS51實現紅外遙控521附錄acip51指令集

附錄bc8051f040封裝及引腳說明

附錄c中斷矢量

附錄d隨書光碟內容、各種資料資源及軟體安裝說明

附錄ec8051f單片機開發工具

參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們