《C8051F系列单片机开发与C语言编程》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:童长飞编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2005
  • ISBN:7810775448
  • 页数:560 页
图书介绍:本书在介绍C8051F单片机工作原理的基础上,对单片机外设ADC、DAC、比较器、定时器、方波输入和定时器捕捉等均给出调试代码;在总线方面,对CAN、SMBUS I C、SPI等均给出双机调试代码和一些高层应用等。

目录 1

第1章 Keil C编程 1

1.1 Keil C快速入门 1

1.1.1 文件载入 1

第4章 8位模/数转换器ADC 2

1.1.2 端口硬件操作 5

1.1.3 中断操作 7

1.1.4 存储空间分配 11

1.1.5 指针 13

1.2 Keil C集成软件设置 20

1.2.1 Medwin设置和C51芯片烧写 20

1.2.2 Silabs集成软件设置 22

1.2.3 在μVision51中调试Silabs单片机 24

1.2.4 其他深入学习资料 24

1.3 优化程序 24

1.4 Keil C库函数 25

1.4.1 CTYPE.H字符函数 25

1.4.2 STDIO.H标准I/O函数 27

1.4.3 STRING.H字符串函数 31

1.4.4 STDLIB.H标准库函数 33

1.4.5 MATH.H数学函数 34

1.4.6 ABSACC.H绝对地址访问函数 35

1.4.7 INTRINS.H内部函数 35

1.4.8 STDARG.H变量参数表 36

1.4.9 SETJMP.H全程跳转函数 37

第2章 CIP51处理器 38

2.1 CIP51处理器特性 38

2.2 存储组织结构 41

2.3 中断系统 43

2.4 电源管理模式 45

2.5 CIP51寄存器 46

2.5.1 SFRPGCN(SFR Page Control Register) 46

2.5.2 SFRPAGE(SFR Page Register) 47

2.5.3 SFRNEXT(SFR Next Register) 47

2.5.4 SFRLAST(SFR Last Register) 47

2.5.5 SP(Stack Pointer) 48

2.5.6 DPL(Data Pointer Low) 48

2.5.7 DPH(Data Pointer High) 48

2.5.8 PSW(Program Status Word) 49

2.5.9 ACC(Accumulator) 50

2.5.10 B(B Register) 50

2.5.11 IE(Interrupt Enable) 50

2.5.12 IP(Interrupt Priority) 51

2.5.13 EIE1(Extended Interrupt Enable 1) 52

2.5.14 EIE2(Extended Interrupt Enable 2) 53

2.5.15 EIP1(Extended Interrupt Priority 1) 54

2.5.16 EIP2(Extended Interrupt Priority 2) 54

2.5.17 PCON(Power Control) 55

第3章 12位模/数转换器ADC 56

3.1 模拟通道选择器和PGA可调增益 56

3.1.1 AMUX模拟输入配置 57

3.1.2 HVDA高压差动放大器 58

3.2 ADC0工作模式 60

3.2.1 ADC0启动方式 60

3.2.2 ADC0跟踪模式 61

3.2.3 ADC0信号建立时间 62

3.4 ADC0可编程监控模块 63

3.3 内部温度传感器 63

3.5 ADC0电气参数 67

3.6 参考电压 68

3.6.1 参考电压工作原理 68

3.6.2 参考电压设置寄存器 70

3.7 ADC0寄存器 71

3.7.1 AMX0CF(AMUX0 Configuration Register) 71

3.7.2 AMX0SL(AMUX0 Channel Select Register) 71

3.7.3 HVA0CN(High Voltage Difference Amplifier Control Register) 72

3.7.4 ADC0CF(ADC0 Configuration Register) 73

3.7.5 ADC0CN(ADC0 Control Register) 74

3.7.6 ADC0H(ADC0 Data Word MSB Register) 75

3.7.7 ADC0L(ADC0 Data Word LSB Register) 75

3.7.9 ADC0GTL(ADC0 Greater Than Data Low Byte Register) 76

3.7.10 ADC0LTH(ADC0 Less Than Data High Byte Register) 76

3.7.8 ADC0GTH(ADC0 Greater Than Data High Byte Register) 76

3.7.11 ADC0LTL(ADC0 Less Than Data Low Byte Register) 77

3.8 ADC0调试例程 77

例程3-1 内部温度传感器 77

例程3-2 利用过采样实现16位ADC转换 80

例程3-3 ADC0单端输入模式 86

例程3-4 ADC0差动输入模式 90

例程3-5 高差压输入ADC0转换 94

例程3-6 ADC0监控中断 101

4.1 ADC2操作模式 106

4.1.1 ADC2启动模式 107

