51单片机零基础轻松入门视频教程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-09 23:22:23

点击下载

作者:何应俊,高波,等

出版社:电子工业出版社

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

51单片机零基础轻松入门视频教程

51单片机零基础轻松入门视频教程试读:

前言

单片机在智能控制领域的应用已非常普遍,发展也很迅猛,学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出,但51单片机价格低廉、易学易用、性能成熟,在家电和工业控制中有一定的应用,而且学好了51单片机,也就容易学好其他的新型微控制器(AVR、PIC、STM8、STM32等),另外,51单片机的例程很容易移植到其他单片机系统中。因此,现在的大中专院校学生都将51单片机作为入门首选。为了帮助零基础(指没有单片机基础和C语言编程经验)的初学者快速入门和提高,我们总结教学和辅导学生参加技能大赛的经验和教训,充分考虑初学者的认知特点,编写了本书。【本书特点】(1)按照先易后难的顺序编排。每章设有“本章导读”“学习目标”和“学习方法建议”,有利于初学者在学习过程中掌握重点,有的放矢,符合初学者的特点。(2)知识和技能都围绕着具体的应用(开发)示例展开,初学者能感受到学习单片机的应用价值,能看到学习效果,体会到成功的喜悦,容易激发进一步学习、探索的积极性。(3)为了使初学者轻松阅读,本书对可能对初学者造成阅读障碍的内容做了详细的解释,读者可以选择性阅读(若能看懂,则不需要看解释)。(4)部分章节后附有典型的训练题。部分训练题比较典型,有一定的应用价值,如点焊机、生产线的控制等。读者可先独立去做,若有障碍,再阅读本书所赠视频教程中的参考程序。(5)本书各项目的程序代码都已在YL-236单片机实训考核装置上得到验证。读者若没有YL-236单片机实训考核装置,可以在其他实验板或自制的实验板、实验模块上完成实验(注意:不同的单片机实验板,原理和方法实质是一样的。读者不需要拘泥于某种实验板,这也有利于增强对硬件的灵活应用能力)。(6)本书目录较为详细,有利于需要选择性阅读的读者阅读相关知识点和相关章节。【本书所赠视频教程说明】

● 包含的内容

C语言入门讲解视频;常用的单片机开发工具软件的安装、使用视频。

● 本视频的特点

力求符合初学者的学习特点,理论联系实际,通俗易懂。本视频按内容共分为21讲(按内容的连贯性编写序号),以便读者连续性学习或根据需要选择性地学习。

● 如何使用

读者可以登录华信教育资源网(www.hxedu.com.cn)注册后免费下载与本书相关的视频教程;初学者在学习本书入门篇时若遇到障碍,建议先系统学习视频教程,再学习本书入门篇。

● 其他附赠内容及索取方式

本书的附赠内容除视频文件外,还包括单片机常用的工具软件(如Keil、STC下载工具、取模工具等)、书中部分例程相关硬件的搭建、实现的效果展示等。如有需要的读者可发邮件至邮箱(948832374@qq.com),索取百度网盘提取码后进行下载。

本书适合欲学习单片机的初学者、大中专学生,用于入门和初步提高,不适合单片机应用的熟手和高手。

本书由何应俊、高波(长阳职教中心)、蔡红珍(长阳二中)担任主编。参编人员有长阳职教中心向阳、许红英、杨洲、刘江龙、高光俊等。

由于编者水平有限,书中若有错漏和不妥之处,恳请广大读者批评指正(邮箱:948832374@qq.com,qq:948832374)。编者第1篇 入门篇第1章学习单片机的必备基础【本章导读】

