《80C51单片机实验实训100例--基于Keil c和Proteus》目录 ISBN 978-7-5124-1603-1,北航社出版
第1章 C51程序Keil调试
1.1 求和
实例1 sum=1+2+…+100
实例2 sum=1+3+5+…+99
实例3 sum=1!+2!+…+10!
1.2 排序
实例4 a、b、c从小到大排序
实例5 数组a[8] 从大到小(从小到大)排序
实例6 数组元素按相反顺序存放
实例7 解压缩BCD码
1.3 打印输出
实例8 按顺序打印输出数组元素
实例9 输出100~200间能被3整除的数
实例10 计算并输出半径r等于1~10时的圆面积a
实例11 输出变量x对应的平方值
实例12 摄氏温度转换为华氏温度
实例13 a、b、c排序打印输出
实例14 16个数据从大到小排列输出
实例15 打印输出金字塔图形
1.4 查找统计
实例16 查找并统计ASCII字符“$”的个数
实例17 查找并统计数组a[16]中正数、负数和零的个数
实例18 查找并统计1~99之间的偶数项
1.5 延时
实例19 单循环延时
实例20 双循环延时
1.6 数据块传送
实例21 外RAM→内RAM
实例22 ROM→内RAM
第2章 输出信号控制
2.1 键控信号灯
实例23 单灯闪烁
实例24 双键控3灯
实例25 双键控4灯
实例26 无锁按键的4种不同键控方式
2.2 循环灯
实例27 流水循环灯
实例28 花样循环灯
2.3 模拟交通灯
实例29 模拟交通灯
实例30 带限行时间显示的模拟交通灯
2.4 输出音频声
实例31 单音频输出
实例32 双音频输出
实例33 播放生日快乐歌
第3章 80C51片外扩展应用
3.1 并行扩展
实例34 并行扩展8位TTL输入输出口
实例35 并行扩展16位TTL输入输出口
实例36 并行扩展8255
实例37 并行扩展8155
实例38 并行扩展RAM 6264
3.2 串行扩展输入输出口
实例39 74HC165串行输入8/16位按键状态
实例40 CC4021串行输入8/16位按键状态
实例41 CC4014串行输入8位按键状态
实例42 74HC164串入并出控制8/16循环灯
实例43 CC4094串入并出控制8/16循环灯
实例44 74HC595串入并出控制8/16循环灯
实例45 74HC164+165串行输入输出
实例46 CC4021+4094串行输入输出
实例47 74HC164+165虚拟串行输入输出
实例48 CC4021+4094虚拟串行输入输出
3.3 I2C串行扩展
实例49 读写AT24C02
实例50 非零地址读写AT24C02
第4章 显示与键盘
4.1 LED数码管静态显示
实例51 单个LED数码管循环显示0~9
实例52 74LS377并行输出3位LED静态显示
实例53 CC4511 BCD码驱动3位LED数码管静态显示
实例54 74LS164串行扩展3位LED数码管静态显示
实例55 CC4094串行扩展3位LED数码管静态显示
4.2 LED数码管动态显示
实例56 PNP晶体管选通3位共阳LED数码管动态显示
实例57 74LS139选通4位LED数码管动态显示
实例58 74LS138选通8位LED数码管动态显示
实例59 74LS595串行选通8位LED数码管动态显示
实例60 8255A扩展8位LED数码管动态显示
4.3 LCD显示屏显示
实例61 LCD1602显示屏显示
4.4 键盘
实例62 4×4矩阵式键盘
实例63 8279扩展8×8键盘和8位显示
实例64 74HC595+165扩展8×8键盘
第5章 中断、定时/计数器和串行口应用
5.1 中断应用
实例65 出租车行驶里程计数
实例66 统计展览会4个入口参展总人数
实例67 利用与门扩展外中断
实例68 74HC148编码扩展外中断
5.2 定时/计数器应用
实例69 输出周期脉冲方波(示波器显示)
实例70 输出矩形脉冲波(示波器显示)
实例71 统计T0引脚上10分钟内的脉冲数
实例72 测量脉冲宽度
实例73 测量脉冲频率
实例74 定时器控制单灯闪烁
实例75 定时器控制播放生日快乐歌
实例76 定时器控制播放世上只有妈妈好歌曲
5.3 双机通信
实例77 双机串行通信方式1
实例78 双机串行通信方式2
实例79 双机串行通信方式3
实例80 带RS 232接口的双机通信
第6章 A-D和D-A
6.1 A-D转换
实例81 ADC 0808中断方式A-D(ALE输出CLK)
实例82 ADC 0808查询方式A-D(ALE输出CLK)
实例83 ADC 0808延时方式A-D(ALE输出CLK)
实例84 ADC 0808并行A-D(虚拟CLK)
实例85 ADC 0832串行A-D(TXD输出CLK)
实例86 ADC 0832串行A-D(虚拟CLK)
实例87 PCF8591I2C串行A-D(1602显示)
6.2 D-A转换
实例88 DAC 0832输出连续锯齿波
实例89 PCF8591I2C串行D-A输出连续锯齿波
第7章 时钟、测温和驱动电机
7.1 时钟
实例90 开机显示PC机时间的时钟1302(LCD1602显示)
实例91 具有校正功能的时钟1302(LCD1602显示)
实例92 开机显示PC机时分秒的时钟1302(LED数码管显示)
实例93 带校正时分秒的时钟1302(LED数码管显示)
实例94 模拟电子钟(由80C51定时器产生秒时基)
实例95 99.9秒秒表
实例96 能预置初值的倒计时秒表
7.2 测温
实例97 一线式DS18B20测温
7.3 电机驱动
实例98 驱动四相步进电机
实例99 驱动二相步进电机
实例100 直流电机正反转及PWM调速
第8章 Keil C51编译软件操作基础
8.1 项目建立和设置
8.1.1 创建工程项目
8.1.2 设置工程属性
8.1.3 输入源程序
8.2 程序编译运行
8.2.1 程序编译链接
8.2.2 程序运行调试
8.3 常用窗口介绍
8.3.1 项目文件/寄存器窗口
8.3.2 输出窗口
8.3.3 变量观察窗口
8.3.4 存储器窗口
8.3.5 80C51功能部件运行对话窗口
8.3.6 串行输入/输出信息窗口
第9章 Proteus ISIS虚拟仿真软件操作基础
9.1 用户编辑界面
9.1.1 启动Proteus ISIS
9.1.2 Proteus ISIS主菜单
9.1.3 Proteus ISIS工具栏
9.2 电路原理图设计和编辑
9.2.1 新建原理图设计
9.2.2 选择和放置元器件
9.2.3 对象操作
9.2.4 布线
9.2.5 电气规则检查
9.3 虚拟仿真运行
9.3.1 仿真运行
9.3.2 Proteus与Keil联合仿真调试
前言
单片机应用领域之广,几乎到了无孔不入的地步,自动化、数字化、智能化、信息化均离不开单片机的应用。因而工科类专业,普遍开设了“单片机应用”课程。然而,单片机课程是一门实践性很强的课程,既需要学习理论知识,更需要实验实训应用。本书即为单片机实验实训应用教材,并有以下特点:
⑴ 基于KeilC51和Proteus软件。单片机实验实训需要配备价格不菲的开发装置,且各校硬件实验设备各不相同。本书编写基于KeilC51和Proteus软件,读者可在PC机上,不涉及具体硬件实验设备,虚拟单片机应用电路和目标程序调试运行。既能教学演示观赏,又可让学生课后边学边练、实验操作。使单片机教学变得相对方便和有效。
⑵ 网上免费下载仿真文件包。为降低书价不配光盘,将原光盘内容改为仿真文件包,内含100实例的Proteus仿真电路DSN文件和驱动程序hex文件,不设门槛,免费下载。其中hex文件由书中相应程序在Keil编译时自动生成。可能有读者认为,自行输入冗长的C51程序,很不方便。但有利于感悟C51对程序输入的要求,这也是一个学习过程。况且,学习本书程序,不是简单的观看Proteus仿真运行效果,而是在理解的基础上,修改、验证、移植、拼接、创新,编写出自己的运行程序,并在Proteus ISIS虚拟电路上仿真运行。编者赞赏的是后一种学习方法,更能取得良好的学习效果。
⑶ 全部通过Keil调试和Proteus虚拟仿真。前22例因不涉及80C51单片机片外元件,无Proteus虚拟仿真,仅通过Keil调试;后78例全部通过Keil调试和Proteus虚拟仿真。因此,100实例电路与程序真实可靠,能直接用于或移植于实际工程项目。
⑷ 实例项目内容丰富,便于选择。100实例为常见常用教学和工程案例,基本上能适用和满足绝大多数院校和专业的教学需求。但软件仿真不宜完全替代单片机实际硬件实验实训,编者建议,读者可根据本校硬件实验设备情况和专业需要,从中选择部分案例,进一步硬件实验实训操作,以增强教学效果。
⑸ 程序条理清晰,每条语句均有注释,便于阅读理解。实例项目中,若遇有74系列TTL、CMOS4000系列、I2C或其他接口电路芯片时,均给出电路芯片功能和应用介绍。
本书由上海电子信息职业技术学院张志良主编,邵瑛、邵菁、刘剑昀参编。其中第1、2章由邵瑛编写,第3、4章由邵菁编写,第5、6章由刘剑昀编写,其余部分由张志良编写并统稿。
张志良 2014.4.1
|