书籍详情

C8051F系列单片机开发与C语言编程

C8051F系列单片机开发与C语言编程

作者:童长飞编著

出版社:北京航空航天大学出版社

出版时间:2005-02-01

ISBN:9787810775441

定价:¥54.00

购买这本书可以去
内容简介
  在介绍C8051Fxxx单片机工作原理的基础上,对单片机外设ADC、DAC、比较器、定时器、PWM、方波输出和定时器捕捉等均给出调试代码;在总线方面,对CAN,SMBUSI2C,SPI和UART均给出双机调试代码和一些高层应用,以帮助读者更好地理解单片机工作原理;还增加了LCD、红外编码解码、步进电机、直流电机、舵机、超声测距、I2CROM及串行时钟等方面的应用,以提高实用性。本书实例较多,而且采用C语言编程,程序代码可读性和移植性强,大部分代码稍加修改即可成为其他型号单片机的子程序;含光盘一张,内含各章节调试代码,以方便读者学习。本书可作为使用C8051F系列单片机进行产品开发的工程技术人员的硬件和软件设计参考书,部分内容对其他类型单片机的开发也具有一定的参考价值。本书前言SiliconLaboratories公司出品的C8051Fxxx单片机C8051Fxxx单片机是原Cygnal公司的产品。该公司于2003年并入SiliconLaboratories公司。是完全集成的混合信号系统级芯片(SOC),具有与MCS51完全兼容的指令内核。该系列单片机采用流水线处理(pipeline)技术,不再区分时钟周期和机器周期,能在执行指令期间预处理下一条指令,提高了指令执行效率。而且大部分C8051F单片机具备控制系统所需的模拟和数字外设,包括看门狗、ADC、DAC、电压比较器、电压基准输出、定时器、PWM、定时器捕捉和方波输出等,并具备多种总线接口,包括UART、SPI、SMBUS(与I2C兼容)总线以及CAN总线。C8051F系列单片机采用FlashROM技术,集成JTAG,支持在线编程。C8051F系列单片机诸多特点和优越性,使其广受单片机系统设计工程师青睐,成为很多测控系统设计的首选机型。本书以C8051F040为讲述对象,是因为该单片机为C8051F系列单片机中功能最全,最具有代表性的一款。熟悉了C8051F040单片机工作原理和编程方法后,可较快地对C8051F系列其他单片机上手编程。事实上模拟和数字外设以及各种总线具有共性,因而本书也可作为其他厂商单片机的参考资料,很多调试程序稍加修改,即可应用于其他单片机。而且本书全部代码采用C语言编程,增强了程序的可读性和可移植性。作者对C8051F040绝大部分外设均开发了调试代码,并给出运行结果,以及一些改进措施,以帮助读者更好地理解单片机的工作原理,并确保程序的可靠性和实用性。本书大部分代码可作为用户开发代码的子程序,缩短了用户调试开发周期。为了增强实用性,作者在C8051F040基础上增加了两章:LCD输入/输出子程序和单片机应用。此两章内容不局限于C8051F系列单片机,同样适用于其他系列单片机和DSP。本书含光盘一张,内含各章节调试代码以及相关资料的网络资源,以方便读者学习。作者纠正了SiliconLaboratories公司C8051F040技术白皮书中的某些错误,以及C8051F040.h文件中的一处错误。参与本书整理编写工作的其他人员还包括:陈安宁、葛颂、汤卿、张亮、陈浩、桂本恒、唐亮、张远辉、陈青青、靳碧、王立、张子发、陈哲明、刘进锋、虞旦、祝群卫、付安新和刘志明。作者导师孙优贤院士、熊蓉老师、章辉老师以及沈阳新华龙电子有限公司对本书的出版给予了很多的帮助,在此表示衷心的感谢。由于时间仓促,作者水平有限,书中错误和不妥之处,恳请读者批评指正。作者联系方式:cftong@iipc.zju.edu.cn。童长飞2004年5月于浙江大学
作者简介
暂缺《C8051F系列单片机开发与C语言编程》作者简介
目录
第1章 Keil C编程
1.1 Keil C快速入门1
1.1.1 文件载入1
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处理器
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位模/数转换器ADC0
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.3 内部温度传感器63
3.4 ADC0可编程监控模块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.8 ADC0GTH(ADC0 Greater Than Data High Byte Register)76
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.11 ADC0LTL(ADC0 Less Than Data Low Byte Register)77
3.8 ADC0调试例程77
例程 31内部温度传感器77
例程 32利用过采样实现16位ADC转换80
例程 33ADC0单端输入模式86
例程 34ADC0差动输入模式90
例程 35高差压输入ADC0转换94
例程 36ADC0监控中断101
 
第4章 8位模/数转换器ADC2
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
5.1 DAC输出调度121
5.2 DAC操作寄存器122
5.2.1 DAC0H(DAC0 High Byte Register)122
5.2.2 DAC0L(DAC0 Low Byte Register)123
5.2.3 DAC0CN(DAC0 Control 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章 比较器
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复位源
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章 晶振
8.1 可编程内部晶振147
8.2 内部晶振电气参数149
8.3 外部晶振驱动电路149
第9章 闪存
9.1 闪存编程153
9.2 闪存安全技术154
9.3 闪存操作寄存器154
9.3.1 FLSCL(Flash Memory Control)154
9.3.2 PSCTL(Program Store Read/Write Control)155
9.3.3 FLACL(Flash Access Limit)155
9.4 闪存调试例程156
第10章 内存
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章 输入/输出端口
11.1 P0~P3交叉开关配置173
11.2 I/O端口配置176
11.2.1 I/O端口输出模式配置178
11.2.2 I/O端口输入模式配置179
11.3 I/O端口寄存器179
11.3.1 XBR0(Port I/O Crossbar Register 0)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.12 P2MDOUT(Port2 Output Mode Register)186
11.3.13 P3(Port3 Data 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章 CAN
12.1 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 Registers209
12.3.8 IFx Command Mask Registers209
12.3.9 IFx Mask Registers211
12.3.10 IFx Arbitration Registers212
12.3.11 IFx Message Control Registers212
12.3.12 IFx Data A and Data B Registers214
12.3.13 Interrupt Register (addresses 0x09 & 0x08)214
12.3.14 Transmission Request Registers215
12.3.15 New Data Registers215
12.3.16 Interrupt Pending Registers215
12.3.17 Message Valid 1 Register216
12.3.18 内存数据帧报文结构示意图216
12.4 CAN测试模式216
12.4.1 静音模式216
12.4.2 回路模式217
12.4.3 回路静音模式217
12.4.4 基本模式218
12.5 CAN波特率设置218
12.6 CAN调试例程223
例程121CAN双节点通信223
例程122CAN多消息通信231
例程123CAN交互收/发通信236
例程124CAN远程帧控制244
12.7 CAN外围电路252
第13章 SMBUS总线
13.1 I2C总线简介255
13.2 SMBUS概述257
13.3 SMBUS器件连接257
13.4 SMBUS协议258
13.4.1 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总线
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.2.2 SPI0从机模式304
14.3 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串行通信
15.1 UART0工作模式316
15.1.1 模式0316
15.1.2 模式1317
15.1.3 模式2318
15.1.4 模式3319
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.3 SBUF0(UART0 Data Buffer Register)325
15.4.4 SADDR0(UART0 Slave Address Register)325
15.4.5 SADEN0(UART0 Slave Address Enable Register)325
15.5 UART0调试例程326
例程151UART0模式1全双工通信326
例程152UART0模式3多机通信332
第16章 UART1串行通信
16.1 UART1增强型波特率产生器340
16.2 UART1工作模式344
16.2.1 8位工作模式345
16.2.2 9位工作模式345
16.3 UART1多机通信346
16.4 UART1寄存器346
16.4.1 SCON1(Serial Port 1 Control Register)346
16.4.2 SBUF1(Serial UART1 Port Data Buffer Register)347
16.5 UART1调试例程348
例程161UART1 8位模式双机通信348
例程162UART1多机通信353
第17章 定时器
17.1 T0和T1359
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 T0和T1寄存器365
17.2.1 TCON(Timer Control Register)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.3.4 方波输出模式371
17.4 T2,T3和T4寄存器371
17.4.1 TMRnCN(Timer n Control Registers)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
例程171T3可调频率方波输出375
例程172T法测频377
例程173T4捕捉测脉宽387
第18章 PCA可编程计数器阵列
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 PCA0寄存器399
18.3.1 PCA0CN(PCA Control Register)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
例程181PCA捕捉测脉宽403
例程182 PCA高速输出模式408
例程183PCA可调频率方波输出413
例程184PCA 8位PWM脉宽调制416
例程185可变周期PWM脉宽调制418
例程186用PCA检测UART0波特率421
第19章 LCD输入/输出子系统
19.1 LCD控制器LC1621428
19.2 LC1621操作原理432
19.3 LC1621指令描述436
19.4 LC1621单片机接口操作439
19.5 LCD调试例程443
例程191LCD虚拟时序实现和显示操作444
例程192用库函数printf()实现LCD显示操作449
例程193输入/输出子系统与LCD菜单操作实现454
第20章 单片机应用
20.1 串行可擦写ROM AT24C256操作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 用MCS51实现红外遥控521 附录ACIP51指令集
附录BC8051F040封装及引脚说明
附录C中断矢量表
附录D随书光盘内容、各种资料资源及软件安装说明
附录EC8051F单片机开发工具
参考文献
猜您喜欢

读书导航