单片机应用技术项目教程(微课版)(txt+pdf+epub+mobi电子书下载)


发布时间:2021-03-11 05:49:28

点击下载

作者:郭志勇

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

单片机应用技术项目教程(微课版)

单片机应用技术项目教程(微课版)试读:

前言

本书紧跟职业教育的教学改革潮流,教材内容选取突出行业性、实用性、科学性和操作性,采用企业真实任务、贴近职业岗位实际需求,在拉近单片机教学与职业岗位需求距离的同时,兼顾知识的系统性和完整性,既适合教学,又符合企业实际工作需要。

本书依据“任务驱动、做中学”的编写思路,以解决实际项目的思路和操作为编写主线,下一个项目均以上一个项目的知识点为支撑,多个知识点间相互连贯,每个项目均由若干个具体的典型任务组成,每个任务又将相关知识和职业岗位基本技能结合在一起,把知识、技能的学习融入任务完成过程中。本书重点突出技能培养在课程中的主体地位,采用全新的仿真教学模式,使用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头文件 sbit LED=P1^0; //定义LED 为P1.0 引脚 void main (void) { LED=0; //P1.0 引脚输出低电平点亮LED while(1); }

程序编程说明:(1)“#include”语句是一个“文件包含”处理语句,是将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键),就执行一条指

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载