本章简洁明了地介绍了什么是单片机,单片机的应用、引脚功能、工作条件(最小系统)、数制和数转换方法、单片机的开发环境等,是学习本书的必备基础知识。本章从实用的角度省略了一些知识,大幅降低了阅读难度。【学习目标】(1)了解单片机的基本结构和单片机控制系统的基本结构。(2)熟悉STC89C52(AT89S52)单片机的4组I/O口,了解P3端口的第二功能。(3)理解STC89C52(AT89S52)单片机的最小系统。(4)掌握二进制、十六进制、十进制数之间的转换方法。(5)了解单片机控制系统的硬件搭建方法。(6)掌握Keil μVision软件的安装方法。(7)掌握单片机编程环境的建立方法。(8)掌握单片机程序代码的编译、下载(烧写方法)。【学习方法建议】(1)对不同数制的转换,了解即可,着重掌握用计算机操作系统自带的计算器进行数制转换。(2)对单片机的最小系统要理解,会搭建。(3)关于单片机的端口,首先着重熟悉4组I/O口。(4)其余的理论内容易理解,操作方法面的内容可“按图索骥”式地学习和操作。1.1 单片机的基本知识1.1.1 单片机的结构

单片机是单片微型计算机的简称,由于它主要用于控制领域,所以通常将其称为微型控制器(英文缩写为MCU),它和普通微型计算机一样都由中央处理器(CPU)、存储器(RAM 和 ROM)和输入/输出接口(称为I/O 口)等组成,但它们的结构有很大的不同,详见表1-1。表1-1 普通微型计算机和单片机在结构上的相同点和不同点1.1.2 单片机封装示例

单片机的外形(封装)有直插式和表面安装式两种,详见表1-2。表1-2 单片机的外形(封装)1.1.3 单片机的应用场合

微型计算机性能好、功能强,但价格贵、体积大,而单片机价格低廉(从1元至几十元),体积小、种类丰富、功能齐全,因此在控制领域有广泛的应用,如下所示:

① 在家电领域,如彩电、电冰箱、空调器、洗衣机的控制系统,以及中高档微波炉、电风扇、电饭煲等;

② 在通信领域,如移动电话、传真机、调制解调器、程控交换机、智能线路检测仪等;

③ 在商业领域,如自动售货机、防盗报警系统、IC卡等;

④ 在工业领域,如无人操作系统、机械手、工业生产过程控制、生产自动化、数控机床、设备管理、远程监控、智能仪表等;

⑤ 汽车领域,如汽车智能化检测系统、汽车自动诊断系统、交通信息的接收系统、汽车卫星定位系统、汽车音响等;

⑥ 在航空、航天和军事领域,如飞机、宇宙飞船、导弹等。1.1.4 单片机控制系统的基本结构

单片机控制系统包含硬件部分和软件(程序代码)部分。

硬件部分就像人的身体(不含大脑内的思想),包含输入部分、控制器、驱动器和负载这几部分。控制器(单片机)根据输入的信号,经过运算后,输出控制信号,经驱动电路控制相应的负载按设计者的思想去完成工作,如图1-1所示。图1-1 单片机控制系统的硬件基本结构

软件部分就像人的大脑内的思想。要使单片机按设计者的意愿去完成控制工作,设计者就要把自己的意愿用特定的语言(如C语言、汇编语言等)编写成程序代码,并输入、存储在单片机内部的存储器内,于是单片机就有了思想,就能按设计者的意愿去进行控制。1.1.5 单片机控制系统的开发过程

① 根据控制系统要完成的工作任务选取元器件。

② 根据元器件的特性和电路原理将其连接成正确的电路。

③ 根据工作任务编写程序。

④ 调试、修改程序,烧入单片机,使之满足工作任务的需要。

⑤ 制作单片机控制系统成品。

注:对于很多控制系统,第①~④步可以在实训板(开发板)上进行模拟,成功后再选用元器件连接成硬件电路,烧入程序,制作控制系统的成品。1.2 51单片机的引脚

单片机的种类很多,性能各有差异,功能也各有所侧重,详见附录 A。本书旨在帮助读者快速入门,因此基于经典的51单片机和相应的实训板(HP-8)进行讲解。1.2.1 51单片机的引脚功能

