万本电子书0元读

万本电子书0元读

顶部广告

基于Proteus 和Keil 的C51 程序设计项目教程(第2版)——理论、仿真、实践相融合电子书

售       价:¥

纸质售价:¥58.20购买纸书

104人正在读 | 1人评论 6.2

作       者:周灵彬

出  版  社:电子工业出版社

出版时间:2020-12-01

字       数:12.5万

所属分类: 科技 > 工业技术 > 一般工业技术

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书是项目导向、任务驱动式的教材,将C51语言的知识、编程技巧和单片机原理及口技术融键控花样灯、音乐门铃、DS18B20测温、PWM调光灯、地鼠等42个任务中。以工程教育为理念,采用五步软件发流程(谋、写、仿、测、判)来组织内容。涵盖C51的基本语法,单片机的中断、定时及动态扫描、LCD及阵、键盘、A/D、D/A等口技术,代码调试、串口助手数据监测等内容。本书例程均经仿真调试与实验板运行验证。多个程序模块可直移植到其他项目发中。 为配合本书的教学,作者在"浙江省高等学校在线放课程共享平台”"学银在线”提供了配套的在线放课程,还提供PPT、微课讲解、源代码、在线测试实验、作业、试卷库等配套资源,形成立体化移动式教学资源,供读者免费使用。另外,扫描书中的二维码,可以观看配套视频。<br/>【作者】<br/>周灵彬,女,绍兴职业技术学院应用电子技术专业副教授,曾主编和参编过多本教材,具体有《智能电子产品设计与制作》《基于PROTEUS和Keil的C51程序设计项目教程——理论、仿真、实践相融合》《单片机原理、应用与PROTEUS仿真——汇编 C51编程及其多模块、混合编程(本科版)》《单片机原理、应用与PROTEUS仿真(第3版)》《基于Proteus的电路与PCB设计》等。<br/>
目录展开

内容简介

前言

项目1 认识编程载体——单片机和编程开发环境

1.1 单片机的应用及主要类型

1.2 单片机的外形与框架

1.2.1 内部结构框图和主要部件

1.2.2 引脚:数据输入/输出通道

1.3 C51语言及其开发环境简介

1.3.1 C语言的历史及特点

1.3.2 C51的KeilμVision开发环境简介

1.4 任务1:Keil C应用入门——单片机输出“Hello C51”

1.4.1 建立工程、设计程序、编译

1.4.2 Keil的初步调试:查看串口输出“Hello C51”

1.5 结构化程序设计——建立函数概念

1.5.1 仅由main()函数构成的C语言程序

1.5.2 由main()函数和max()函数构成的C语言程序

1.5.3 C51程序的一般结构

1.5.4 规范书写程序语句

1.5.5 程序设计流程

1.6 单片机硬件知识补充

1.6.1 存储器:永久程序和临时数据的住所

1.6.2 I/O(输入/输出)口结构、功能

1.6.3 I/O口的负载能力

1.6.4 STC89系列单片机新增资源及I/O口驱动能力举例

1.7 知识小结

习题与思考1

项目2 多变的花样灯

2.1 任务1:点亮一个灯

2.1.1 一个引脚定义和应用

2.1.2 定义一组引脚,输入/输出1字节数据

2.1.3 亮灯逻辑

2.1.4 Proteus界面与元器件操作

2.1.5 亮一个LED的电路、程序设计

2.1.6 编译、代码下载、仿真、测判

2.1.7 STC单片机代码下载

2.1.8 实物制作与上电测试

2.1.9 进阶设计与思路点拨1:亮多个灯

2.1.10 进阶设计与思路点拨2:用BCD数码管显示自己的学号

2.2 任务2:有规律变化的花样灯——亮点流动

2.2.1 任务要求与分析

2.2.2 头文件reg51.h解读

2.2.3 流程与程序设计——一个亮点流动

2.2.4 编译、代码下载、仿真、测判

2.2.5 应用移位函数_crol_设计亮点流动程序

2.3 任务3:有规律变化的花样灯——一一亮灯

2.3.1 任务要求与分析

2.3.2 用“位”运算符实现一一亮灯

2.3.3 预处理:条件编译#if、#else、#endif等

2.3.4 设计延时函数头文件“dly05s.h”

2.3.5 流程与程序设计

2.3.6 编译、代码下载、仿真、测判

2.3.7 进阶设计与思路点拨3:1~8个灯逐一熄灭

