《80C51单片机实验实训100例 基于Keil C和Proteus》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:张志良编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2015
  • ISBN:9787512416031
  • 页数:354 页
图书介绍:全书内容:80C51单片机实验实训100例,选自常见常用单片机教学案例,程序每条语句均给出注释,全部通过Keil调试和Proteus虚拟仿真。从网上可免费下载每一实例的Proteus仿真电路DSN文件和驱动程序hex文件。读者可在PC机上,不涉及具体硬件实验设备,虚拟单片机应用电路和目标程序调试运行。既能教学演示观赏;又可让学生课后边学边练、实验操作;还能用于课程设计和毕业设计。读者对象:本专科开设单片机课程的学校和学生。

第1章 C51程序Keil调试 1

1.1 求和 1

实例1 sum=1+2+…+100 1

实例2 sum=1+3+5+…+99 4

实例3 sum=1!+2!+…+10! 5

1.2 排序 6

实例4 a、b、c从小到大排序 6

实例5 数组a[8]从大到小(从小到大)排序 6

实例6 数组元素按相反顺序存放 8

实例7 解压缩BCD码 8

1.3 打印输出 9

实例8 按顺序打印输出数组元素 9

实例9 输出100~200间能被3整除的数 10

实例10 计算并输出半径r等于1~10时的圆面积a 11

实例11 输出变量x对应的平方值 12

实例12 摄氏温度转换为华氏温度 13

实例13 a、b、c排序打印输出 14

实例14 16个数据从大到小排列输出 15

实例15 打印输出金字塔图形 17

1.4 查找统计 17

实例16 查找并统计ASCII字符“$”的个数 17

实例17 查找并统计数组a[16]中正数、负数和零的个数 18

实例18 查找并统计1~99之间的偶数项 19

1.5 延时 19

实例19 单循环延时 20

实例20 双循环延时 21

1.6 数据块传送 21

实例21 外RAM→内RAM 21

实例22 ROM→内RAM 22

第2章 输出信号控制 23

2.1 键控信号灯 23

实例23 单灯闪烁 23

实例24 双键控3灯 27

实例25 双键控4灯 30

实例26 无锁按键的4种不同键控方式 33

2.2 循环灯 37

实例27 流水循环灯 37

实例28 花样循环灯 41

2.3 模拟交通灯 43

实例29 模拟交通灯 43

实例30 带限行时间显示的模拟交通灯 46

2.4 音频声输出 49

实例31 单音频输出 49

实例32 双音频输出 53

实例33 播放生日快乐歌 55

第3章 80C51片外扩展应用 59

3.1 并行扩展 59

实例34 并行扩展8位TTL输入输出口 59

实例35 并行扩展16位TTL输入输出口 63

实例36 并行扩展8255 65

实例37 并行扩展8155 69

实例38 并行扩展RAM 6264 74

3.2 串行扩展输入输出口 78

实例39 74HC165串行输入8/16位按键状态 79

实例40 CC4021串行输入8/16位按键状态 83

实例41 CC4014串行输入8位按键状态 87

实例42 74HC164串入并出控制8/16循环灯 89

实例43 CC4094串入并出控制8/16循环灯 94

实例44 74HC595串入并出控制8/16循环灯 99

实例45 74HC164+165串行输入输出 104

实例46 CC4021+4094串行输入输出 107

实例47 74HC164+165虚拟串行输入输出 109

实例48 CC4021+4094虚拟串行输入输出 111

3.3 I2C串行总线扩展 113

实例49 读写AT24C02 117

实例50 非零地址读写AT24C02 122

第4章 显示与键盘 124

4.1 LED数码管静态显示 124

实例51 单个LED数码管循环显示0~9 124

实例52 74LS377并行输出3位LED静态显示 128

实例53 CC4511 BCD码驱动3位LED数码管静态显示 131

实例54 74LS164串行扩展3位LED数码管静态显示 134

实例55 CC4094串行扩展3位LED数码管静态显示 136

4.2 LED数码管动态显示 139

实例56 PNP晶体管选通3位共阳LED数码管动态显示 140

实例57 74LS139选通4位LED数码管动态显示 143