初学单片机,要着重掌握单片机各引脚的功能,特别是要掌握4组输入、输出端口(I/O口)的功能,因为它们是单片机接收外界信号、输出控制指令的端口。至于单片机部分引脚的第二功能[即图1-2中()内的内容],暂不介绍,将在后续章节结合具体应用实例介绍。下面以AT89S52为例进行介绍,其外形有40脚双列直插式(PDIP)封装、44脚贴片式(PLCC)封装等。PDIP封装的引脚名称如图1-2所示。图1-2 AT89S52单片机的引脚基本功能

图1-2所示的AT89S52单片机各引脚的基本功能详见表1-3。表1-3 AT89S52单片机各引脚的基本功能(29、30、31脚暂时不需深入了解)续表注:STC89C52单片机的引脚分布和引脚功能与AT89S52完全相同。1.2.2 TTL电平和COMS电平的概念1.TTL电平

用+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称作TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电路的电平就叫作TTL电平(在其他数字电路中,TTL电平就是由TTL电子元器件组成的电路使用的电平。电平是一个电压范围,规定输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出的高电平是3.5V,输出的低电平是0.2V)。2.COMS电平

CMOS集成电路使用场效应管(MOS管),功耗小,工作电压范围很大,速度相对于TTL电路来说较低。但随着技术的发展,其速度在不断提高。

CMOS电路的电平就叫作CMOS电平。具体而言,COMS电平就是:高电平(1逻辑电平)电压接近于电源电压,低电平(0逻辑电平)电压接近于0V。

TTL电路和COMS电路相连接时,由于电平的数值不同,TTL的电平不能触发CMOS电路,COMS的电平可能会损坏TTL电路,因此不能互相兼容匹配,这就需要设置电平转换电路。1.3 单片机的最小系统

单片机的最小系统包括直流供电、时钟电路、复位电路。这些电路处于正常状态是单片机正常工作的必需条件。最小系统的电路如图1-3所示。图1-3 单片机的最小系统(注:I/O口没有画出)1.3.1 直流供电

没有直流供电或不正常,单片机肯定不能正常工作。AT89S52单片机的工作电压为4~5.5V,推荐电压为5V。5V直流电压可由专用的5V直流电源(如图1-4所示)提供。也可以将220V交流电降压、整流,再用三端稳压器7805稳压后得到5V直流电压。

由于在一般的应用中单片机使用的是内部程序,所以图1-3中的31脚要接电源(高电平),若接地,则单片机访问外部程序(使用外部程序存储器)。图1-4 5V直流电源1.3.2 时钟电路

时钟电路的作用是产生时钟信号(为脉冲信号)。时钟信号的作用是使单片机按一定的时间规律一步一步地进行工作(执行指令)。时钟电路由图1-3中单片机18、19、20脚外接的两个瓷片或贴片电容23(C、C)、一个晶振和单片机的部分内部电路组成。常用的晶振频率有6MHz、11.0592MHz、12MHz、24MHz。晶振的频率越高,时钟信号的周期就越小,单片机运行也就越快。瓷片电容的值为10~30pF,电容对时钟信号的频率有一定的影响,制作高精度电子钟时需注意。1.3.3 复位电路

复位是单片机的初始化操作。单片机启动运行时,都需要先复位,其作用是“清零”,也就是使CPU和其他部件处于一个确定的初始状态,并从这个状态开始工作。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。

复位实质上是在单片机上电后,使单片机的复位脚(9脚)保持一定时间(很短,一般为几个机器周期)的高电平,然后再变为低电平。复位的方法有以下两种。

① 上电复位:由9脚外接的电解电容器C1(注:容量可取1~20μF)和电阻R1(阻值可取1~10kΩ)组成。

② 手动复位:由按键K、限流电阻R2等组成。系统上电后,手动按一下按键K,可使单片机重新复位。当自动复位出现故障后,按下该按键,也可以使单片机复位。

图1-3所示的这个最小系统是单片机正常工作所必需的,但是该电路不能实现任何控制功能,因为没有使用 I/O 口。单片机要实现自动控制,就需要接收、输出信息,这必须通过 I/O 口来实现。在后续章节介绍的实例电路中,都使用了一些 I/O 口。至于电源、时钟、复位电路,就不再画出了(读者自己要明白,该电路是必需的)。

