图书介绍

教育Proteus和Keil的C51程序设计项目教程 理论、仿真、实践相结合2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

教育Proteus和Keil的C51程序设计项目教程 理论、仿真、实践相结合
  • 周灵彬主编;刘红兵,江伟,蒋鸣东,疏晓宇副主编 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121289583
  • 出版时间:2016
  • 标注页数:244页
  • 文件大小:52MB
  • 文件页数:260页
  • 主题词:单片微型计算机-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

教育Proteus和Keil的C51程序设计项目教程 理论、仿真、实践相结合PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

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

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

1.2 单片机外形与框架3

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

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

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

1.3.1 C语言的历史及特点5

1.3.2 C51的Keil μVision3开发环境简介6

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

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

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

1.5 任务2:结构化程序设计——建立函数概念12

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

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

1.5.3 C51程序的一般结构13

1.5.4 规范书写程序语句14

1.5.5 程序设计流程图14

1.6 单片机硬件知识补充15

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

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

1.6.3 I/O口的负载能力24

1.7 知识小结25

习题与思考125

项目2 多变的花样灯26

2.1 任务1:点亮一个灯26

2.1.1 一位引脚定义和应用26

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

2.1.3 亮灯逻辑28

2.1.4 PROTEUS界面与元件操作29

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

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

2.1.7 STC单片机代码下载35

2.1.8 实物制作与上电测试39

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

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

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

2.2.1 任务要求与分析41

2.2.2 头文件reg51.h解读42

2.2.3 亮点流动的程序设计——依序而下43

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

2.2.5 应用移位库函数crol设计亮点流动程序44

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

2.3.1 任务要求与分析46

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

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

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

2.3.5 流程与程序设计49

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

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

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

2.4.1 任务要求与分析50

2.4.2 流程与程序设计51

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

2.4.4 进阶设计与思路点拨4:两个亮点相向或相背运动51

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

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

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

2.5.1 任务与要求55

2.5.2 流程与程序设计55

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

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

2.6 算术运算、赋值运算58

2.6.1 算术运算58

2.6.2 赋值及复合赋值运算59

2.7 初识函数60

2.7.1 函数格式60

2.7.2 函数的调用中参数的传递60

2.7.3 自定义函数的声明61

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

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

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

2.8 知识小结63

习题与思考263

项目3 键控花样灯65

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

3.1.1 任务要求与分析65

3.1.2 if条件语句结构66

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

3.1.4 程序流程及程序设计68

3.1.5 仿真、分析、记录69

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

3.2.1 任务要求与分析69

3.2.2 程序流程及程序设计70

3.2.3 仿真、分析、记录70

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

3.3.1 任务要求与分析71

3.3.2 程序流程及程序设计72

3.3.3 仿真、分析、记录72

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

3.4.1 任务要求与分析72

3.4.2 if语句嵌套73

3.4.3 程序流程及程序设计73

3.4.4 仿真、分析、记录74

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

3.5.1 任务要求与分析74

3.5.2 switch语句75

3.5.3 程序流程与程序设计76

3.5.4 仿真、分析、记录77

3.5.5 PROTEUS单步调试77

3.5.6 进阶设计180

3.6 任务6:学习循环结构,求∑ 100 n=1 n81

3.6.1 goto语句81

3.6.2 while语句82

3.6.3 do-while语句83

3.6.4 for语句83

3.6.5 循环结构的嵌套与跳转84

3.6.6 break语句85

3.6.7 continue语句85

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

3.7.1 任务要求与分析85

3.7.2 程序流程与程序设计86

3.7.3 仿真、分析、记录87

3.7.4 进阶设计287

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

3.8.1 任务要求与分析88

3.8.2 程序流程与程序设计88

3.8.3 仿真、分析、记录89

3.8.4 将break改成continue的变化89

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

3.9.1 任务要求与分析90

3.9.2 程序流程与程序设计91

3.9.3 仿真、分析、记录91

3.9.4 进阶设计3:两位示意计数器设计91

3.9.5 进阶设计4:两位十进制计数器设计91

3.10 知识小结92

习题与思考392

项目4 逻辑思维训练95

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

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

4.1.2 C51的数据类型96

4.1.3 标识符与关键字97

4.1.4 常量与变量97

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

4.1.6 C51的输入/输出函数100

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

4.1.8 数据的存储器类型104

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

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

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

4.2.1 任务要求与分析107

4.2.2 算法设计108

4.2.3 流程与程序设计108

4.2.4 PROTEUS串口输出测试电路设计109

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

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

4.3.1 任务要求与分析111

4.3.2 算法设计111

4.3.3 外部函数调用——关键字extern112

4.3.4 流程与程序设计112

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

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

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