4.1.2 ADC2跟踪模式 107

4.1.3 ADC2信号建立时间 107

4.2 ADC2可编程监控模块 108

4.3 ADC2电气参数 109

4.4 ADC2寄存器 111

4.4.1 AMX2CF(AMUX2 Configuration Register) 111

4.4.2 AMX2SL(AMUX2 Channel Select Register) 111

4.4.3 ADC2CF(ADC2 Configuration Register) 112

4.4.4 ADC2CN(ADC2 Control Register) 113

4.4.5 ADC2(ADC2 Data Word Register) 114

4.4.6 ADC2GT(ADC2 Greater Than Data Register) 115

4.4.7 ADC2LT(ADC2 Less Than Data Register) 116

4.5 ADC2调试例程 116

第5章 12位数/模转换器DAC 121

5.1 DAC输出调度 121

5.2 DAC操作寄存器 122

5.2.1 DAC0H(DAC0 High Byte Register) 122

5.2.3 DAC0CN(DAC0 Control Register) 123

5.2.2 DAC0L(DAC0 Low Byte Register) 123

5.2.4 DAC1H(DAC1 High Byte Register) 124

5.2.5 DAC1L(DAC1 Low Byte Register) 124

5.2.6 DAC1CN(DAC1 Control Register) 125

5.3 DAC电气参数 126

5.4 DAC调试例程 127

第6章 比较器 132

6.1 比较器工作寄存器 132

6.1.1 CPTnCN(Comparator 0,1 and 2 Control Register) 132

6.1.2 CPTnMD(Comparator Mode Selection Register) 133

6.2 比较器电气参数 133

6.3 比较器调试例程 134

第7章 RESET复位源 140

7.1 上电复位(Power-on Reset) 140

7.2 失电复位(Power-fail Reset) 141

7.3 外部复位(External Reset) 141

7.4 时钟失步监测复位(Missing Clock Detector Reset) 141

7.5 比较器0复位(Comparator0 Reset) 142

7.6 外部CNVSTR0复位(External CNVSTR0 Pin Reset) 142

7.7 看门狗复位(Watchdog Timer Reset) 142

7.8 看门狗与复位源寄存器 143

7.8.1 WDTCN(Watchdog Timer Control Register) 143

7.8.2 RSTSRC(Reset Source Register) 144

7.9 复位电气参数 145

第8章 晶振 147

8.1 可编程内部晶振 147

8.2 内部晶振电气参数 149

8.3 外部晶振驱动电路 149

第9章 闪存 153

9.1 闪存编程 153

9.2 闪存安全技术 154

9.3 闪存操作寄存器 154

9.3.1 FLSCL(Flash Memory Control) 154

9.3.3 FLACL(Flash Access Limit) 155

9.3.2 PSCTL(Program Store Read/Write Control) 155

9.4 闪存调试例程 156

第10章 内存 159

10.1 内存访问方式 159

10.2 XRAM接口选择与配置 160

10.3 XRAM数据地址复用模式与非复用模式 161

10.3.1 数据地址复用模式 161

10.3.2 数据地址非复用模式 162

10.4 XRAM访问控制时序 162

10.4.1 数据地址非复用模式时序 162

10.4.2 数据地址复用模式时序 165

10.5 内存控制寄存器 168

10.5.1 EMI0CN(External Memory Interface Control) 168

10.5.2 EMI0CF(External Memory Configuration) 169

10.5.3 EMI0TC(External Memory Timing Control) 170

10.6 外部内存接口时序参数 171

第11章 输入/输出端口 173

11.1 P0~P3交叉开关配置 173

11.2 I/O端口配置 176

11.2.1 I/O端口输出模式配置 178

11.3 I/O端口寄存器 179

11.3.1 XBR0(Port I/O Crossbar Register 0) 179

11.2.2 I/O端口输入模式配置 179

11.3.2 XBR1(Port I/O Crossbar Register 1) 180

11.3.3 XBR2(Port I/O Crossbar Register 2) 181

11.3.4 XBR3(Port I/O Crossbar Register 3) 182

11.3.5 P0(Port0 Data Register) 183

11.3.6 P0MDOUT(Port0 Output Mode Register) 183

11.3.7 P1(Port1 Data Register) 184

11.3.8 P1MDIN(Port1 Input Mode Register) 184

11.3.9 P1MDOUT(Port1 Output Mode Register) 185

11.3.10 P2(Port2 Data Register) 185

11.3.11 P2MDIN(Port2 Input Mode Register) 185

11.3.13 P3(Port3 Data Register) 186

11.3.12 P2MDOUT(Port2 Output Mode Register) 186