在某单片机实训开发板上,时钟电路和复位电路元件的实物外形如图1-5所示。图1-5 某单片机实训开发板上的时钟电路、复位电路元件的实物外形1.4 数制及相互转换简介

日常生活中,人们习惯采用十进制数。在单片机的C语言编程中一般采用二进制数、十六进制数和八进制数。对于一个固定的数,用不同进位制的数制表示时,数码不一样,但大小是一样的。采用C语言编程时,常需要对一个数进行数制的转换。1.4.1 十进制数

十进制数用0,1,2,3,4,5,6,7,8,9十个基本数字符号的不同组合来表示,计数的基数是10。当任何一个数比9大1时,则向相邻高位进1,本位复为0,其计数规律是“逢十进一”。十进制数可用下标“D”来表示,也可以不加下标“D”。一个十进制数有个位、十位、百位等,任何一个十进制数都可以用该数的各位数码乘以该位的加权系数来表示。例如,对一个十进制2138的表示方法如下所示。

各位的数码:    2(千位)   1(百位)   3(十位)  8(个位)3210

数位的加权系数: 10     10     10    103210DD

2138=(2×10 +  1×10  +  3×10 + 8×10)1.4.2 二进制数

二进制数只有0、1两个数码。二进制数可用下标“B”来表示,是按“逢二进一”的原则进行计数的,例如,DBDBDBDBDB0=0,1=1,2=10,3=11,4=100。

同样,任何一个二进制数都可以用该数的各位数码乘以该位的加权系数来表示。例如,对一个二进制数1011的表示方法如下所示。

各位的数码:    1      0      1       1321

数位的加权系数: 2(值为8) 2(值为4) 2(值为1)0  2(值为1)3210BD

1011=(1×2  +  0×2 +  1×2  +  1×2)D

=11

这也就是二进制数转化为十进制数的方法。1.4.3 十六进制数

十六进制数共有16个数码:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。其中A,B,C,D,E,F分别对应着十进制的10,11,12,13,14,15。十六进制数可DHDH用下标H来表示。计数规律是逢“十六进一”。例如,9=9,10=A,DHDHDH…,14=E,15=F,16=10(逢十六进了一位,原位归0)。

同样,任何一个十六进制数都可以用该数的各位数码乘以该位的H加权系数来表示。例如,对一个十六进制数0A3F的表示方法如下所示。3210H

0A3F=(0×16+A×16+3×16+F×16)D=(0+10×256+3×D16+15×1)D=2623。

这也就是十六进制数转化为十进制数的方法。1.4.4 八进制数

八进制数共有0,1,2,3,4,5,6,7共8个数码,其计算规律是“逢八进一”(略)。1.4.5 各种数制之间相互转换的方法1.各种数制转换为十进制

各种数制转换为十进制的方法在1.4.2节和1.4.3节中已做介绍。2.十进制数转换为二进制数

十进制数转换为二进制数的方法是用十进制数不断除以2,所得到的余数即为相应的二进制数。注:第一次得到的余数为二进制数的最低位,直到商为0时所得到的余数为二进制数的最高位。例如,将十进制数14转换为二进制数的方法如下所示。DB

因此,14=1110。3.十进制数转换为十六进制数

与十进制转换为二进制数相似,十进制数转换为十六进制数的方法是用十进制数不断除以16,所得到的余数即为相应的十六进制数。注:第一次得到的余数为十六进制数的最低位,直到商为0时所得到的余数为十六进制数的最高位。4.十六进制数转换为二进制数

十六进制数转换为二进制数的方法是将十六进制数的每一位数码先转化为十进制数,再转换成4位二进制数,若不足4位,则将高位补0。

例如,十六进制数“2E”中的“2”转换为十进制数仍为“2”,转换为二进制数为“0010”,“E”转换为十进制数为14,再转换为HB二进制数为“1110”,因此2E=00101110。5.二进制数转换为十六进制数

