《单片机培训讲义》由会员分享,可在线阅读,更多相关《单片机培训讲义(86页珍藏版)》请在金锄头文库上搜索。
1、单片机培训一、学好单片机的必要性1、从就业角度目前各电子公司都离不开单片机设计者,需求较大,就业率高。2、从学习知识本身单片机是专业课里的基础课,是培养软硬件设计基础最合适的一门技术。学好单片机有利于以后较复杂课程的学习,比如,嵌入式系统、dsp、fpga等课程。二、学好单片机的基础条件1、兴趣第一,具备学习电子技术的兴趣是学好单片机的最重要的条件,基础差可以从头开始一点点弥补,脑子笨可以靠勤奋弥补,没有钱买学习工具可以从嘴里省,但没有兴趣只能劝你换个方向了,毕竟你已过了培养兴趣的时期了。2、坚持,学习中不可避免的要碰到困难,有的同学学好了,他可以享受其中的快乐;有的同学没学好,他在怀疑自己的
2、智商,世上无笨人,一句话“缺乏坚持”。三、学习单片机的几点建议1、要有一些必备学习工具:电脑(配置不用太高)、学习板(单片机开发板)、焊接工具。2、要掌握一门语言,汇编语言或C语言都行,推荐使用C语言。3、熟练使用一种编译软件,推荐Keil C。4、会用一种电路图和PCB设计工具,推荐protel。5、好好利用网络资源,尽可能自己解决问题,这也是提高自学能力的一种方法。6、要舍得在学习上投入时间、精力、钱,少上几次网吧,少吃几样零食,剩下的钱就可以买很多元器件,一年的零花钱够买好几块开发板了。记住买这些不是乱花,这是投资,它的回报率是最高的。本次培训推荐的参考教材本次培训推荐的参考教材单片机原
3、理及应用技术主编单片机原理及应用技术主编 万隆等万隆等 清华大学出版社清华大学出版社图1-1 MCUBUS开发板外形图 什么是单片机?在一片集成电路芯片上集成微处理器、存储器、I/O接电路,从而构成了单芯片微型计算机,即单片机工业自动化:数据采集、测控技术。智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。通讯方面:调制解调器、程控交换技术、手机、小灵通等。武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。单片机能做什么?万年历旋转时钟电动机带动焊有一排LED的电路板旋转,单片机
4、通过红外二级管测得电路板转一圈的时间,然后将时间分割,在每个分割点让不同的发光二极管显示,利用人眼视觉暂留,看上去就像一个时钟。MP3魅族M8手机魅族M8 采用了三星 Arm10 S3C6410 的处理器,并预装Windows CE 6.0操作系统,配备3.3英寸、VGA()分辨率的液晶屏。图1-2 51单片机引脚分布图1电源及时钟引脚电源及时钟引脚VCC(40脚):主电源正端,接+。VSS(20脚):主电源负端,接地。XTAL1(19脚):片内高增益反响放大器的输入端。接外部石英晶体和电容的一端。若使用外部输入时钟,该引脚必须接地。XTAL2(18脚):片内高增益反向放大器的输出端。接外部石
5、英晶体和电容的另一端,若使用外部输入时钟,该引脚作为外部输入时钟的输入端。2控制信号引脚RESET/VPD (9脚):RESET是复位信号输入端、高电平有效,此端保持两个机器周期(24个时钟周期)以上的高电平时,就可以完成复位操作。RESET引脚的第二功能 VPD,即备用电源的输入端。 ALE (30脚):地址锁存控制信号。 (29脚):程序存储器允许信号输出端。 /VPP(脚):片内程序存储器选通控制端。 3输入输出引脚输入输出引脚PO口、口、P1口、口、P2口、口、P3口口P3口线第二功能口线第二功能P3.0RXD(串行接收串行接收)P3.1TXD(串行发送)(串行发送)P3.2INT0(
6、外部中断(外部中断0输入,低电平或下降沿有输入,低电平或下降沿有效)效)P3.3INT1(外部中断(外部中断1输入,低电平或下降沿有输入,低电平或下降沿有效)效)P3.4T0(定时器(定时器0外部输入)外部输入)P3.5T1(定时器(定时器1外部输入)外部输入)P3.6WR(外部数据(外部数据RAM写使能信号,低电平有写使能信号,低电平有效)效)P3.7RD(外部数据(外部数据RAM读使能信号,低电平有读使能信号,低电平有效)效)任务一 点亮一个LED灯任务二 流水灯实验原理图参考开发板说明书练习:P0口做通用I/O输出口,控制8只发光二极管从左到右依次点亮,再依次熄灭。 2 数码管显示LED
7、显示器是单片机应用系统中常用的输出器件。它是由若干个发光二极管组成的,当发光二极管导通时,相应的一个点或一个笔画发亮。 共阴极数码管公共端接地,共阳极数码管公共端接电源。每段发光二极管需要510mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大小。 2.显示原理显示原理以共阴极为例:LED数码管的ag七个发光二极管。共阴极LED显示器的发光二极管的阴极连在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示 。 数码管字型码显示字符共阳极字码共阴极字码显示字符共阳极字码共阴极字码0FCHB3EH160HC9CH2DAHD7AH3F2HE9EH466H
8、F8EH5B6HPCEH6BEHU7DH7E0HL1CH8FEHH76H9E6H“灭”00HAEEH数码管的显示方法可以分为两种,即静态显示和动态显示。1)LED静态显示 静态显示就是当要显示某个数字时,可以通过给LED的数据引脚设置相应的高低电平即可实现显示相应数据。 任务一 编写程序,让开发板上的数码管显示数值0.任务二 编写程序,让数码管从0-F依次循环显示,时间间隔一秒。电路图参考开发版说明书练习:编写程序,让开发板上的8位数码管先第0位显示0,其他位不显示,然后第1位显示1,每次只有1位数码管显示,按此顺序显示到7,时间间隔为1秒。2)LED动态显示所谓动态显示就是将要显示的数按显示
9、数的顺序在各个数码管上一位一位的显示,它利用人眼的驻留效应使人感觉不到是一位一位显示的,而是一起显示的。 任务三 在开发板上显示12345678练习二实现从1 to 99计数,利用两位数码管.3 定时器/计数器 51系列单片机内部有两个16位可编程定时器/计数器,即定时器T0和定时器T1。 微 处 理 器(CPU)TH1TL1TH0TL0TCONTMOD图6-17 定时/计数器T0、T1的结构框图P3.5(T1)P3.4(T0)定时/计数器的工作原理 定时/计数器T0和T1的实质是加1计数器,即每输入一个脉冲,计数器加1,当加到计数器全为1时,再输入一个脉冲,就使计数器归零,且计数器的溢出使T
10、CON中的标志位TF0或TF1置1,向CPU发出中断请求。只是输入的计数脉冲来源不同,把它们分成定时与计数两种功能。作定时器时脉冲来自于内部时钟振荡器,作计数器时脉冲来自于外部引脚。 定时/计数器的控制与实现 1. 工作方式寄存器 TMOD(89H)用于设置定时/计数器的工作方式,低4位用于T0,高4位用于T1。其格式如下: (1) GATE:门控位。GATE0时,当软件使TCON中的TR0或TR1设置为“1”,则启动定时/计数器工作;GATA1时,软件使TR0或TR1设置为“1”,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。(2) C/ T :定时/计数模式选择位。C/T0为定
11、时模式;C/T=1为计数模式。(3) M1M0 :工作方式设置位。定时/计数器有4种工作方式,由M1M0进行设置 ,如表所示。 M1M0工作方式功能说明00方式013位定时/计数器01方式116位定时/计数器10方式28位自动重装初值定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数2. 控制寄存器TCON (88H)TCON的低4位用于控制外部中断,TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下 : (1) TF1: 定时/计数器T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为“1”。在进入中断服务程序后TF1由硬件自动清“0”;若用于查
12、询方式,此位可作为状态位供查询,但应注意查询后由软件清“0”。 (2) TF0 :定时/计数器T0溢出中断请求标志位,其功能与TF1类同。(3) TR1:定时/计数器T1运行控制位。TR1置“1”时,定时/计数器T1开始工作;TR1置“0”时,定时/计数器T1停止工作。TR1由软件置“1”或清“0”。(4) TR0 :定时/计数器T0运行控制位,其功能与TR1类同。定时定时/ /计数器的工作方式计数器的工作方式51单片机定时/计数器T0有4种工作方式(方式0、1、2、3);T1有3种工作方式(方式0、1、2);方式1 当M1M0为01时,定时/计数器工作于方式1,如图。方式1的计数位数是16位
13、,由TL0作为低8位、TH0 作为高8位,组成了16位加“1”计数器。计数个数M与计数初值N的关系为M216N。用于定时功能时,定时时间t的计算公式为:t=M机器周期=(216N )机器周期若晶振频率为12MHz,机器周期=1,初值N=0 65535范围时,则可定时范围为165.536ms。用于计数功能时,初值N=065535范围时,计数 范围为165536。任务3-1 利用定时器方式1,小灯以1s闪亮,亮时,蜂鸣器以20hz的频率鸣叫;练习3-1 利用定时器实现1s定时,控制led小灯1S循环.4 中断系统 中断是计算机中是很重要的一个概念,中断系统是计算机的重要组成部分。中断源中断源51单
14、片机共有5个中断源:外部中断0、外部中断1、定时/计数器中断0、定时/计数器中断1、串行口中断。每个中断源对应一个固定的中断入口地址。当某中断源的中断请求被CPU响应之后,CPU从中断入口处获取中断服务程序的入口地址,进入相应的中断服务程序。各中断源入口地址及优先级如表6-2所示,图6-12为51中断系统结构示意图。最低级中断源请求标志入口地址优先级外部中断0IE00003H 最高级定时器中断0TF0000BH外部中断1IE10013H定时器中断0TF1001BH串行口发送/接受中断TI/RI002BH一、中断请求标志1、TCON的中断标志IT0(TCON.0),外部中断0触发方式控制位。当I
15、T0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。中断控制IT1(TCON.2),外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。2、SCON的中断标志RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动
16、了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。 1、中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。二、中断的控制 EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA (IE.7), CPU中断允许(总允许)位。2、中断优先级控制 80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄
17、存器IP中的相应位的状态来规定的 。PX0(IP.0),外部中断0优先级设定位;PT0(IP.1),定时/计数器T0优先级设定位;PX1(IP.2),外部中断0优先级设定位;PT1(IP.3),定时/计数器T1优先级设定位;PS (IP.4),串行口优先级设定位;PT2 (IP.5) ,定时/计数器T2优先级设定位。单片机的中断优先级有单片机的中断优先级有3条原则:条原则:CPU同时接受到几个中断时,首先响应优先级别最高的中断请求;正在进行的中断过程不能被新的同级或低优先级的中断请求所中断;正在进行的低优先级中断服务,能被高优先级中断请求所中断。 中断响应的条件中断响应的条件CPU中断响应的条
18、件是:中断源有中断请求此中断的中断允许位为1CPU开总中断同时满足这3个条件时,CPU才有可能响应中断。任务4-1 利用定时器中断方式,来实现任务3-1的功能.练习4-1利用定时器中断方式,来实现练习3-1的功能.练习 4-2同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔2s依次输出1,10,50,100,200,400,800,1k(hz)的方波?设晶振频率为12MHz。练习4-3 中断的嵌套,开机1S后,蜂鸣器响,然后按外部中断按键,使蜂鸣器停止响一段时间后再响.串行通信51系列单片机的串行口占用P3.0和P3.1两个引脚,是一个全双工的异步串行通信
19、接口,可以同时发送和接受数据。P3.0是串行数据接收端RXD,P3.1是串行数据发送端TXD。51单片机串行接口的内部结构如图6-30所示。图6-30 串行口结构示意图1) 串行接口控制寄存器SCON (98H) 用于控制串行接口的工作状态,其格式如下:位D7D6D5D4D3D2D1D0字节地址SCONSM0SM1SM2RENTB8RB8TIRI98H位地址9FH9EH9DH9CH9BH9AH99H98H串行口相关寄存器电源控制寄存器PCON (97H) 其中只有1位SMOD与串行接口工作有关,格式如下: SMOD:波特率系数控制位。在串行接口方式1、方式2、方式3时,波特率与SMOD有关,当
20、SMOD=1时,波特率加倍,否则不加倍。复位时,SMOD=0。 PCON的地址为97H,不能位寻址,需要字节传送。 位D7D6D5D4D3D2D1D0字节地址PCONSMOD97H表 常用波特率、晶振频率与定时器(T1)的参数关系串行口工作方式及波特率(bit/s)fosc/MHzSMOD定时器(T1)C/T()方式初始值方式0最大:1M12方式2最大:375K121方式1、3: 62.5K12102FFH19.2K11.0592102FDH960012102F9H480012102F3H240012002F3H120012102F6H960011.0592002FDH480011.05920
21、02FAH240011.0592002F4H120011.0592002E8H任务5-1 单片机在按键的控制下发送一组数据,PC机接收,利用串行口调试助手查看结果任务5-2 PC机发送,单片机接收数据,将数据通过数码管显示.按键接口原理及应用按键接口原理及应用列线通过电阻接正电源,并将行线所接的单片机I/O端口作为输出端,而列线所接的I/O端口则作为输入端.当按键没有按下时,所有的输出端都是高电平,代表无键按下.行线输出是低电平,一旦有健按下时,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有健按下了.常用的键识别方式有:行扫描法,线翻转法、中断法。行扫描法将全部行线置低电平,然后
22、检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置。方法:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测个列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。这里咱们采用翻转法。任务6-1 利用数码管显示键值IIC总线 IIC总线是PHILIPS公司推出的串行总线,它是一种简单、双向二线制同步串行总线,它只需要两根线即可在连接于总线上的器件之间传送信息。 IIC总线数据的通信协议
23、1IIC接口接口IIC总线的串行数据线SDA和串行时钟线SCL必须经过上拉电阻Rp接到正电源上。当总线空闲时,SDA和SCL必须保持高电平。 2起始和终止信号起始和终止信号对IIC器件的操作总是从一个规定的启动(Start)时序开始,即SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据;信息传输完成后总是以一个规定的停止(Stop)时序结束,即SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。时序图如图8-11。起始信号和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生一段时间后,总线就处于空闲状态。图8-11 起始/停止时序在进行数据传输时
24、,SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变,如图8-12所示。图8-12 数据传输时序3字节数据传送及应答信号字节数据传送及应答信号IIC总线传送的每个字节均为8位,每次传输可以发送的字节数量不受限制,每个字节后必须跟一个应答信号。首先传输的是数据的最高位,如图8-13所示 图8-13 数据传送格式主控器件发送时钟脉冲信号,并在时钟信号的高电平期间保持数据线(SDA)的稳定。由最高位开始一位一位的发送完一个字节后,在第9个时钟高脉冲时,从机输出低电平作为应答信号,表示对接收数据的认可,应答信号用ACK表示。 4完整的数据传
25、送完整的数据传送IIC数据的传输遵循图 8-13 所示的格式。先由主控器发送一个启动信号(S),随后发送一个带读/写(R/W)标记的从地址字节(SLAVE ADDRESS),从机地址只有7位长,第8位是“读/写(R/W),用来确定数据传送的方向。1)写格式。IIC总线数据的写格式,如图8-14。图8-14 读数据格式 对于写格式,从机地址中第八位R/W应为0,表示主机控制器将发送数据给从机,从机发送应答信号(A)表示接收到地址和读写信息,接着主机发送若干个字节,每个字节后从机发送一个应答位(A)。注意根据具体的芯片功能,传送的数据格式也有所不同。主机发送完数据后,最后发送一个停止信号(P),表
26、示本次传送结束。2)读格式 IIC总线数据的读格式,如图8-15 图8-15 写数据格式主机发送从机地址(SLAVE ADDRESS)时将R/W设位1,则表示主机将读取数据,从机接收到这个信号后,将数据传送到数据线上(SDA),主机每接收到一个字节数据后,发送一个应答信号(A)。当主机接收完数据后,发送一个非应答信号(/A),通知从机表示接收完成,然后再发送一个停止信号。 任务8-1:24c02向AT24C02中写入一个字节的数据,让后读取并用二极管显示出来 备注:写入一个字节的IIc时序:开始+ 从机地址+ACK(从机发)+要写入数据的地址+ACK(从机发)+要写入的数据+ACK(从机发)+
27、停止 备注:读取一个字节的IIc时序:开始+ 从机地址+ACK(从机发)+要写入数据的地址+ACK(从机发)+开始+从机地址+ACK(从机发)+接受数据+NACK+停止 1-wire总线 1-wire单总线是Maxim全资子公司Dallas的一项专有技术。它采用单根信号线,既可以传输时钟又可以传输数据,而且数据传输是双向的。它具有节省I/O口资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。 DS18B20的引脚及内部结构 DS18B20的封装采用TO-92和8-Pin SOIC封装,外形及管脚排列。DS18B20引脚定义:GND 为电源地。DQ 为数字信号输入/输出端。VDD 为外接供
28、电电源输入端 DS18B20的构成的构成 1)寄生电源寄生电源由二极管VD1、VD2、寄生电容C和电源检测电路组成 .DS18B20有两种供电方式:3V5.5V的电源供电方式和寄生电源供电方式(直接从数据线获取电源)。 2)64位只读存储器ROMROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 4)温度传感器DS18B20中的温度传感器可以完成对温度的测量。DS18B20的温度测量范围是-55+125,分辨率的默认值是12位。DS18B20温度采集转化后得到16位数据,存储在DS18B20的两个8位RAM中, 3)内部存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM