选择特殊符号
选择搜索类型
请输入搜索
绪论认识单片机
项目1广告灯的控制与制作
任务1信号灯的控制
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
任务2流水灯的控制
任务描述
任务分析
参考源程序
系统仿真调试
知识拓展
知识链接
任务3花样灯的控制
任务描述
任务分析
参考源程序
系统仿真调试
知识拓展
知识链接
任务4广告灯的设计和制作
任务描述
任务分析
参考源程序
系统仿真调试
知识拓展
知识链接
项目2电子表的控制和制作
任务1电子表的静态显示设计
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
任务2电子表的动态显示设计
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展1
知识拓展2
知识链接1
知识链接2
任务3电子表的调整设计
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
任务4电子表的设计和制作
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识链接
项目3点阵LED的控制和制作
任务18×8点阵LED模拟电梯运行
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
任务2汉字显示控制
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
项目4数字电压表的控制和制作
任务1LCMl602液晶显示
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
任务2数字电压表的设计与制作
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
项目5万年历的控制和制作
任务1PGl60128A液晶显示
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
任务2万年历的计时控制
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
知识拓展
知识链接
任务3万年历的温度控制
任务描述
任务分析
参考源程序
系统仿真调试
知识拓展
思考与练习
任务4万年历的设计和制作
任务描述
任务分析
参考源程序
系统仿真调试
思考与练习
项目6机器人的控制和制作
任务1追光机器人的设计与制作
任务描述
任务分析
参考源程序
系统调试
知识拓展
思考与练习
任务2灭火机器人的设计与制作
任务描述
任务分析
参考源程序
系统仿真调试
知识拓展
思考与练习
任务3相扑机器人的设计与制作
任务描述
任务分析
参考源程序
系统仿真调试
知识拓展
思考与练习
附录
附录1KeilC51软件的用法
附录2Proteus软件的用法
参考文献2100433B
《单片机C51项目设计与开发》以实用案例为导向,通过19个典型任务,基于工作过程的学习思路,主要介绍单片机开发工具软件(Keil、Proteus)、C51程序设计、广告灯、电子钟、LED屏、数字电压表、万年历以及单片机综合应用系统设计(机器人)等内容。《单片机C51项目设计与开发》注重技能训练,内容贴近电子行业的职业岗位需求,适当增加一些当今流行的新器件和新技术,并提供了详细的原理说明、电路图、完整的程序代码及程序流程图,具有很强的实用性、可读性和可操作性。
《单片机C51项目设计与开发》可用作高等院校的电子信息类、通信类、自动化类、机电类等专业单片机技术课程的教材,也可用作应用型本科院校和培训班的教材以及电子产品设计人员的参考书。
单片机的主要应用领域 由于单片机有许多优点,因此其应用领域之广,几乎到了无孔不入的地步。单片机应用的主要领域有: 1) 智能化家用电器:各种家用电器普遍采用单片机智能化控制代替传统的电子线路控制,升级...
用c51单片机做AD转换,只要用一个简单的延时就可以,没必要动用定时器这么高级的东西,DMA就更别提了,我写了很多程序,还真没有人能用C51实现DMA,DMA一般在arm系列和FPGA等的高级嵌入式里...
C51单片机开发板价格就是120块钱左右,价格还是比较合理的。单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。单片...
基于C51单片机的光纤液位仪的设计
介绍了一种基于C51单片机和光纤技术的液位测量仪的系统设计。采用浮动机构跟踪液位,用光码盘将线位移转换为角位移。光通断的变化信号由光纤传输到测量室,并转换为电脉冲,单片机对脉冲记数即测量出液位大小。用两套光纤来确定液位变化的方向。该系统能够实现液位计量、超限报警、声光显示、串口通讯等功能。分辨率达1mm,测量精度为±2mm,本质安全防爆。
基于C51单片机的声光报警器设计
本科课程设计报告 题 目: 基于 C51单片机的声光报警器设计 院 (系): 电气与信息工程学院 专 业: 电子信息工程 班 级: 姓 名: 学 号: 2009021986 指导教师: 设计日期: 2012 年 11月 29日 报告书写要求 1、报告封皮标题栏为宋体小三号居中,下划线需右边对齐。 2、报告的撰写要求条理清晰、语言准确、表述简明。报告中段首空两个字符,中文字体为宋体五号, 数字、字符、字母为 Times New Roman五号,且单教研室主任意见 : 3、报告中插图应与文字紧密配合,文图相符,技术内容正确。每个图都应配有图题(由图号和图名组 成)。图题(宋体小五号)置于图下居中,其中图号按顺序编排,图名在图号之后空一格排写。图中若 有分图时,分图号用 (a) 、 (b) 等置于分图之下。 4、报告中插表应
德国Keil公司*推出的C51编译器是一种符合工业标准的8051 C语言开发工具,在业界获得了广泛应用,被公认为是最有效的单片机开发手段之一。Keil公司于2010年推出了全新的开发环境Vision4,其中集成了V9.00版本的C51编译器、Debug调试器、RTX51 Tiny实时操作系统等,全面支持8051单片机主流产品及其众多的派生系列。
Keil C51编译器具有如下优点。
(1)经过优化编译后生成的代码,其效率接近于汇编语言生成的代码。
(2)支持所有8051系列单片机,提供对所有外围硬件部件的操作。
(3)无论在有无工作寄存器区转换的情况下,都能产生快速中断代码。
(4)支持Atmel,Dallas,Infineon,Philips和Temic等公司8051衍生产品上的双数据指针及高速算术单元(arithmeticunits)。
(5)能够在整个应用程序中执行全局寄存器优化。
(6)所有应用工具均可产生详细警告信息和错误信息,帮助用户处理难以寻找的问题。
(7)支持再入功能和寄存器区的独立代码,便于中断服务程序和多任务应用程序的执行。
(8)采用分组方式执行代码分组和调试,用户程序代码可以轻松突破64KB空间的限制。
全新集成开发环境Vision4具有强大的项目管理功能,包括源程序文件、开发工具选项以及编程说明等。Vision4内部集成了一个器件数据库(devicedatabase),其中储存了各种型号单片机的片上存储器和集成外围功能信息,通过器件数据库可以自动设置C51编译器、A51汇编器、BL51/Lx51连接定位器、Debug调试器等开发工具的功能选项,充分满足用户使用特定单片机的要求。集成仿真调试功能允许在统一的Vision4环境下进入Debug调试器,提供纯软件模拟仿真(Simulator)和多种硬件驱动调试。Simulator可以在没有单片机硬件的条件下在PC上用纯软件模拟方式完成单片机应用程序仿真调试,硬件驱动Monitor-51可以将带有MON51监控程序的硬件目标板与Vision4无缝连接,直接对目标板进行仿真调试而无须采用昂贵的硬件仿真器。
本书完整地阐述了Keil C51开发工具的功能和使用方法,力求先进性和实用性,给出了大量具体应用实例,不仅介绍了Keil C51自带Simulator软件模拟仿真调试方法,还介绍了Keil C51与Proteus软件联机,实现8051单片机在线虚拟仿真调试方法,同时对广大读者所关心的利用MON51监控程序设计自己硬件目标板的方法做了详细介绍,并在随书光盘中给出了硬件目标板的电路原理图。
全书共分10章:
第1章阐述8051单片机存储器结构,以及在Vision4集成开发环境下进行C51程序设计和编译调试的基本方法。
第2章阐述C51程序设计基础知识,详细介绍C51的数据类型、基本语法、变量及其存储模式、函数、数组与指针等。
第3章阐述Vision4集成开发环境,详细介绍了工作环境、目标程序的仿真调试以及各种应用选项的设置方法。
第4章阐述Keil C51编译器,介绍了各种编译控制命令、数据调用协议,给出了全部C51库函数及其应用范例。
第5章阐述A51宏汇编器,介绍了各种汇编伪指令、宏处理以及汇编控制命令。
第6章阐述BL51/Lx51链接定位器与实用工具,详细介绍了各种链接控制命令、符号转换工具OH51、库管理工具LIB51的使用方法。
第7章阐述RTX51实时多任务操作系统,介绍了RTX51 TINY的功能和使用方法。
第8章阐述8051单片机片内资源的C51应用编程,介绍了C51编程的基本原则、常见问题与解决方法,给出了中断系统、定时器/计数器、串行口、片内FLASH IAP等资源的具体应用实例。
第9章阐述8051单片机片外扩展的C51应用编程,给出了LED数码管、非编码矩阵键盘、点阵字符型和点阵图型LCD、D/A及A/D转换、I2C总线扩展、外部存储器扩展等具体应用实例。
第10章阐述Keil C51综合应用编程,介绍了C51编程的若干实际应用技巧,C51与汇编语言混合编程方法以及如何在Vision4中应用硬件目标板,给出了红外遥控系统、简易电子琴、带农历的电子万年历、电子密码锁、DS18B20多点温度监测系统、STH11数字温-湿度测量系统、单片机SD卡读写接口等大量综合应用实例。2100433B
第1章 8051单片机与KeilC51基础1
1.1 8051单片机的存储器组织结构 1
1.2 Keil C51开发工具6
1.3 C51简单编程与调试 6
第2章 C51程序设计基础16
2.1 标识符与关键字 16
2.2 C51程序设计的基本语法 18
2.2.1 数据类型 18
2.2.2 常量 20
2.2.3 变量及其存储模式 22
2.2.4 用typedef重新定义数据类型 25
2.2.5 运算符与表达式 26
2.3 C51程序的基本语句 39
2.3.1 表达式语句 39
2.3.2 复合语句 40
2.3.3 条件语句 41
2.3.4 开关语句 43
2.3.5 循环语句 45
2.3.6 返回语句 50
2.4函数 51
2.4.1 函数的定义 51
2.4.2 函数的调用形式 54
2.4.3 对被调用函数的说明 54
2.4.4 函数的参数与返回值 56
2.4.5 实际参数的传递方式 58
2.4.6 函数的递归调用与再入函数 59
2.4.7 中断函数与寄存器组定义 60
2.5 函数变量的存储方式 62
2.5.1 局部变量与全局变量 62
2.5.2 变量的存储种类 64
2.5.3 函数的参数和局部变量的存储器模式 68
2.6 数组 69
2.6.1 数组的定义与引用 69
2.6.2 字符数组 70
2.6.3 数组作为函数的参数 73
2.7 指针 76
2.7.1 指针与地址 76
2.7.2 指针变量的定义 77
2.7.3 指针变量的引用 79
2.7.4 指针变量作为函数的参数 80
2.8 数组的指针 81
2.8.1 用指针引用数组元素 81
2.8.2 字符数组指针 83
2.8.3 指针的地址计算 84
2.9 函数型指针 86
2.10 返回指针型数据的函数 88
2.11 指针数组与指针型指针 89
2.11.1 指针数组 89
2.11.2 指针型指针 92
2.11.3 抽象型指针 94
2.12 结构体、联合体与枚举 95
2.12.1 结构体变量的定义与引用 95
2.12.2 结构体变量的初值 98
2.12.3 结构体数组 99
2.12.4 结构体型指针 100
2.12.5 将结构体作为函数的参数 101
2.12.6 将结构体型指针作为函数的参数 103
2.13 联合体变量的定义与引用105
2.14 枚举变量的定义与引用 109
2.15 预处理器 110
2.15.1 不带参数的宏定义 111
2.15.2 带参数的宏定义 112
2.15.3 文件包含 114
2.15.4 条件编译 114
2.15.5 其他预处理命令 117
第3章 Vision4集成开发环境 118
3.1 Vision4的下拉菜单 120
3.1.1 File菜单 121
3.1.2 Edit菜单 122
3.1.3 View菜单 126
3.1.4 Project菜单 128
3.1.5 Flash菜单 139
3.1.6 Tools菜单 139
3.1.7 SVCS菜单 141
3.1.8 Window菜单 142
3.1.9 Help菜单 142
3.2 Vision4中的调试器 143
3.2.1 Debug状态下窗口分配与View菜单 145
3.2.2 通过Debug菜单进行程序代码调试 150
3.2.3 通过Peripherals菜单观察仿真结果 156
3.3 Vision4的调试命令 157
3.3.1 显示和更新存储器内容命令 159
3.3.2 程序执行控制命令 163
3.3.3 断点管理命令 166
3.3.4 其他通用命令 169
3.4 Vision4的表达式 178
3.4.1 表达式的组成 178
3.4.2 Vision4表达式与C语言表达式之间的差别 183
3.4.3 Vision4表达式应用举例 183
3.5 Vision4的函数 186
3.5.1 内部函数 187
3.5.2 用户函数 192
3.5.3 信号函数 194
3.5.4 Vision4函数与C51函数的差别 196
第4章 C51编译器 197
4.1 C51编译器简介 197
4.2 C51编译器控制命令详解 200
4.2.1 源控制命令 200
4.2.2 列表控制命令 203
4.2.3 目标控制命令 208
4.3 Keil C51编译器对ANSIC的扩展235
4.3.1 存储器类型与编译模式 235
4.3.2 关于bit,sbit,sfr,sfr16数据类型 237
4.3.3 一般指针与基于存储器的指针及其转换 241
4.3.4 C51编译器对ANSIC函数定义的扩展 242
4.4 C51编译器的数据调用协议 249
4.4.1 数据在内存中的存储格式 249
4.4.2 目标代码的段管理 250
4.5 C51编译器的特殊支持 252
4.5.1 Analog Device公司的Aduc8xxB2系列 253
4.5.2 Atmel 89x8252及衍生产品 253
4.5.3 Dallas 80C320/420/520/530 254
4.5.4 Dallas 80C390/400/5240及衍生产品 254
4.5.5 Infineon 80517/509/537及衍生产品 255
4.5.6 NXP 8xC750/751/752 256
4.5.7 NXP 8xC51Mx 256
4.5.8 NXP和AtmelWM系列的双数据指针 256
4.6 用户配置文件 257
4.6.1 启动代码文件 257
4.6.2 变量初始化文件 259
4.6.3 基本I/O函数文件 260
4.6.4 分组配置文件 261
4.7 与汇编语言程序的接口 262
4.8 与PL/M51程序的接口272
4.9 绝对地址访问 273
4.9.1 采用扩展关键字“_at_”或指针定义变量的绝对地址 273
4.9.2 采用预定义宏指定变量的绝对地址 274
4.9.3 采用链接定位控制命令指定变量的绝对地址 275
4.10 C51的库函数 276
4.10.1 字符函数CTYPE.H 277
4.10.2 标准I/O函数STDIO.H 283
4.10.3 字符串函数STRING.H 291
4.10.4 标准函数STDLIB.H 299
4.10.5 数学函数MATH.H 305
4.10.6 绝对地址访问ABSACC.H 312
4.10.7 内部函数INTRINS.H 313
4.10.8 变量参数表STDARG.H 317
4.10.9 全程跳转SETJMP.H318
4.10.10 计算结构体成员的偏移量STDDEF.H 319
4.10.11 创建测试条件ASSERT.H 319
第5章 A51宏汇编器321
5.1 符号与表达式 323
5.2 汇编伪指令 327
5.2.1 段控制指令 328
5.2.2 符号定义指令 331
5.2.3 存储器初始化指令 334
5.2.4 存储器保留指令 335
5.2.5 过程声明指令(仅用于Ax51) 336
5.2.6 程序链接指令 338
5.2.7 地址控制指令 339
5.2.8 其他指令 340
5.3 宏处理器 340
5.3.1 标准宏处理器 341
5.3.2 嵌套宏定义 344
5.3.3 宏调用 345
5.3.4 C宏处理器349
5.3.5 MPL宏处理器 351
5.3.6 MPL函数 353
5.3.7 MPL条件处理函数 357
5.3.8 MPL字符串处理函数 360
5.4 汇编控制命令 362
5.4.1 汇编控制命令详解 363
5.4.2 条件汇编命令 371
第6章 BL51/Lx51链接定位器与实用工具 375
6.1 BL51/Lx51的链接定位方式375
6.1.1 链接定位中的数据段处理 375
6.1.2 链接定位器的引用 378
6.1.3 应用程序在存储器空间中的定位 379
6.1.4 数据覆盖 381
6.1.5 代码分组 383
6.1.6 分组配置 385
6.2 链接定位控制命令详解 393
6.2.1 列表文件控制命令 393
6.2.2 输出文件控制命令 397
6.2.3 段与存储器定位控制命令 401
6.2.4 高级语言控制命令 418
6.3 符号转换工具 425
6.3.1 Intel HEX文件格式与符号转换工具 425
6.3.2 引用符号转换工具OH51/OHX51 426
6.3.3 引用分组目标文件转换工具OC51 428
6.4 库管理器LIBx51 428
第7章 RTX51实时多任务操作系统432
7.1 RTX51一般介绍 432
7.2 RTX51技术参数 437
7.3 使用RTX51TINY的要求和限定 439
7.4 RTX51 TINY的任务管理 440
7.5 RTX51 TINY的配置 442
7.6 RTX51 TINY的系统函数 444
7.7 RTX51 TINY应用系统调试 449
第8章 8051单片机片内资源的C51应用
编程 464
8.1 编写C51应用程序的基本原则 464
8.2 C51应用中的一些常见问题与解决方法 465
8.3 8051单片机中断系统应用编程 468
8.3.1 外部中断源扩展 468
8.3.2 中断嵌套 470
8.4 8051单片机定时器/计数器应用编程473
8.4.1 定时器方式应用 474
8.4.2 计数器方式应用 478
8.6 8051单片机串行口应用编程 483
8.6.1 8051串行口实现串/并转换应用编程 483
8.6.2 8051串行口的通信方式应用编程 487
8.7 P89C51RD2单片机片内FLASH在应用中编程的C51驱动程序 504
8.8 80C552单片机内部A/D转换器的C51驱动程序 517
8.8.1 80C552单片机简介 517
8.8.2 80C552内部ADC的应用 519
8.8.3 使用80C552内部ADC的C51驱动程序523
第9章 8051单片机片外扩展的C51应用编程 529
9.1 LED数码管显示接口应用编程 529
9.1.1 软件译码和动态扫描的LED数码管显示接口应用编程 530
9.1.2 8位共阴极LED数码管驱动器MAX7219应用编程 532
9.2 非编码矩阵键盘接口应用编程 538
9.2.1 采用8155实现的矩阵键盘及数码管显示接口应用编程 539
9.2.2 采用8279实现的矩阵键盘及数码管显示接口应用编程 544
9.3LCD液晶模块显示接口应用编程 550
9.3.1 点阵字符型LCD显示接口应用编程 551
9.3.2 12864点阵图型LCD显示接口应用编程562
9.3.3 内置T6963C控制器的点阵图型LCD显示接口应用编程 570
9.4 D/A与A/D转换接口应用编程 580
9.4.1 DAC0832转换接口应用编程 581
9.4.2 串行接口DAC芯片MAX517应用编程 584
9.4.3 ADC0809转换接口应用编程 588
9.4.4 ICL7135转换接口应用编程 592
9.4.5 串行接口ADC芯片TLC549应用编程 596
9.5 单片机I2C总线扩展应用编程 600
9.5.1 I2C总线简介 600
9.5.2 I2C总线通用驱动程序 603
9.5.3 I2C接口器件24C04的读/写程序 606
9.6 8051单片机存储器扩展与测试应用编程 610
9.6.1 测试8051应用系统总线与扩展存储器的C51驱动程序 610
9.6.2 8051扩展FLASH存储器在系统编程的C51驱动程序 613
第10章 KeilC51综合应用编程实例626
10.1 有关C51编程的若干实际应用技巧626
10.2 C51与汇编语言混合编程与生成应用库文件 632
10.2.1 C51与汇编语言混合编程 632
10.2.2 在Vision4中生成应用库文件 634
10.3 在Vision4中应用硬件目标板 635
10.3.1 带MON51监控程序的硬件目标板 636
10.3.2 带FLASHMON51监控程序的硬件目标板 640
10.4 红外遥控系统设计 642
10.4.1 功能要求 642
10.4.2 硬件电路设计 642
10.4.3 软件程序设计 643
10.5 简易电子琴设计650
10.5.1 功能要求 650
10.5.2 硬件电路设计 650
10.5.3 软件程序设计 650
10.6 带农历的电子万年历设计655
10.6.1 功能要求 655
10.6.2 硬件电路设计 655
10.6.3 软件程序设计 658
10.7 电子密码锁设计671
10.7.1 功能要求 671
10.7.2 硬件电路设计 671
10.7.3 软件程序设计 671
10.8 DS18B20多点温度监测系统设计 687
10.8.1 功能要求 687
10.8.2 硬件电路设计 688
10.8.3 软件程序设计 692
10.9 STH11数字温-湿度测量系统设计 700
10.9.1 功能要求 700
10.9.2 硬件电路设计 700
10.9.3 软件程序设计 704
10.10 单片机SD卡读/写接口设计 710
10.10.1 功能要求 710
10.10.2 硬件电路设计 710
10.10.3 软件程序设计 712
附录AKeilC51与ANSI C的差别 717
附录BKeilC51不同版本的差别 719
附录C 代码优化723
附录DC51编译器的限制 726
附录E 关于配套光盘及硬件目标板727
参考文献 728
本书作为《单片机原理及应用——基于Proteus和Keil C》的姊妹篇,在保持原教材结构和风格的基础上,取消了其中的汇编语言内容,将节省的空间用于加强C51语言内容。
本书在C51内容编排上做了较大改进:在集中介绍了执行语句、变量、指针、数组和函数等C51基本内容之后,安排了LED控制、独立开关检测、行列式键盘扫描、数码管静态和动态显示等与单片机I/O口相关的C51应用内容,以此缩短编程语言与单片机应用的教学时间差。中断函数及片外RAM访问等与单片机硬件相关的C51内容则穿插到后续原理章节里介绍。采用这种集中与分散相结合,理论与应用相结合的方案,有望促使读者更好地掌握C51与单片机内容,为今后的工程应用打下扎实基础。 为方便读者学习,本书每章都有小结和习题,书末附有与教学进度相呼应的实验指导及相关阅读材料,还配有相关课程网站。
本书可作为高等工科院校机械类、电气与电子信息类、计算机类各专业48~64学时要求的教材,也可作为从事嵌入式应用系统设计、生产从业人员的岗位培训教材及自学参考书。