以小数点为界,将二进制数每4位为一组,小数点左边若不足4位,则在高位补0,小数点右边若不足4位,则在低位补0。再将每一组转换为十进制数,然后转换为十六进制数。

例如,对二进制数“101101”的转换方法如下所示。

其中0010转换为十进制数为2,再转换为十六进制数仍为2;1101转换为十进制数为13,再转换为二进制数为D,因此,转换结果为2D,BH即101101=2D。6.利用计算器快捷地进行数制转换(1)计算器的调出方法

利用计算机操作系统自带的计算器,可以快捷地进行各种数制的转换,这在单片机的C 语言编程中经常使用,十分方便。其方法是:以 XP 操作系统为例,用鼠标左键依次单击“开始”→“所有程序”→“附件”→“计算器”,弹出的计算器界面如图1-6所示。图1-6 标准型计算器界面

用鼠标左键依次单击“查看”→“科学型”,弹出的科学型计算器界面如图1-7所示。(2)利用计算器进行数制转换的方法

以十进制数18转换成十六进制数为例,首先用鼠标左键单击选中所需的数制(十进制),再输入十进制数的具体数值18,接下来单击“十六进制”,则相应的十六进制数会在显示区显示出来。(注:①计算器中数码的输入可使用鼠标,也可使用键盘;②其他计算机操作系统中也都自带有计算器)。图1-7 科学型计算器界面1.5 搭建51单片机开发环境

51单片机的开发环境包括硬件开发系统和软件编程环境,两者缺一不可。1.5.1 搭建硬件系统

一般的计算机程序员只需关注软件开发环境和程序代码,因为其代码是运行在通用的计算机系统上的。而单片机开发人员不仅要关心代码,还要设计硬件电路。因为单片机的程序是运行在一个独立的单片机系统(由单片机和相应的外围电路构成,控制功能不同,则相应的外围电路也就不同),而不是运行在通用的计算机中的。硬件系统可以自行搭建,但一般多用开发板(或叫实验板)来模拟硬件系统,较为方便、快捷。(1)自行搭建单片机硬件系统

根据需要实现的控制功能绘制原理图,再根据原理图准备元器件,在万能板上用导线将元器件连接(焊接)成完整的电路,这就是自行搭建的单片机硬件系统。

★ 注意

①万能板有单孔板和连孔板两种。搭建单片机硬件系统宜采用单孔板,如图1-8所示。图1-8 单孔板

② 单片机不宜直接焊接在电路板上,而是先在电路板上焊上插座,再将单片机插入插座,这样可方便地拆装单片机。

自行搭建的单片机硬件系统如图1-9所示。图1-9 自行搭建的单片机硬件系统(示例)

由于该电路没有设置下载(烧写)程序的电路,所以需将单片机插入编程器(就是单片机的最小系统加上下载电路)中,将在计算机上编好的代码下载(烧写)到单片机的程序存储器(ROM)中,再将单片机插入硬件系统中的单片机专用插座,然后就可以通电调试了。单片机编程器价格低廉,在电子市场和淘宝网上很容易购到。某51单片机编程器如图1-10所示。也可以在电路板上设置下载程序的电路。(2)单片机开发实验板

单片机开发实验板上有多种功能的硬件。为了将各种硬件组合成不同功能的电路,实验板上设置了若干插针或插孔,通过插接线,可以将硬件连接成不同的电路,实现不同的控制功能,如图1-11(a)和图1-11(b)所示。图1-10 51单片机编程器(示例)图1-11 单片机开发实验板示例图1-11 单片机开发实验板示例(续)

从图1-10可以看出,实验板带有ISP下载接口、USB下载接口、串行下载接口,并有相应的下载线(下载器)。下载线(下载器)一端的插头接在实验板上相应的接口上,另一端接在计算机的USB输出接口或串口上,用下载工具软件可以将在计算机上编写的程序代码下载到实验板上的单片机中,如图1-12所示。图1-12 51单片机实验板下载器