11.3.14 P3MDIN(Port3 Input Mode Register) 187

11.3.15 P3MDOUT(Port3 Output Mode Register) 187

11.3.16 P4(Port4 Data Register) 187

11.3.17 P4MDOUT(Port4 Output Mode Register) 188

11.3.18 P5(Port5 Data Register) 188

11.3.19 P5MDOUT(Port5 Output Mode Register) 189

11.3.20 P6(Port6 Data Register) 189

11.3.21 P6MDOUT(Port6 Output Mode Register) 189

11.3.22 P7(Port7 Data Register) 190

11.3.23 P7MDOUT(Port7 Output Mode Register) 190

12.1 CAN简介 191

第12章 CAN 191

12.2 CAN协议 192

12.2.1 数据帧 194

12.2.2 远程帧 197

12.2.3 错误帧 197

12.2.4 过载帧 198

12.2.5 帧间空间 199

12.2.6 CAN总线其他相关定义和要求 200

12.3 CAN控制器寄存器 204

12.3.1 CAN Control Register(addresses 0x01 0x00) 205

12.3.2 Status Register(addresses 0x03 0x02) 206

12.3.3 Error Counter(addresses 0x05 0x04) 207

12.3.4 Bit Timing Register(addresses 0x07 0x06) 207

12.3.5 Test Register(addresses 0x0B 0x0A) 208

12.3.6 BRP Extension Register(addresses 0x0D 0x0C) 208

12.3.7 IFx Command Request Registers 209

12.3.8 IFx Command Mask Registers 209

12.3.9 IFx Mask Registers 211

12.3.10 IFx Arbitration Registers 212

12.3.11 IFx Message Control Registers 212

12.3.13 Interrupt Register(addresses 0x09 0x08) 214

12.3.12 IFx Data A and Data B Registers 214

12.3.14 Transmission Request Registers 215

12.3.15 New Data Registers 215

12.3.16 Interrupt Pending Registers 215

12.3.17 Message Valid 1 Register 216

12.3.18 内存数据帧报文结构示意图 216

12.4 CAN测试模式 216

12.4.1 静音模式 216

12.4.2 回路模式 217

12.4.3 回路静音模式 217

12.5 CAN波特率设置 218

12.4.4 基本模式 218

12.6 CAN调试例程 223

例程12-1 CAN双节点通信 223

例程12-2 CAN多消息通信 231

例程12-3 CAN交互收/发通信 236

例程12-4 CAN远程帧控制 244

12.7 CAN外围电路 252

第13章 SMBUS总线 255

13.1 I2C总线简介 255

13.2 SMBUS概述 257

13.3 SMBUS器件连接 257

13.4.1 SMBUS时序 258

13.4 SMBUS协议 258

13.4.2 SMBUS仲裁 259

13.4.3 SMBUS传输模式 260

13.5 SMBUS寄存器 262

13.5.1 SMB0CN(SMBUS0 Control Register) 263

13.5.2 SMB0CR(SMBUS0 Clock Rate Register) 265

13.5.3 SMB0DAT(SMBUS0 Data Register) 265

13.5.4 SMB0ADR(SMBUS0 Address Register) 266

13.5.5 SMB0STA(SMBUS0 Status Register) 266

13.6 SMBUS调试例程 268

13.6.1 利用配置向导完成SMBUS初始化 268

13.6.2 SMBUS主发从收调试过程 280

13.6.3 SMBUS主收从发调试过程 285

13.6.4 应用SMBUS实现内存互访 290

第14章 SPI总线 301

14.1 SPI信号描述 301

14.1.1 MOSI控制线 301

14.1.2 MISO控制线 301

14.1.3 SCK时钟线 301

14.1.4 NSS片选线 302

14.2 SPI0传输模式 303

14.2.1 SPI0主机模式 303

14.3 SPI0中断源 304

14.2.2 SPI0从机模式 304

14.4 SPI0时钟 305

14.5 SPI寄存器 306

14.5.1 SPI0CFG(SPI0 Configuration Register) 307

14.5.2 SPI0CN(SPI0 Control Register) 308

14.5.3 SPI0CKR(SPI0 Clock Rate Register) 309

14.5.4 SPI0DAT(SPI0 Data Register) 309

14.6 SPI调试例程 310

第15章 UART0串行通信 316

15.1 UART0工作模式 316

15.1.1 模式0 316

15.1.2 模式1 317

15.1.3 模式2 318

15.1.4 模式3 319

15.2 UART0多机通信 319

15.2.1 屏蔽地址控制 320

15.2.2 广播地址控制 320

15.3 UART0标准波特率设置 321