4.4.1 任务要求与分析114

4.4.2 逻辑运算、条件运算115

4.4.3 算法设计116

4.4.4 流程与程序设计118

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

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

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

4.5.1 任务要求与分析120

4.5.2 算法设计120

4.5.3 流程与程序设计121

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

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

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

4.6.1 任务要求与分析122

4.6.2 数组123

4.6.3 算法设计125

4.6.4 流程与程序设计126

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

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

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

4.7.1 任务要求与分析128

4.7.2 结构体、结构数组128

4.7.3 算法设计130

4.7.4 流程与程序设计131

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

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

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

4.9 知识小结135

习题与思考4135

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

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

5.1.1 任务要求与分析138

5.1.2 中断系统简介139

5.1.3 中断控制寄存器140

5.1.4 中断过程141

5.1.5 清除中断请求的补充142

5.1.6 中断函数的编写143

5.1.7 算法设计144

5.1.8 程序设计144

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

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

5.2.1 任务要求与分析145

5.2.2 中断嵌套146

5.2.3 程序设计146

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

5.2.5 进阶设计1148

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

5.3.1 任务要求与分析148

5.3.2 定时器/计数器T0、T1149

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

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

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

5.3.6 认识数码管、设计电路154

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

5.3.8 算法与程序设计157

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

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

5.3.11 虚拟数字时钟信号???应用159

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

5.4.1 任务要求与分析160

5.4.2 查询方式下的程序框架160

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

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

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

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

5.4.7 听单片机发声165

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

5.5.1 任务要求与分析165

5.5.2 算法设计166

5.5.3 程序设计166

5.5.4 C51变量的存储类型167

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

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

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

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

5.6.1 任务要求与分析169

5.6.2 算法设计170

5.6.3 程序流程及程序设计170

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

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

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

5.7.1 任务要求与分析172

5.7.2 算法设计172

5.7.3 程序流程及程序设计173

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

5.7.5 虚拟脉冲发生器??应用174

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

5.8 任务8:键控PWM调光灯175

5.8.1 任务要求与分析175

5.8.2 算法设计176

5.8.3 程序流程及程序设计177

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

5.8.5 进阶设计7:呼吸灯178

5.9 知识小结178

习题与思考5178

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

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

6.1.1 任务要求与分析180

6.1.2 算法设计181

6.1.3 程序结构设计181

6.1.4 流程与程序设计182

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

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

6.2 任务2:可调时钟184

6.2.1 任务要求与分析184

6.2.2 算法设计184

6.2.3 程序结构设计184

6.2.4 流程与程序设计185

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

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

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

6.3.1 任务要求与分析188

6.3.2 算法设计189

6.3.3 程序结构设计189

6.3.4 流程与程序设计189

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

6.4 任务4:矩阵键盘识别192

6.4.1 任务要求与分析192

6.4.2 电路设计192

6.4.3 算法设计193

6.4.4 程序结构设计194

6.4.5 程序设计:key 16.h194

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

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

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

6.5.1 任务要求与分析196

6.5.2 算法设计196

6.5.3 程序结构设计196

6.5.4 流程与程序设计197

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

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

6.6 指针及其应用199

6.6.1 为什么要设置指针199

6.6.2 指针的运算符、定义200

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

6.6.4 指针与数组202

6.6.5 指针与函数203

6.7 知识小结204

习题与思考6205

项目7 单片机唱歌及串行数据传输206

7.1 任务1:生日快乐歌206

7.1.1 任务要求与分析206

7.1.2 音乐数据准备206

7.1.3 程序结构设计208

7.1.4 程序设计209

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

7.2 任务2:595串出3位数据210

7.2.1 任务要求与分析210

7.2.2 74HC595简介211

7.2.3 单片机串口通信简介213

7.2.4 程序框架及程序设计215

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

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

7.3 任务3:用595串行控制8×8点阵显示I?U216

7.3.1 任务要求与分析216

7.3.2 程序框架与程序设计218

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

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

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

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

7.4.1 任务要求与分析220

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

7.4.3 程序框架及程序设计221

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

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

7.5 知识小结224

习题与思考7224

项目8 AD及DA接口应用225

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

8.1.1 任务要求与分析225

8.1.2 程序规划226

8.1.3 LCM1602简介226

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

8.1.5 ADC0831简介及时序230

8.1.6 ADC0831的头文件adc0831.h设计231

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

8.1.8 主程序设计233

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

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

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

8.2.1 任务要求与分析234

8.2.2 DAC0832简介235

8.2.3 程序流程与程序设计236

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

8.2.5 进阶设计2:设计一可调频率1.20kHz的方波发生器238

8.3 知识小结238

习题与思考8238

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

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

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

参考文献244

热门推荐