单片机应用技术项目教程(微课版)pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:单片机应用技术项目教程(微课版)pdf/doc/txt格式电子书下载
推荐语:
作者:郭志勇编
出版社:人民邮电出版社
出版时间:2019-02-01
书籍编号:30471572
ISBN:9787115504210
正文语种:中文
字数:370678
版次:1
所属分类:教材教辅-中职/高职
版权信息
书名:单片机应用技术项目教程(微课版)
作者:郭志勇
ISBN:9787115504210
版权所有 · 侵权必究
内容提要
本书基于应用最广泛、高速、低功耗、超强抗干扰的新一代8051单片机——STC系列单片机展开介绍,共设置有11个项目30个任务以及2个课程设计范例。采用“项目引导、任务驱动”的模式,突出“做中学”的基本理念。前7个项目注重职业岗位的基本技能训练,主要介绍单片机硬件系统、单片机开发系统、单片机并行端口应用、定时与中断系统、显示与键盘接口技术、A/D与D/A转换接口、串行接口通信技术以及单片机应用系统设计方法等内容。后4个项目和2个课程设计范例注重职业岗位的开发技能训练,主要介绍键盘控制电机方向和转速、多路温度采集监控系统、按键设置液晶电子钟、16×32 LED点阵显示、双向四车道交通灯和温湿度监控系统等单片机产品的开发方法、关键知识以及设计与实现。
本书依据“任务驱动、做中学”的编写思路,每个任务均将相关知识和职业岗位基本技能结合在一起,把知识、技能的学习融入任务完成过程中。
本书提供微课教学资源、单片机开发套件以及单片机典型应用项目,既可作为高职高专院校嵌入式技术与应用、物联网应用技术、智能控制技术、计算机应用技术、电子信息等相关专业单片机应用技术课程的教材,也可作为广大电子产品制作爱好者的自学用书。
前言
本书紧跟职业教育的教学改革潮流,教材内容选取突出行业性、实用性、科学性和操作性,采用企业真实任务、贴近职业岗位实际需求,在拉近单片机教学与职业岗位需求距离的同时,兼顾知识的系统性和完整性,既适合教学,又符合企业实际工作需要。
本书依据“任务驱动、做中学”的编写思路,以解决实际项目的思路和操作为编写主线,下一个项目均以上一个项目的知识点为支撑,多个知识点间相互连贯,每个项目均由若干个具体的典型任务组成,每个任务又将相关知识和职业岗位基本技能结合在一起,把知识、技能的学习融入任务完成过程中。本书重点突出技能培养在课程中的主体地位,采用全新的仿真教学模式,使用C语言编程,配有丰富的微课视频和教学资源。读者可以扫描封面的二维码直接登录“微课云课堂”(www.ryweike.com)→用手机号注册→在用户中心输入本书激活码(44ca12d5),将本书包含的微课资源添加到个人账户,获取永久在线观看本课程微课视频的权限。
本书采用“教、学、做一体化”教学模式,可作为高职高专院校计算机应用技术、电子信息、机电等相关专业单片机技术课程的教材,也可作为广大电子产品制作爱好者的自学用书。设计学时为64~96学时。参考学时分配为:项目一6~8学时、项目二8~10学时、项目三6~10学时、项目四8~10学时、项目五6~8学时、项目六6~8学时、项目七6~10学时、项目八4~6学时、项目九4~8学时、项目十4~8学时、项目十一6~10学时。
本书作者团队既有学校的骨干教师,又有项目研发人员和高新企业的工程师。安徽电子信息职业技术学院省级教学名师郭志勇担任主编,并对本书的编写思路与大纲进行了总体规划,指导全书的编写,承担全书各个项目的连贯及统稿工作;王韦伟、曹路舟担任副主编。合肥求精电子有限公司提供本书配套的单片机开发板散件、典型应用项目,以及电子产品设计与制作竞赛的相关课程资源。项目一、项目十一和课程设计范例二由郭志勇编写,项目二和项目十由王韦伟编写,项目三和项目八由巩雪洁编写,项目五和项目九由李健编写,项目四和项目七由陈小永编写,项目六和课程设计范例一由王宾编写。参加本书电路调试、程序调试、素材收集、校对等工作的还有曹路舟、赵黎明、林艺春、郭雨、张长井、杨振宇、郭丽等,在此一并表示衷心感谢。
由于时间紧迫和编者水平有限,书中难免会有不妥之处,敬请广大读者和专家批评指正。
编者
2018年10月
项目一 发光二极管LED控制
项目导读
本项目从设计第一个任务“点亮一个LED”入手,首先让读者对Proteus和Keil C51软件有一个初步了解;然后介绍单片机和单片机最小系统以及C语言语句的基本概念。通过LED控制电路焊接制作和声光报警器的设计与实现,读者将进一步了解单片机应用系统的开发流程。
1.1 任务1 点亮一个LED
工作任务
使用STC89C52单片机,将P1.0引脚接LED(发光二极管)的阴极,用C语言程序控制,从P1.0引脚输出低电平,使LED点亮。
1.1.1 用Proteus设计第一个LED控制电路
1. Proteus仿真软件简介
本书使用Proteus 7.5 SP3 Professional中文版。Proteus是英国Labcenter Electronics公司开发的多功能电子设计自动化(EDA)软件。Proteus不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,也是目前较先进的单片机和嵌入式系统的设计与仿真平台。它可以在计算机上实现从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成印刷电路板(PCB)的完整的电子设计研发过程。
2. “点亮一个LED”电路设计分析
按照任务要求,“点亮一个LED”电路由STC89C52单片机、时钟电路、复位电路和LED电路等构成。STC89C52单片机是宏晶公司推出的新一代高速、低功耗、超强抗干扰、超低价的单片机。
LED加正向电压发光,反之不发光。一般接法是阳极接高电平,阴极接单片机的某一输出口线。当输出口线为低电平时,LED亮;当输出口线为高电平时,LED不亮。这样我们只要编程控制单片机的输出口的电平,就可控制LED亮或灭。
在本任务中,LED阳极通过220Ω限流电阻连接到5V电源上。电阻在这里起到了限流的作用,使通过LED的电流被限制在十几毫安左右。P1.0引脚接LED的阴极,P1.0引脚输出低电平时对应的LED点亮,输出高电平时对应的LED熄灭。“点亮一个LED”电路设计如图1-1所示。
图1-1 电路设计
3. 用Proteus制作“点亮一个LED”电路
这里介绍两种运行Proteus仿真软件的方法。第一种是双击桌面上的ISIS 7 Professional图标;第二种是依次单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional”→“ISIS 7 Professional”,进入Proteus ISIS集成环境,如图1-2所示。
图1-2 Proteus ISIS集成环境
(1)新建设计文件
单击“文件”→“新建设计”,在弹出的“新建设计”对话框中选择“DEFAULT”模板后单击“确定”按钮,如图1-3所示。
图1-3 “新建设计”对话框
(2)设置图纸尺寸
单击“系统”→“设置图纸大小”,在弹出的“Sheet Size Configuration”对话框中选择“A4”图纸尺寸或自定义尺寸后单击“确定”按钮。
(3)设置网格
单击“查看”→“网格”,显示网格(再次单击,网格隐藏)。单击“查看”→“Snap xxth”(或Snap x.xin)可改变网格单位,默认为“Snap 0.1in”。
(4)保存设计文件
单击“文件”→“保存设计”,在弹出的“保存ISIS设计文件”对话框中指定文件夹,输入文件名“点亮一个LED”,并选择保存类型为“设计文件(*.DSN)”后单击“保存”按钮。
(5)添加元器件
单击模式选择工具栏的“元件”按钮,单击“器件选择”按钮
,弹出“Pick Devices”(选取元器件)对话框,在“关键字”栏中输入元器件名称“AT89C52”,与关键字匹配的元器件“AT89C52”显示在元器件列表中,如图1-4所示。
图1-4 “Pick Devices”对话框
双击选中的元器件“AT89C52”,便可将所选元器件“AT89C52”加入到对象选择器窗口,单击“确定”按钮完成元器件选取。
用同样的方法可以添加其他元器件。在“点亮一个LED”电路中,需要添加AT89C52单片机、CRYSTAL(晶振)、CAP(电容)、CAP-ELEC(电解电容)、RES(电阻)、LED-RED(红色发光二极管)等元器件。
注意
Proteus仿真软件中没有STC89C52、AT89S52等单片机,可以用AT89C52代替(然后修改为STC89C52即可),也可以选择其他51类型,不影响本书中相关电路的学习。
(6)放置元器件
单击对象选择器窗口的元器件“AT89C52”,元器件名“AT89C52”变为蓝底白字,预览窗口显示“AT89C52”元器件;单击方向工具栏的按钮可实现元器件的左旋、右旋、水平和垂直翻转,以调整元器件的摆放方向;将鼠标指针移到编辑区某一位置,单击一次就可放置元器件“AT89C52”。
参考上述放置AT89C52单片机的步骤,依照图1-1放置其他元器件。
(7)编辑元器件
单击模式选择工具栏的“编辑”按钮,进入编辑状态。右击(或单击)元器件,元器件若变为红色,表明被选中,将鼠标指针放到被选中的元器件上,按住左键拖动到编辑区某一位置松开,即完成元器件的移动。将鼠标指针放到被选中的元器件上右击,利用弹出的快捷菜单中的方向工具栏按钮可实现元器件的旋转和翻转。右击被选中的元器件,可删除该元器件。在被选中的元器件外单击,可撤销选中。
按照上述编辑方法,依照图1-1所示的元器件位置,对已放置的元器件进行位置调整。
(8)放置终端
单击模式选择工具栏的“终端”按钮,单击对象选择器窗口的电源终端“POWER”,该终端名的背景变为蓝色,预览窗口中也将显示该终端;单击方向工具栏的“左旋转”按钮
,电源终端逆时针旋转90°;将鼠标指针移到编辑区某一位置,单击一次可放置一个终端。用同样的方法放置接地终端“GROUND”。
(9)连线
单击命令工具栏的“实时Snap(捕捉)”按钮,使实时捕捉有效(再次单击,实时捕捉无效)。当鼠标指针接近引脚末端时,该处会自动出现一个小方框“□”,表明可以自动连接到该点。依照图1-1所示,单击要连线的元器件起点和终点,完成连线。
(10)属性设置
右击元器件电容C1,弹出快捷菜单,单击“编辑属性”选项,弹出“编辑元件”对话框,如图1-5所示。将电容量改为30pF,单击“确定”按钮完成元器件电容C1属性的编辑设置。用同样方法设置其他元器件的属性。
(11)电气规则检测
单击Proteus ISIS集成环境中的“工具”→“电气规则检查”,弹出检查结果窗口,完成电气检测。若检测出错,根据提示修改电路图并保存,直至检测成功。电气规则检查窗口如图1-6所示。
图1-5 “编辑元件”对话框
图1-6 电气规则检查窗口
1.1.2 用Keil C51设计第一个C语言LED控制程序
1. Keil C51简介
Keil C51是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,集编辑、编译、仿真等功能于一体,和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序、软件仿真方面都有很强大的功能。
Keil C51提供丰富的库函数和功能强大的集成开发调试工具。本书中使用Keil μVision4。Keil μVision4集成开发环境可以完成工程建立和管理、编译、连接、目标代码生成、软件仿真和硬件仿真等一系列完整的开发流程,是一款公认的功能强大的单片机开发平台。
2. 编写“点亮一个LED”的程序
由于P1.0引脚接LED的阴极,LED的阳极通过220Ω限流电阻后连接到5V电源上,所以从P1.0引脚输出低电平就可以点亮LED。“点亮一个LED”的C语言程序如下:
#include <reg52.h> //包含reg52.h头文件sbit LED=P1^0; //定义LED 为P1.0 引脚
void main (void)
{
LED=0; //P1.0 引脚输出低电平点亮LED
while(1);
}
程序编程说明:
(1)“#include<reg52.h>”语句是一个“文件包含”处理语句,是将reg52.h头文件的内容全部包含进来。该程序中包含reg52.h头文件的目的是使用“P1^0”这个符号,即通知C编译器,程序中所写的P1^0是指STC89C52单片机的P1.0引脚。
(2)P1.0不能直接使用,“sbit LED=P1^0;”就是定义用符号LED来表示P1.0引脚,当然也可以用P1_0或P10之类的名字。
(3)“LED=0;”语句是使P1.0引脚输出低电平,点亮发光二极管LED。
(4)“while(1);”语句的表达式是1,也就是说,while语句的表达式始终为真,进入死循环,LED始终点亮。
(5)Keil C支持C++风格的注释,可以用“//”进行注释,也可以用/*……*/进行注释。
3. 建立第一个Keil C51工程项目
首先我们要养成一个习惯,先建立一个空文件夹,把工程文件放到里面,避免和其他文件混合。在这里我们创建了一个名为“Mytest”的文件夹。
接下来运行Keil μVision4,第一种方法是双击桌面上的Keil μVision4图标;第二种方法是依次单击桌面左下方的“开始”→“程序”→“Keil μVision4”,进入Keil μVision4集成开发环境,如图1-7所示。
图1-7 Keil μVision4集成开发环境
(1)建立工程文件,选择单片机
单击“工程”→“新建工程”,在弹出的“新建工程”对话框中选择刚才建立的“Mytest”文件夹,并输入文件名“点亮一个LED”,不需要加扩展名,单击“保存”按钮,弹出“Select Device for Target‘Target 1’”对话框,如图1-8所示。
在CPU选项卡中,单击左侧列表框中“STC-STC89”项前面的“+”号,展开该层,单击选中列表中的“STC89C52RC”。
注意
由于Keil μVision4中没有STC单片机,可以在安装Keil μVision4时添加STC单片机。在这里可以选择STC89C52RC单片机,也可以选择52和51等其他类型的单片机,不影响本书中用到的程序运行。
图1-8 选择单片机窗口
(2)添加启动文件
单击“OK”按钮,弹出“Copy‘STARTUP.A51’ to Project Folder and Add File to Project?”对话框,询问是否复制、添加单片机启动文件到我们的工程项目中去。对于初学者来说,这里先单击“否”按钮,如图1-9所示。
图1-9 是否添加启动文件界面
STARTUP.A51启动文件是一段和硬件相关的汇编代码,其作用是对单片机内外部的数据存储器RAM初始化清零、对堆栈进行初始化设置等。执行完启动文件后,就跳转到.c文件的main函数。单击“否”按钮,对RAM初始化清零将采用默认方式。
(3)建立源文件
单击“文件”→“新建”,在文件编辑窗口中输入“点亮一个LED”C语言源程序,如图1-10所示。
图1-10 文件编辑窗口
单击“文件”→“保存”,在弹出的“另存”对话框中指定文件夹(一般与工程文件放在同一文件夹中),输入文件名“点亮一个LED.c”(C语言源程序的后缀名是“.c”),单击“保存”按钮,完成源文件的建立。
此时就可以看到,程序文本字体颜色已经发生了变化。
(4)添加源文件到工程项目文件中
在工程窗口中右击“Target 1”文件夹下的“Source Group 1”文件夹后,单击快捷菜单的“添加(加载)文件到组\'Source Group 1\'”,在弹出的“添加(加载)文件到组\'Source Group 1\'”对话框中将文件类型设为“C源文件”,单击刚才保存的源文件名“点亮一个LED.c”→单击“加载”→单击“关闭”,完成源文件加载。源文件加载窗口如图1-11所示。
当我们单击“Add”按钮时会感到奇怪,怎么对话框不消失呢?不要管它,直接单击“Close”按钮关闭就可以了。
(5)设置工程的配置参数
在工程窗口中右击“Target 1”文件夹,单击快捷菜单中的目标\'Target 1\'属性”,参数设置窗口如图1-12所示。
图1-11 源文件加载窗口
图1-12 参数设置窗口
在弹出的“目标\'Target 1\'属性”对话框中进行以下设置。
①在“目标”选项卡的晶振频率栏中,建议初学者修改成12MHz,因为12MHz方便计算指令时间。
②在“输出”选项卡中,选中“生成HEX文件”复选框,使编译器输出单片机需要的HEX文件。
③其余采用默认设置,单击“确定”按钮,完成配置参数设置。
4. 编译连接与调试
建立好第一个Keil C51工程项目“点亮一个LED”后,需要对“点亮一个LED”工程项目进行编译连接和调试。
(1)进行编译和连接
单击“工程”→“构造目标”,完成编译,生成“点亮一个LED.hex”文件。通过输出窗口查看编译信息,若提示出错,双击输出窗口中出错信息行,文件编辑窗口出错指令所在行左侧会有箭头提示,逐个排除错误后重新编译。输出窗口如图1-13所示。
(2)打开P1口对话框
单击快捷工具栏中的调试按钮,进入调试模式。单击菜单栏“Peripherals”→“I/O-Ports”→“Port 1”,打开P1口对话框,如图1-14所示。
在Peripherals菜单下面有中断、I/O口、串口、定时器等几类,用到哪个功能就选择哪个选项。
图1-13 输出窗口
图1-14 P1口对话框
(3)程序调试
在调试模式中,单击调试工具栏的运行按钮,通过P1口对话框观察P1.0引脚是否输出低电平。调试窗口显示了P1口的电平状态,如图1-15所示。Pins为引脚的状态,勾选为高电平,不勾选则为低电平。
图1-15 程序调试窗口
1.1.3 用Proteus仿真运行调试
1. 加载“点亮一个LED.hex”目标代码文件
首先打开Proteus“点亮一个LED”电路。然后双击单片机“STC89C52”,在弹出的“编辑元件”对话框中单击“Program File”后的打开按钮,在弹出的“选择文件名”对话框中选中前面编译生成的“点亮一个LED.hex”文件,然后单击“打开”按钮,完成“点亮一个LED.hex”加载HEX文件的选择,如图1-16所示。
最后将“Clock Frequency”框中的频率设为12MHz,单击“确定”按钮,即可完成加载目标代码文件。
2. 仿真运行调试
单击仿真工具栏的“运行”按钮,单片机全速运行程序,观察LED是否点亮。LED若点亮,则说明完成了“点亮一个LED”的设计。
那么如何观察单片机内部状态呢?
在单片机全速运行程序时,先单击“暂停”按钮(或直接点击
按钮),然后单击“调试”→选择“8051 CPU Registers”,再单击“调试”→选择“8051 CPU SFR Memory”,如图1-17所示。
图1-16 加载目标代码文件
图1-17 单片机内部状态选择
这样就可以分别打开工作寄存器窗口和特殊功能寄存器窗口,随后每单击“单步执行”按钮一次(或按F10键),就执行一条指令。我们就可以通过各调试窗口观察每条指令执行后数据处理的结果,以加深对硬件结构和指令的理解,如图1-18所示。
在编辑区“点亮一个LED”电路中,可以看到接在P1.0引脚上的LED被点亮,同时在打开的工作寄存器窗口和特殊功能寄存器窗口中也能看到P1口为FEH,即P1.0引脚为低电平,其他引脚为高电平。
图1-18 “点亮一个LED”Proteus仿真运行
1.2 认识单片机
随着微电子技术的不断发展,计算机技术也得到迅速发展,并且由于芯片集成度的提高而使计算机日益微型化,出现了单片微型计算机(Single Chip Computer),简称单片机,它是微型计算机发展历程中的一个重要分支。
1.2.1 单片机概述
单片机又称为微控制器(MCU),它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,即一块芯片就构成了一台计算机。单片机集成了中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、中断系统、定时器/计数器,以及输入/输出接口电路等主要部件。
1. 单片机的发展
单片机自问世以来,性能不断提高和完善,能满足很多应用场合的需要。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,适用的温度范围大、抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促进了单片机技术的发展。单片机的发展主要经历了4个阶段。
第一阶段(1974—1976年)为单片机初级阶段。由于受工艺及集成度的限制,单片机采用双片形式,且功能比较简单。如美国Fairchild公司1974年推出的单片机F8,它包含8位CPU,64B。F8还需要外接一片3851(内含1KB ROM、1个定时/计数器和2个I/O口)电路才能构成一个完整的微型计算机。
第二阶段(1976—1978年)为低性能单片机阶段。单片机采用单芯片形式,是“小而全”的微型机系统。如美国Intel公司1976年推出的MCS-48系列单片机,8位CPU,并行I/O口,8位定时器/计数器,无串行口,中断处理比较简单,RAM、ROM容量较小,寻址范围不超过4KB。这个阶段把单片机推向市场,促进了单片机的变革,各种8位单片机纷纷应运而生。
第三阶段(1978—1982年)为高性能单片机阶段,也是单片机普及阶段。此时的单片机与前两个阶段相比,不仅存储容量大、寻址范围广,而且中断源、并行I/O口、定时器/计数器的个数都有了不同程度的增加,同时还增加了串行口。如美国Intel公司在MCS-48基础上推出的高性能MCS-51系列单片机。
第四阶段(1982年以后)为16位单片机阶段。此时的单片机包含16位CPU,片内RAM、ROM容量进一步增大,增加了AD/DA转换器和8级中断处理功能,实时处理能力更强,允许用户采用面向工业控制的专用语言,如C语言等。如美国Intel公司的MCS-96系列单片机和NC公司的HPC16040系列机等。
总之,单片机发展趋势可归结为以下几个方面。
(1)增加字长,提高数据精度和处理速度。
(2)改进制作工艺,提高单片机的整体性能。
(3)由复杂指令集计算机(CISC)转向简单指令集计算机(RISC)技术。
(4)多功能模块集成技术,使一块“嵌入式”芯片具有多种功能。
(5)微处理器与DSP技术相结合。
(6)融入高级语言的编译程序。
(7)低电压、宽电压、低功耗。
目前,国际市场上8位、16位单片机系列已有很多,32位单片机也已经进入了实用阶段。随着单片机技术的不断发展,新型单片机还将不断涌现,单片机技术也将以惊人的速度向前发展。
2. 单片机的特点
单片机作为微型计算机的一个分支,与一般的微型计算机并没有本质上的区别,同样具有快速、精确、记忆功能和逻辑判断能力等特点。但单片机是集成在一块芯片上的微型计算机,与一般的微型计算机相比,在硬件结构和指令设置上均有独到之处,主要特点如下所述。
(1)体积小、重量轻,价格低、功能强,电源单一、功耗低,可靠性高、抗干扰能力强。这是单片机得以迅速普及和发展的主要原因。同时由于单片机功耗低,后期投入成本也大大降低。
(2)使用方便灵活、通用性强。由于单片机本身就构成一个最小系统,只要根据不同的控制对象做相应的改变即可,因而它具有很强的通用性。
(3)目前大多数单片机采用哈佛(Harvard)结构体系,即单片机的数据存储器空间和程序存储器空间相互独立。单片机主要面向测控对象,通常有大量的控制程序和较少的随机数据,将程序和数据分开,使用较大容量的程序存储器来固化程序代码,使用较小容量的数据存储器来存取随机数据。程序在只读存储器(ROM)中运行,不易受外界侵害,可靠性高。
(4)突出控制功能的指令系统。单片机的指令系统中有大量的单字节指令,可以提高指令运行速度和操作效率;有丰富的位操作指令,满足对开关量控制的要求;有丰富的转移指令,包括有无条件转移指令和条件转移指令。
(5)较低的处理速度和较小的存储容量。因为单片机是一种小而全的微型机系统,它是以牺牲运算速度和存储容量来换取体积小、功耗低等特色的。
3. 单片机的应用
由于单片机在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等,因此具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询