15.4 UART0寄存器 322

15.4.1 SCON0(UART0 Control Register) 323

15.4.2 SSTA0(UART0 Status and Clock Selection Register) 324

15.4.4 SADDR0(UART0 Slave Address Register) 325

15.4.5 SADEN0(UART0 Slave Address Enable Register) 325

15.4.3 SBUF0(UART0 Data Buffer Register) 325

15.5 UART0调试例程 326

例程15-1 UART0模式1全双工通信 326

例程15-2 UART0模式3多机通信 332

第16章 UART1串行通信 340

16.1 UART1增强型波特率产生器 340

16.2 UART1工作模式 344

16.2.1 8位工作模式 345

16.2.2 9位工作模式 345

16.4 UART1寄存器 346

16.4.1 SCON1(Serial Port 1 Control Register) 346

16.3 UART1多机通信 346

16.4.2 SBUF1(Serial UART1 Port Data Buffer Register) 347

16.5 UART1调试例程 348

例程16-1 UART1 8位模式双机通信 348

例程16-2 UART1多机通信 353

第17章 定时器 359

17.1 T0和T1 359

17.1.1 13位定时/计数模式(MODE0) 359

17.1.2 16位定时/计数器(MODE 1) 363

17.1.3 8位自动重载定时/计数器(MODE 2) 363

17.1.4 8位双定时/计数器(MODE3) 364

17.2.1 TCON(Timer Control Register) 365

17.2 T0和T1寄存器 365

17.2.2 TMOD(Timer Mode Register) 366

17.2.3 CKCON(Clock Control Register) 367

17.2.4 TL0(Timer 0 Low Byte) 368

17.2.5 TL1(Timer 1 Low Byte) 368

17.2.6 TH0(Timer 0 High Byte) 368

17.2.7 TH1(Timer 1 High Byte) 368

17.3 T2,T3和T4定时/计数器 369

17.3.1 T2,T3和T4双向计数 369

17.3.2 捕捉模式 369

17.3.3 自动重载模式 370

17.4.1 TMRnCN(Timer n Control Registers) 371

17.3.4 方波输出模式 371

17.4 T2,T3和T4寄存器 371

17.4.2 TMRnCF(Timer n Configuration Registers) 372

17.4.3 RCAPnL(Timer n Capture Register Low Byte) 373

17.4.4 RCAPnH(Timer n Capture Register High Byte) 374

17.4.5 TMRnL(Timer n Low Byte) 374

17.4.6 TMRnH(Timer n High Byte) 374

17.5 定时器调试例程 375

例程17-1 T3可调频率方波输出 375

例程17-2 T法测频 377

例程17-3 T4捕捉测脉宽 387

第18章 PCA可编程计数器阵列 393

18.1 PCA定时/计数器 393

18.2 捕捉/比较模块 394

18.2.1 边沿捕捉模式 395

18.2.2 定时模式 396

18.2.3 高速输出模式 397

18.2.4 频率输出模式 397

18.2.5 8位PWM输出模式 398

18.2.6 16位PWM输出模式 398

18.3.1 PCA0CN(PCA Control Register) 399

18.3 PCA0寄存器 399

18.3.2 PCA0MD(PCA0 Mode Register) 400

18.3.3 PCA0CPMn(PCA0 Capture/Compare Mode Registers) 401

18.3.4 PCA0L(PCA0 Counter/Timer Low Byte) 402

18.3.5 PCA0H(PCA0 Counter/Timer High Byte) 402

18.3.6 PCA0CPLn(PCA0 Capture Module Low Byte) 402

18.3.7 PCA0CPHn(PCA0 Capture Module High Byte) 403

18.4 PCA调试例程 403

例程18-1 PCA捕捉测脉宽 403

例程18-2 PCA高速输出模式 408

例程18-3 PCA可调频率方波输出 413

例程18-4 PCA 8位PWM脉宽调制 416

例程18-5 可变周期PWM脉宽调制 418

例程18-6 用PCA检测UART0波特率 421

第19章 LCD输入/输出子系统 428

19.1 LCD控制器LC1621 428

19.2 LC1621操作原理 432

19.3 LC1621指令描述 436

19.4 LC1621单片机接口操作 439

19.5 LCD调试例程 443

例程19-1 LCD虚拟时序实现和显示操作 444

例程19-2 用库函数printf()实现LCD显示操作 449

例程19-3 输入/输出子系统与LCD菜单操作实现 454

20.1 串行可擦写ROM AT24C256操作 469

第20章 单片机应用 469

20.2 HT1380时钟芯片控制 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 用MCS-51实现红外遥控 521