2.4 任务4:有规律变化的花样灯——高/低4位交替闪烁

2.4.1 任务要求与分析

2.4.2 流程与程序设计

2.4.3 编译、代码下载、仿真、测判

2.4.4 进阶设计与思路点拨4:用“>>”“<<”实现两个亮点相向和相背运动

2.4.5 进阶设计与思路点拨5:用移位函数实现两个亮点相向运动

2.4.6 进阶设计与思路点拨6:用移位函数实现两个亮点相背运动

2.5 任务5:三种效果的花样灯设计

2.5.1 任务与要求

2.5.2 流程与程序设计

2.5.3 编译、代码下载、仿真、测判

2.5.4 在Keil中进行延时程序调试

2.6 算术运算、赋值运算

2.6.1 算术运算

2.6.2 赋值及复合赋值运算

2.7 初识函数

2.7.1 函数格式

2.7.2 函数调用中参数的传递

2.7.3 自定义函数的声明

2.7.4 预处理:#include引用库、自定义函数

2.7.5 设计变时长的延时函数头文件Dly_nms.h

2.7.6 进阶设计与思路点拨7:变速流水灯

2.8 知识小结

习题与思考2

项目3 键控花样灯

3.1 任务1:键控花样灯1(用if语句实现)

3.1.1 任务要求与分析

3.1.2 if条件语句的结构

3.1.3 关系运算符和关系表达式

3.1.4 流程及程序设计

3.1.5 编译、代码下载、仿真、测判

3.2 任务2:键控花样灯2(用if-else语句实现)

3.2.1 任务要求与分析

3.2.2 流程及程序设计

3.2.3 编译、代码下载、仿真、测判

3.3 任务3:键控花样灯3(用if-else-if多分支语句实现)

3.3.1 任务要求与分析

3.3.2 流程及程序设计

3.3.3 编译、代码下载、仿真、测判

3.4 任务4:键控花样灯4(用if嵌套语句实现)

3.4.1 任务要求与分析

3.4.2 if语句嵌套

3.4.3 流程及程序设计

3.4.4 编译、代码下载、仿真、测判

3.5 任务5:键控花样灯5(用switch多分支语句实现)

3.5.1 任务要求与分析

3.5.2 switch语句

3.5.3 流程与程序设计

3.5.4 编译、代码下载、仿真、测判

3.5.5 加载*.omf代码文件,实施Proteus单步调试

3.5.6 进阶设计与思路点拨1

3.6 任务6:学习循环结构,求□

3.6.1 goto语句

3.6.2 while语句

3.6.3 do-while语句

3.6.4 for语句

3.6.5 循环结构的嵌套与跳转

3.6.6 break语句

3.6.7 continue语句

3.7 任务7:键控花样灯6(用for、while语句实现)

3.7.1 任务要求与分析

3.7.2 流程与程序设计

3.7.3 编译、代码下载、仿真、测判

3.7.4 进阶设计与思路点拨2

3.8 任务8:键控花样灯7(用for、break语句实现)

3.8.1 任务要求与分析

3.8.2 流程与程序设计

3.8.3 编译、代码下载、仿真、测判

3.8.4 将break改成continue的变化

3.9 任务9:一位示意计数器设计

3.9.1 任务要求与分析

3.9.2 流程与程序设计

3.9.3 编译、代码下载、仿真、测判

3.9.4 进阶设计与思路点拨3:两位示意计数器设计

3.9.5 进阶设计与思路点拨4:两位十进制计数器设计

3.10 知识小结

习题与思考3

项目4 逻辑思维训练

4.1 任务1:用printf语句输出各种类型数据

4.1.1 数据是对描述对象的数学抽象

4.1.2 C51的数据类型

4.1.3 标识符与关键字

4.1.4 常量与变量