实例58 74LS138选通8位LED数码管动态显示 146

实例59 74LS595串行选通8位LED数码管动态显示 150

实例60 8255A扩展8位LED数码管动态显示 153

4.3 LCD显示屏显示 155

实例61 LCD1602显示屏显示 156

4.4 键盘 163

实例62 4×4矩阵式键盘 163

实例63 8279扩展8×8键盘和8位显示 169

实例64 74HC595+165扩展8×8键盘 176

第5章 中断、定时/计数器和串行口应用 181

5.1 中断应用 181

实例65 出租车行驶里程计数 181

实例66 统计展览会4个入口参展总人数 185

实例67 利用与门扩展外中断 187

实例68 74HC148编码扩展外中断 190

5.2 定时/计数器应用 194

实例69 输出周期脉冲方波(示波器显示) 194

实例70 输出矩形脉冲波(示波器显示) 197

实例71 统计T0引脚上10 min内的脉冲数 199

实例72 测量脉冲宽度 202

实例73 测量脉冲频率 206

实例74 定时器控制单灯闪烁 209

实例75 定时器控制播放生日快乐歌 211

实例76 定时器控制播放世上只有妈妈好歌曲 213

3.3 双机通信 215

实例77 双机串行通信方式1 215

实例78 双机串行通信方式2 218

实例79 双机串行通信方式3 223

实例80 带RS-232接口的双机通信 225

第6章 A-D和D-A 229

6.1 A-D转换 229

实例81 ADC0808中断方式A-D(ALE输出CLK) 229

实例82 ADC0808查询方式A-D(ALE输出CLK) 235

实例83 ADC0808延时方式A-D(ALE输出CLK) 237

实例84 ADC0808并行A-D(虚拟CLK) 239

实例85 ADC0832串行A-D(TXD输出CLK) 244

实例86 ADC0832串行A-D(虚拟CLK) 248

实例87 PCF8591 I2C串行A-D(1602显示) 250

6.2 D-A转换 256

实例88 DAC0832输出连续锯齿波 256

实例89 PCF8591 I2C串行D-A输出连续锯齿波 260

第7章 常用测控电路 263

7.1 时钟 263

实例90 开机显示PC机时间的时钟1302(LCD1602显示) 263

实例91 具有校正功能的时钟1302(LCD1602显示) 271

实例92 开机显示PC机时分秒的时钟1302(LED数码管显示) 276

实例93 具有校正功能的时钟1302(LED数码管显示) 280

实例94 模拟电子钟(由80C51定时器产生秒时基) 284

实例95 99.9 秒秒表 289

实例96 能预置初值的倒计时秒表 291

7.2 DS18B20测温 295

实例97 一线式DS18B20测温 295

7.2 电机驱动 301

实例98 驱动四相步进电机 301

实例99 驱动二相步进电机 306

实例100 直流电机正反转及PWM调速 309

第8章 Keil C51编译软件操作基础 316

8.1 项目建立和设置 316

8.1.1 创建工程项目 316

8.1.2 设置工程属性 319

8.1.3 输入源程序 322

8.2 程序编译运行 325

8.2.1 程序编译链接 325

8.2.2 程序运行调试 326

8.3 常用窗口介绍 328

8.3.1 项目文件/寄存器窗口 329

8.3.2 输出窗口 329

8.3.3 变量观察窗口 330

8.3.4 存储器窗口 331

8.3.5 80C51功能部件运行对话窗口 332

8.3.6 串行输入/输出信息窗口 334

第9章 Proteus虚拟仿真软件操作基础 335

9.1 用户编辑界面 335

9.1.1 启动Proteus ISIS 335

9.1.2 Proteus ISIS主菜单 336

9.1.3 Proteus ISIS工具栏 337

9.2 电路原理图设计和编辑 339

9.2.1 新建原理图设计 339

9.2.2 选择和放置元器件 340

9.2.3 对象操作 342

9.2.4 布线 345

9.2.5 电气规则检查 347

9.3 虚拟仿真运行 348

9.3.1 仿真运行 348

9.3.2 Proteus与Keil联合仿真调试 351

参考文献 354