ISP 下载的意思是在线编程,即不需将单片机从系统中卸下,可直接对系统中的单片机进行编程(即“下载程序”)。USB下载、串口下载都可以实现在线编程。

注:使用自行搭建的单片机硬件系统或者使用单片机开发实验板完成了一个产品的设计后,需要将该产品的电路设计成印制电路板(PCB)文件,经打样制成正式印制电路板,装配成正式产品。1.5.2 搭建软件开发环境(Keil μ Vision)

有了硬件系统,还需要一个友好的软件开发环境。Keil μVision系列软件是最为经典的单片机软件集成开发环境,支持汇编语言、C语言及C语言和汇编语言的混合编程,能将用汇编语言或 C 语言编写的程序代码自动转化为“.hex”文件格式,可用专用的下载工具下载到单片机的存储器内。

目前常用的版本有Keil μVision2、Keil μVision3、Keil μVision4,高版本的功能更齐全、更友好。

这些软件可以在网络上下载,本书赠送的资料中也含有该软件。安装、卸载方法详见本书所附视频教程。1.5.3 Keil μ Vision4的最基本应用—第一个C51工程1.启动Keil μVision4

双击桌面上的Keil μVision4的图标,启动Keil μVision4编译器,界面如图1-13所示。图1-13 Keil μVision4编译器

注:菜单栏中各个菜单的子菜单也很多,详见附赠视频教程。各个子菜单的作用需在具体的应用中逐步掌握,这里不作介绍。同样,各个工具栏中工具的作用也需在应用中掌握。2.创建一个工程

以点亮一个发光二极管(LED)为例。

① 新建工程。在菜单栏用鼠标左键依次单击【Project】(工程)→【New μ Vision Project】(新工程),如图1-14所示。图1-14 新建工程

② 命名与保存。在弹出建立新工程的选择框中给工程命名、选择存储位置(这里将其存储在桌面的“单片机项目”文件夹中),单击【保存】,如图1-15所示。保存之后弹出选择芯片对话框,如图1-16所示。图1-15 给新工程命名、选择存储位置

③ 选芯片。在弹出的选择芯片对话框(见图1-16)中,假设我们现在使用的是Atmel公司的AT89S52,因此应单击Atmel左边的“+”,在展开的项目中单击“AT89S52”,再单击【OK】,弹出询问是否将系统自带的初始化文件添加到工程对话框,如图1-17所示。一般应选【是】。这时在图1-18所示的主界面左边的“Project”面板(即项目管理窗口)中会显示出新建的工程。工程建立完毕。图1-16 选择芯片对话框图1-17 询问是否将系统自带的初始化文件(启动文件)添加到工程对话框

如果没有显示出“Project”面板,则可单击工具栏中的图标“”中的下三角符,再单击“Project”(如图1-18所示),则“Project”面板会显示出来,如图1-19所示。图1-18 单击“Project”

④ 新建源程序文件(即用来编写程序的文件)。(a)单击【File】→【New】或单击快捷图标,在软件编辑窗口会出现一个文本编辑窗口,如图1-20所示。图1-19 “Project”面板图1-20 新建源程序文件

此时不必急于输入内容(输入也不会出错)。再单击保存该文件,默认情况是与工程文件保存在同一个文件夹里,一般不需改变。注:给源文件命名时,一定要加上扩展名“.c”,以表明它是一个 C 语言程序文件,如图1-21所示。若是汇编语言程序,则应加扩展名“.a或.asm”。图1-21 给源文件命名(b)将源程序文件添加到工程中。在“Project”面板中,用鼠标右击【Source Group 1】→左键单击【Add Files to Group‘Source Group 1'】(如图1-22所示),在弹出的对话框(如图1-23所示)中,选择工程保存的目标文件夹(注:本例的工程文件存储在桌面的“单片机项目”文件夹中),双击打开,再选择源程序文件,单击【Add】,如图1-23所示。此时,“Project”面板中会出现刚才添加的源程序文件。若没有,单击“+”号展开后就能看见。若没有“+”号,说明添加源程序文件不成功。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载