4.1.5 宏定义(#define)、数据类型的重新命名(typedef)

4.1.6 C51的输入/输出函数

4.1.7 从单片机串口输出各种数据

4.1.8 数据的存储器类型

4.1.9 C51变量的存储模式(编译模式)

4.1.10 在Keil中查看各变量的存储地址及数值

4.2 任务2:歌星大赛计分——简单统计运算

4.2.1 任务要求与分析

4.2.2 算法设计

4.2.3 流程与程序设计

4.2.4 Proteus串口输出测试电路设计

4.2.5 编译、代码下载、仿真、测判

4.3 任务3:求车号是多少——推理

4.3.1 任务要求与分析

4.3.2 推理过程与算法设计

4.3.3 外部函数serial_init()调用——以关键字extern声明

4.3.4 流程与程序设计

4.3.5 编译、代码下载、仿真、测判

4.3.6 进阶设计与思路点拨1:角谷猜想

4.4 任务4:谁是罪犯——逻辑运算

4.4.1 任务要求与分析

4.4.2 逻辑运算、条件运算

4.4.3 算法设计

4.4.4 流程与程序设计

4.4.5 编译、代码下载、仿真、测判

4.4.6 进阶设计与思路点拨2:新娘和新郎

4.5 任务5:百钱百鸡问题——穷举、组合

4.5.1 任务要求与分析

4.5.2 算法设计

4.5.3 流程与程序设计

4.5.4 编译、代码下载、仿真、测判

4.5.5 进阶设计与思路点拨3:换钱币

4.6 任务6:数据从小到大排序——数组应用

4.6.1 任务要求与分析

4.6.2 数组

4.6.3 算法设计

4.6.4 流程与程序设计

4.6.5 编译、代码下载、仿真、测判

4.6.6 进阶设计与思路点拨4:从大到小排序

4.7 任务7:求解约瑟夫问题——结构数组应用

4.7.1 任务要求与分析

4.7.2 结构体、结构数组

4.7.3 算法设计

4.7.4 流程与程序设计

4.7.5 编译、代码下载、仿真、测判

4.7.6 进阶设计与思路点拨5:数3出局

4.8 局部变量、全局变量、外部变量

4.9 知识小结

习题与思考4

项目5 定时器/计数器、中断应用

5.1 任务1:用外中断干扰流水灯

5.1.1 任务要求与分析

5.1.2 中断系统简介

5.1.3 中断控制寄存器

5.1.4 中断过程

5.1.5 清除中断请求的补充

5.1.6 中断函数的编写

5.1.7 算法设计

5.1.8 程序设计

5.1.9 编译、代码下载、仿真、测判

5.2 任务2:两个外中断干扰流水灯

5.2.1 任务要求与分析

5.2.2 中断嵌套

5.2.3 程序设计

5.2.4 编译、代码下载、仿真、测判

5.2.5 进阶设计1

5.3 任务3:多少个小球——计数器应用

5.3.1 任务要求与分析

5.3.2 定时器/计数器T0、T1

5.3.3 定时器/计数器的控制及工作方式

5.3.4 定时器/计数器的计数容量及初值

5.3.5 定时器/计数器应用的基本步骤

5.3.6 认识数码管、设计电路

5.3.7 子任务:用单个数码管循环显示手机短号

5.3.8 算法与程序设计

5.3.9 编译、代码下载、仿真、测判

5.3.10 进阶设计2:如何显示999个小球

5.3.11 虚拟数字时钟信号□应用

5.4 任务4:定时产生2500Hz方波

5.4.1 任务要求与分析

5.4.2 算法设计

5.4.3 查询方式下程序流程及程序设计

5.4.4 用虚拟示波器观测信号周期

5.4.5 定时中断方式下程序设计

5.4.6 编译、代码下载、仿真、测判

5.4.7 听单片机发声

5.5 任务5:秒闪灯——长时间定时(应用static)

5.5.1 任务要求与分析

5.5.2 算法设计

5.5.3 程序设计

5.5.4 C51变量的存储类型

5.5.5 编译、代码下载、仿真、测判

5.5.6 进阶设计3:看谁耳尖手快——反应时间测试

5.5.7 进阶设计4:可反复测试反应时间的设计

5.6 任务6:T0定时产生不同频率的方波(推算公约数)

5.6.1 任务要求与分析

5.6.2 算法设计

5.6.3 程序流程及程序设计

5.6.4 编译、代码下载、仿真、测判

5.6.5 进阶设计5:矩形波设计

5.7 任务7:测量正脉冲宽度(巧用GATE位)

5.7.1 任务要求与分析

5.7.2 算法设计

5.7.3 程序流程及程序设计

5.7.4 编译、代码下载、仿真、测判

5.7.5 虚拟脉冲发生器□应用

5.7.6 进阶设计6:测量负脉冲的宽度

5.8 任务8:键控PWM调光灯

5.8.1 任务要求与分析

5.8.2 算法设计

5.8.3 程序流程及程序设计

5.8.4 编译、代码下载、仿真、测判

5.8.5 进阶设计7:呼吸灯

5.9 知识小结

习题与思考5

项目6 动态扫描技术的应用

6.1 任务1:并联数码管显示生日

6.1.1 任务要求与分析

6.1.2 算法设计

6.1.3 程序结构设计

6.1.4 流程与程序设计

6.1.5 编译、代码下载、仿真、测判

6.1.6 进阶设计1:轮流显示生日与手机短号

6.2 任务2:可调时钟

6.2.1 任务要求与分析

6.2.2 算法设计

6.2.3 程序结构设计

6.2.4 流程与程序设计

6.2.5 编译、代码下载、仿真、测判

6.2.6 进阶设计2:设计12小时制的时钟

6.3 任务3:多功能秒表——一键多功能

6.3.1 任务要求与分析

6.3.2 算法设计

6.3.3 程序结构设计

6.3.4 流程与程序设计

6.3.5 编译、代码下载、仿真、测判

6.4 任务4:矩阵键盘识别

6.4.1 任务要求与分析

6.4.2 电路设计

6.4.3 算法设计

6.4.4 程序结构设计

6.4.5 程序设计:key16.h

6.4.6 编译、代码下载、仿真、测判

6.4.7 进阶设计3:以七段数码管显示键值

6.5 任务5:打地鼠游戏设计

6.5.1 任务要求与分析

6.5.2 算法设计

6.5.3 程序结构设计

6.5.4 流程与程序设计

6.5.5 编译、代码下载、仿真、测判

6.5.6 进阶设计4:竞级打地鼠游戏设计

6.6 指针及其应用

6.6.1 为什么要设置指针

6.6.2 指针的运算符、定义

6.6.3 应用指针作为参数实现“传址”

6.6.4 指针与数组

6.6.5 指针与函数

6.7 知识小结

习题与思考6

项目7 音乐门铃及串行数据传输

7.1 任务1:生日快乐歌

7.1.1 任务要求与分析

7.1.2 音乐数据准备

7.1.3 程序结构设计

7.1.4 程序设计

7.1.5 编译、代码下载、仿真、测判

7.1.6 无线音乐门铃

7.2 任务2:用74HC595串出3位数据

7.2.1 任务要求与分析

7.2.2 74HC595简介

7.2.3 单片机串口通信简介

7.2.4 程序框架及程序设计

7.2.5 编译、代码下载、仿真、测判

7.2.6 进阶设计1:串出自己的手机长号数字

7.3 任务3:用74HC595串行控制8×8点阵显示I♥U

7.3.1 任务要求与分析

7.3.2 程序框架与程序设计

7.3.3 编译、代码下载、仿真、测判

7.3.4 进阶设计2:我的点阵图形设计

7.3.5 进阶设计3:人行道点阵小人指示灯设计

7.4 任务4:双单片机间串行通信

7.4.1 任务要求与分析

7.4.2 串口工作方式1及波特率计算

7.4.3 程序框架及程序设计

7.4.4 编译、代码下载、仿真、测判

7.4.5 用串口调试助手监测目标板上的数据

7.5 任务5:用单总线接口元件DS18B20测温

7.5.1 任务要求与分析

7.5.2 DS18B20简介

7.5.3 程序框架及程序设计

7.5.4 编译、代码下载、仿真、测判

7.6 知识小结

习题与思考7

项目8 A/D及D/A接口应用

8.1 任务1:LCD显示的简易电压表

8.1.1 任务要求与分析

8.1.2 程序规划

8.1.3 LCM1602简介

8.1.4 LCD显示的头文件lcd1602.h设计

8.1.5 ADC0831简介及时序

8.1.6 ADC0831的头文件adc0831.h设计

8.1.7 C51对存储器和外设的绝对地址访问

8.1.9 编译、代码下载、仿真、测判

8.1.10 进阶设计1:在LCD上显示自己的姓名、学号

8.2 任务2:简易波形发生器

8.2.1 任务要求与分析

8.2.2 DAC0832简介

8.2.3 程序流程与程序设计

8.2.4 编译、代码下载、仿真、测判

8.2.5 进阶设计2:设计一可调频率1~20kHz的方波发生器

8.3 知识小结

习题与思考8

附录A 开发板电路原理图、使用说明

附录B C51程序设计实践报告要求

附录C C51的运算符优先级及结合性

参考文献

反侵权盗版声明

累计评论(1条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部