




已阅读5页,还剩252页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云龙51单片机教程(PPT课件)作者:王云,1,单片机有什么用应该学什么样的单片机学习单片机需什么基础如何学好单片机学前准备,单片机学习开发环境的建立,第一课初识单片机,2,单片机有什么用?,工业控制系统数据采集系统智能化仪器仪表通讯设备.,3,应该学什么样的单片机?,在我们这个课程中,我们将选用51系列单片机作为讲解。,51单片机同时也是学习,ARM、DSP、FPGA等,高端应用的基础知识。,4,学习单片机要什么基础?1.有信心,有恒心;2.只要撑握最基本的数电模电知识;3.对各种器件的认识大家都是从0开始;4.单片机编程,只要会简单的C语言基础知识。,5,如何学好单片机1.要领:理论与实践并重,实践先行;2.学习总是从模仿开始;3.举一反三;,6,学前准备,1电脑一台,2单片机C语言书一本,3.开发板一块,7,51单片机C语言程序设计教程,本视频配套书籍:,王云编著,8,课程内容安排,基础篇,基于单片机最小系统,介绍单片机的基础知识;及单片机C语言基础知识。,实战篇,以YL-51开发板为平台,逐个讲解开发板上各个模块的使用,把各器件模块讲解清楚。通过实践深化理解数字电路的概念、C语言的基本应用以及C语言如何同实际电路发生联系。,提高篇,讲解单片机应用的扩展知识,及编程技巧。讲授单片机项目开发的流程及方法。,9,课后作业安装以下两个软件:1、STC-ISP下载软件2、KEIL编程软件,10,第二课点亮一个发光二极管,11,什么是单片机?,如何选择单片机?,单片机能做什么?,12,单片机,指以8051为核心的单片机,统称为MCS51单片机。,是在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,简称单片机。,MCS51单片机,如8031,8751,8032,8052,8752等该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的。,1.1什么是单片机?,8051是美国INTEL公司,生产的一系列单片机中最早最典型的产品。,13,1.2近年来推出MCS51的主要产品有:,ATMEL公司的89C51、89C52系列;Philips公司的80C51、80C52系列;华邦公司的W78C51、W77C51高速低价系列;LG公司的GMS90/97低压高速系列;宏晶公司的STC89C51、STC89C52系列。,14,1.380C51的引脚封装,总线型,非总线型,15,2.单片机内部资源三大指标1、FLASH(程序存储空间ROM)2、RAM(数据存储器)3、SFR(特殊功能寄存器),单片机内集成了一些常用的I/O接口电路,如并行的I/O端口、串行口、定时器/计数器、中断控制器等,这些I/O接口单元电路,统称为特殊功能寄存器(SFR)。,16,单片机的选择STC89C52:8KFLASH,512字节RAM,32个I/O口,3个定时器,1个UART,8个中断源。SST89E516:64KFLASH,1024字节RAM,32个I/O口,3个定时器,1个UART,10个中断源。支持与KEIL连线进行在线仿真。,17,单片机最小系统,特点:用最少的元件组成的单片机工作系统。,由四大硬件组成:单片机、电源电路、晶振电路、复位电路。,18,31脚是内部程序存储器和外部程序存储器选择端。为高电平时,访问内部程序存储器;为低电平时,则访问外部程序存储器。,19,点亮一个LED发光二极管,发光二极管:通常红色贴片LED:正向压降1.6-2.4V,电流2-20mA。2-5mA亮度有明显变化,5mA以上亮度基本没变化。RV/I一般应用取I35mA,则R?。LED与单片机,成为一个最小的控制单元,实现控制发光二极管的亮灭。,20,21,特殊功能寄存器声明语法:sfrsfr_name=int_constant例:sfrP0=0 x80;sfrSCON=0X98;,特殊功能位声明例:sbitCY=PSW7;sbitLED=P10;,22,Main函数格式:voidmain()特点:无返回值,无参。任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。例:voidmain()总程序从这里开始执行;其他语句;,23,三、建立独立的KEIL工程:1.点亮第一个发光管2.点亮最后一个发光管3.点亮一、三、五、七,二、理解单片机单片机最小系统的组成。,一、了解发光二极管参数及限流电阻计算方法。,作业,4.点亮二、四、五、六,24,第三课C51基础知识及流水灯设计,25,电平特性单片机的数制C51的特点C51基础知识,C51简介,26,关于电平特性,1、数字电路中只有两种电平(本课程中)定义单片机为TTL电平高电平:+5V低电平:0V,2、RS232电平:计算机串口高电平:-12V低电平:+12V所以计算机串口与单片机进行通信时,需加电平转换芯片MAX232。,27,单片机的数制,1、单片机内部的数制:二进制2、单片机编程常用的数制:十六进制,28,二进制数字电路中的两种电平特性决定了它006110117111210810003119100141001010105101111011,29,十六进制数,是二进制的简短表示形式。十进制中的0-15在十六进制数中分别表示为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,熟练掌握二进制与十六进制之间的转换。规律:一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。,30,如:0001B11HB表示为二进制,H为十六进制1001B99H1010B10AH100110101549AH,31,各种进制的对应关系,32,二进制数的逻辑运算1.与运算与运算是实现“必须有,否则就没有”这种逻辑关系的一种运算。运算符为“”其运算规则如下:00=0;01=10=0;11=1,33,2.或运算或运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算,其运算符为“+”“或”运算规则如下:0+0=0;0+1=1+0=1;1+1=1,34,3.是“非”运算“非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作“A”其运算规则如下:1=0;0=1,35,4“异或”运算“异或”运算是实现“必须不同,否则就没有”这种逻辑的一种运算。运算符为“”。其运算规则是:00=0;01=10=1;11=0,36,C51的特点,C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。因此,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。,37,C-51的优点:1、对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解。2、寄存器分配,不同存贮器的寻址及数据类型等细节可由编译器管理。3、程序有规范的结构,可分成不同的函数,这种方式可使程序结构化。4、提供的库包含许多标准子程序,具有较强的数据处理能力。5、由于具有方便的模块化编程技术,使已编好程序可容易地移植。,38,C-51的基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed)int,16,-3276832767,(signed)short,16,-3276832767,(signed)long,32,-21474836482147483647,16,unsignedint,065535,32,04294967295,unsignedlongint,unsignedshortint,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsignedchar,8,0255,39,+-*/(加减乘除)=动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。,50,数组,二.数组定义:类型说明符数组名表达式;三.数组赋值:inta5=A,B,C,D,Einta=A,B,C,D,Ea0=A;a1=B;a2=C;a3=D;a4=E;,一.数组需满足三个条件:1.元素具有相同的数据类型2.用不同的下标来区分数组中的元素3.在存储器中是被连续存放的,51,函数定义的一般形式,1.无参函数的定义形式类型标识符函数名()声明部分语句2.有参函数的定义形式类型标识符函数名(形式参数列表)声明部分语句,52,中断概念单片机中断的应用单片机的定时器应用,第五课中断与定时器,53,单片机的中断系统,一、中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断产生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A中断的地方继续处理事件A(中断返回),这一过程称为中断。,54,MCS-51单片机的中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,55,引起CPU中断的根源叫做中断源。中断源向CPU的请求,叫做中断请求。CUP暂时中断原来的事件A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,56,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:,分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;可靠性高。CPU具有处理设备故障及掉电等突发性事件能力。从而使系统的可靠性提高。,57,8051中断系统的结构8051的中断系统有5个中断源,2个优先级,可实现二级中断嵌套。,58,8051中断系统的结构图,59,当中断源满足条件产生中断请求时,中断请求标记志位会置1。向CPU申请中断。CPU响应中断时,TCON的中断请求标记位由硬件自动清除;SCON则须为软件清零。,中断源与标记位关系,60,8051中断系统的结构图,IT0外部中断0(INT0)触发方式选择位,由软件设置。1、低电平触发方式,INT0(P3.2)引脚上低电平可引起中断。2、下降沿触发方式,INT0(P3.2)引脚上电平由高变低负跳变可引起中断。,61,中断允许控制位在IE特殊功能寄存器上的分布,中断优先级控制位在IP特殊功能寄存器上的分布,62,在8051单片机中有两个定时器/计数器,分别称为定时器/计数器0和定时器/计数器1。(在本课程中)将采用:T/C0:表示定时器/计数器0T/C1:表示定时器/计数器1T0:表示定时器0T1:表示定时器1C0:表示计数器0C1:表示计数器1如果是对内部振荡源12分频的脉冲信号进行计数(即对每个机器周期计数),它是定时器(T0,T1)。如果是对单片机引脚T0(P3.4)或T1(P3.5)输入的外部脉冲信号进行计数,则它是计数器(C0,C1)。,定时器/计数器的概念,63,定时/计数器(T/C)的结构图,一、定时/计数器的结构:1、由两个加1计数寄存器(由高8位和低8位两个寄存器组成,共16位),分别对应T/C0和T/C1.2、TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能。3、TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。,64,加1计数寄存器输入的计数脉冲有两个来源:1、一个是由系统的时钟振荡器输出脉冲经12分频后送来;2、一个是从单片机引脚T0(P3.4)或T1(P3.5)输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零;且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。,65,二、控制寄存器TCONTCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:,TF1(TCON.7):T/C1溢出中断请求标志位。T/C1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T/C1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T/C1运行控制位。TR1置1时,T/C1开始工作;TR1置0时,T/C1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T/C0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T/C0运行控制位,其功能与TR1类同。,66,三、工作方式寄存器TMOD,工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T/C0,高四位用于T/C1。其格式如下:,GATE:门控位。GATE0时,只要使TCON中的TR0或TR1为1,就可以启动定时/计数器(T/C)工作。(其中:TR0对应T/C0;TR1对应T/C1)GATA1时,要满足两个条件,才能启动定时/计数器(T/C)工作:使TR0或TR1为1。同时外部中断引脚INT0/1也为高电平时。(INT0对应T/C0;INT1对应T/C1):定时/计数模式选择位。0为定时模式;=1为计数模式。,67,M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。,方式1:常用的16位定时器/定数器。(本节课主要讲:方式1定时器模式)方式2:主要用在串口波特率发生器。(在串口通信里再作详细讲解)方式0和方式3:几乎不用。,68,四、方式1(定时器0模式)方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。,16位定时器0装初值的计算公式:假设要计的个数是n,TH0=(65536-n)/256TL0=(65536-n)%256,69,8051的基本时序周期,振荡周期:为单片机提供振荡源的周期(是指振荡源的两个相邻同方向峰值之间的时间)机器周期:1个机器周期等于12个振荡周期若:fosc=12M,则8051的各周期参数如下:振荡周期=1/12us;机器周期=1us;,70,初始化程序应完成如下工作:1、对TMOD赋值,以确定T0和T1的工作方式。2、计算初值,并将其写入TH0、TL0或TH1、TL1。3、使TR0或TR1置位,启动定时/计数器定时或计数。4、中断方式时,则对IE赋值,开放中断。,定时/计数器应用举例,71,作业,1、利用定时/计数器T1从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。试设计程序。2、利用定时/计数器T0产生定时时钟,由P1口控制8个发光二极管。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期)。3、用定时器以间隔500MS在6位数码管上依次显示0、1、2、3.C、D、E、F,重复。,72,第六课数码管动态显示及定时器应用,73,74,三、工作方式寄存器TMOD,工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T/C0,高四位用于T/C1。其格式如下:,GATE:门控位。GATE0时,只要使TCON中的TR0或TR1为1,就可以启动定时/计数器(T/C)工作。(其中:TR0对应T/C0;TR1对应T/C1)GATA1时,要满足两个条件,才能启动定时/计数器(T/C)工作:使TR0或TR1为1。同时外部中断引脚INT0/1也为高电平时。(INT0对应T/C0;INT1对应T/C1):定时/计数模式选择位。0为定时模式;=1为计数模式。,75,M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。,方式1:常用的16位定时器/定数器。(本节课主要讲:方式1定时器模式)方式2:主要用在串口波特率发生器。(在串口通信里再作详细讲解)方式0和方式3:几乎不用。,76,动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描,即是通过分时轮流送出字形码和相应的位选,使各个数码管轮流受控显示。在轮流显示过程中,每1位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。,动态显示,77,1、利用动态扫描方法在六位数码管上显示出稳定654321。2、用动态扫描方法和定时器0在数码管的前三位显示出秒表,精确到1%秒,即后两位显示1%秒,一直循环下去。3、利用动态扫描和定时器0在数码管上显示出从543210开始以1%秒的速度往下递减直至543111并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,同时蜂鸣器发声,当数码管上数减到停止时,实验板上流水灯全部闪烁4次,数码管全熄灭。单片机进入休眠状态。,课后练习,78,第七课键盘的应用,79,以下为键盘输入信息的主要过程如下:1、CPU判断是否有按键按下。2、确定按下的是哪一个按键。3、把此按键代表的信息翻译成CPU所能识别的代码,如ASCII或其他特征码。以上第2,3步由专用硬件编码器完成的,称为编码键盘。如果由软件完成的,称为非编码键盘。在单片机组成的各种系统中,用的最多的是非编码键盘;当然也可以使用编码键盘。,键盘的分类,80,非编码键盘又分为:独立键盘和行列式键盘(矩阵键盘),81,S5,82,独立键盘的检测过程:先给按键对应的I/O口置1;再来读这个I/0是否等于1;若是1,说明按键没有按下,若是0,说明按键已按下。,独立键盘的检测,83,按键在闭合和断开时,触点会存在抖动现象:,按键抖动时间由按键的机械特性决定:一般为5ms10ms。,84,85,矩阵键盘检测原理:查询是否有键按下。键的抖动处理。查询按下键所在行和列位置,并对行号和列号译码,得到键值。,86,1、数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)。2、在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。3、按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下第一个显示1,第二个显示4.,作业,87,第八课D/A转换器与单片机接口,88,D/A转换器及其与单片机接口,常用电阻分压/分流来实现D/A转换,让模拟量的输出变化与数字量的输入变化成线性关系。,一.D/A转换器的基本原理及分类,2.分为权电阻解码网络与T型解码网络两种构建方法,其中又以T型解码网络最为常用。,89,D/A转换器及其与单片机接口,二.型电阻网络D/A转换器:,第个2R支路的电流均为上一个支路的1/2:I7=(Vref/2R)I6=(Vref/2R)/2I5=(Vref/2R)/4I4=(Vref/2R)/8I3=(Vref/2R)/16I2=(Vref/2R)/32I1=(Vref/2R)/64I0=(Vref/2R)/128,90,三、D/A转换器的主要性能指标,1、分辨率分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。分辨率与输入数字量的位数有确定的关系,可以表示成FS/。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用位的DAC时,分辨率为5V/25619.5mV;当采用12位的DAC时,分辨率则为5V/40961.22mV。显然,位数越多分辨率就越高。,2、线性度线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如是指实际输出值与理论值之差在满刻度的以内。,91,3、绝对精度和相对精度绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。,相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。,92,4、建立时间建立时间是将一个数字量转换为稳定模拟信号所需的时间。是描述D/A转换速率的一个动态指标。电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成超高速(1S)、高速(101S)、中速(10010S)、低速(100S)几档。,应注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。,93,DAC0832芯片及其与单片机接口,DAC0832是使用非常普遍的位D/A转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口相连。DAC0832以电流形式输出,当需要转换为电压输出时,可外接运算放大器。属于该系列的芯片还有DAC0830、DAC0831,它们可以相互代换。DAC0832主要特性:,分辨率位;电流建立时间S;数据输入可采用双缓冲、单缓冲或直通方式;输出电流线性度可在满量程下调节;逻辑电平输入与TTL电平兼容;单一电源供电(5V15V);低功耗,20m。,94,DAC0832内部结构及引脚,CS,95,96,DAC0832利用WR1、WR2、ILE、XFER控制信号可以构成三种不同的工作方式。,DAC0832工作方式,97,、单缓冲工作方式两个寄存器之一始终处于直通,即WR1=0或WR2=0,另一个寄存器处于受控状态。,98,2、双缓冲工作方式两个寄存器均处于受控状态。这种工作方式适合于多模拟信号同时输出的应用场合。,99,3、直通工作方式当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号ILE引脚接5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。,100,第九课A/D转换器与单片机接口,101,A/D,将连续变化的模拟信号转换为数字信号。,102,双积分型A/D转换器。逐次逼近比较型AD/转换器。并行A/D转换器。,根据A/D电路的工作原理可分为以下几大型:,103,逐次逼近式ADC的转换原理,104,A/D转换器的主要技术指标,1、分辨率ADC的分辨率是指使输出数字量变化一个最小量时模拟信号的变化量。常用二进制的位数表示。例如8位ADC的分辨率就是8位,或者说分辨率为满刻度FS的1/28。一个5V满刻度的8位ADC能分辨输入电压变化最小值是5V1/28=19.53mV。,105,2、量化误差ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。,106,3、偏移误差偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。,、满刻度误差满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。,107,5、线性度线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。,6、绝对精度在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。,7、转换速率ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。,108,第十课1602液晶的显示原理及应用,1、1602液晶硬件原理。2、1602液晶操作时序。3、如何在1602液晶上显示一个字符A。4、如何在1602液晶上显示一串字符。,109,110,第十一课串口通信,1、80C51的串行口结构和工作原理2、单片机串行口编程应用举例,111,通信基础知识,计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。,112,并行通信通常是将数据字节的各位用多条数据线同时进行传送。,并行通信特点:控制简单、传输速度快;但传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。,113,串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。,串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。,114,一、串行通信的传输方向1、单工单工是指数据传输仅能沿一个方向,不能实现反向传输。2、半双工半双工是指数据传输可以沿两个方向,但需要分时进行。3、全双工全双工是指数据可以同时进行双向传输。,单工半双工全双工,115,串行通信的分类分为两大类:异步通信与同步通信,1、异步通信异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。,116,异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。,117,异步通信的数据格式:,异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加23位用于起止位,各帧之间还有间隔,因此传输效率不高。,118,2、同步通信同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。,外同步自同步,119,串行通信接口标准一、RS-232C接口RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。1、机械特性RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。(阳头),120,公头,母头,121,2、功能特性,122,80C51串行口,SBUF为两个物理上独立的接收、发送缓冲器,它们有相同的名字和地址空间,共用地址99H,但不会产生冲突;因为接收器只能被CPU读出数据;发送缓冲器只能被CPU写入数据,不会产生重叠错误。,80C51串行口的结构,123,SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:,80C51串行口的控制寄存器,SM0和SM1为工作方式选择位,可选择四种工作方式:,124,SM2,多机通信控制位,主要用于方式2和方式3。1.当SM2=1时,只有接收到第9位数据(RB8)为1,RI才会置1,(此时RB8具有控制RI激活的功能;进而在中断服务中将数据从SBUF读走)。2.当SM2=0时,收到字符R1就置1,使收到的数据进入SBUF,(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。,125,TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。在方式0和方式1中,该位未用,默认为0。RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。,126,TI,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。RI,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。,127,PCON中只有一位SMOD与串行口工作有关:,SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。,128,80C51串行口的工作方式,一、方式0方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。1、方式0输出,129,2、方式0输入,方式0接收和发送电路,130,二、方式1方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。,1、方式1输出,131,2、方式1输入,用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。,132,三、方式2和方式3方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚。,方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。,133,1、方式2和方式3输出,发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。第一次移位时,停止位“1”移入输出移位寄存器的第9位上,以后每次移位,左边都移入0。当停止位移至输出位时,左边其余位全为0,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU请求中断。,134,2、方式2和方式3输入,接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。,135,四、波特率的计算串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(/64)fosc方式1的波特率=(/32)(T1溢出率)方式3的波特率=(/32)(T1溢出率),136,当定时器1作波特率发生器使用时,通常选用可自动装入初值模式(方式2),在方式2中,TL1作为计数用,而自动装入的初值放在TH1中,假设计数初值为x,则每过“256-x”个机器周期,定时器T1就会产生一次溢出。这时溢出率取决于TH1中的计数值。,T1溢出率=溢出周期的倒数;溢出周期=(256-TH1)12/Fosc;(其中:12/Fosc表示一个机器周期),因此方式1和方式3:波特率:Baud=(2Fsoc)/3212(256-TH1),我们一般不太关注波特率的计算,而是关心选用的波特率(传输速度)去反算定时器1(自动重装模式)的初值(TH1),所以将上面的公式导一下,得到TH1的公式:TH1=256-(Fsoc2)/(1232Baud),137,在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。,138,串行口工作之前,应对其编程进行初始化设置,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:,确定T1的工作方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动T1(编程TCON中的TR1位);确定串行口控制(编程SCON寄存器);串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。,139,1.以16进制发送一个0-65536之间的任一数,当单片机收到后在数码管上动态显示出来,波特率自定。2.按下矩阵键盘第一行时以1200bps发送,1,2,3,4,第二行时以2400bps发送5,6,7,8,第三行以4800bps发送,9,10,11,12,第四行以9600pbs发送,13,14,15,16.3.以2400bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据基础上加1,然后把加1后的数据发回给计算机。4.用AD以1HZ的频率采集模拟信号,然后转换成数字量,再将其以1200bps发送到计算机,在计算机上显示。,作业,140,第十二课I2C串行总线原理及模块化编程方法,141,单片机系统-常见的存储器件介绍,常见存储器件:铁电,EEPROM,FLASH共同特点:掉电后数据不丢失各自特点:铁电:理论上可以无限次擦写,操作简单,但容量小。EEPROM:理论上擦写次数在30W到100W不等,操作简单,容量中等。FLASH:理论上擦写次数在10W到100W不等,容量大,但操作复杂,若要改变一个字节就要改变整个扇区。,142,我们单片机系统用得最多的是I2C接口的EEPROM。比如24C系列的,有24C01、24C02、24C04、24C08等。常用的串行扩展总线有:I2C(InterICBUS)总线、单总线(1WIREBUS)、SPI(SerialPeripheralInterface)总线及Microwire/PLUS等。常见的EEPROM芯片按其接口方式来分,有I2C、Microwire、SPI三种。本节课我们主要讨论I2C总线工作原理和应用方法。,143,I2C串行总线概述,I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。,I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。,144,I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。,145,每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。,在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱,I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。在80C51单片机应用系统的串行总线扩展中,我们经常遇到的是以80C51单片机为主机,其它接口器件为从机的单主机情况。,146,I2C总线在传送数据过程中共有三种特殊类型信号,它们分别是:,I2C总线的数据传送,终止信号,起始信号,应答信号,147,一、起始和终止信号,SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。,148,起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。,主机可以采用不带I2C总线接口的单片机,如80C51、AT89C2051等单片机,利用软件实现I2C总线的数据传送,即软件与硬件结合的信号模拟。,I2C总线的起始信号、终止信号、可以让单片机I/O口不断的发送“0”和发送“1”进行模拟时序:,149,模块化编程的优点,随着代码量的增加,将所有代码都放在同一个.C文件中的做法,会使得程序结构混乱、可读性与可移植性变差;而模块化编程是解决这个问题的常用而有效的方法。,150,模块化设计原则:“高内聚,低耦合”,高内聚:一个C文件里面的函数,只有相互之间的调用,而没有调用其它文件里面的函数,这样可以视为高内聚。尽量减小不同文件里函数的交叉引用。,低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每一个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。,151,模块化编程-创建步骤,第一步:创建头文件,例如:I2C函数相关的源文件与头文件命名为i2c.c与i2c.h。,建立一个.C文件(源文件)和一个.h文件(头文件)。,原则上文件可以任意命名;但强烈推荐如下原则:.c文件与.h文件同名;文件名要有意义,最好能够体现该文件代码的功能定义。,152,第二步:头文件中需要防重复包含处理,防止头文件在被多个文件引用的时候,让编译器在编译时不会多次编译。,在.h文件中加入如下代码1#ifndefXXX2#defineXXX3/此处添加代码(比如声明或定义语句)4#endif,其中的XXX原则上可以是任意字符,在同一个工程中各个.h文件的XXX不能相同,因此强烈推荐如下的规则:将.h文件的文件名全部都大写,“.”替换成下划线”_”,首尾各添加2个下划线”_”作为。,153,第三步:代码封装,将需要模块化的代码封装成函数与宏定义。,.C文件中放置内容通常是:函数体。或者只被本.c文件调用的宏定义。,.h文件中放置内容通常是:对需要被外部调用的函数要在.h文件中声明一下。需要被外部调用的宏定义要放在.h文件中。,154,第四步:添加源文件,将.c文件添加到工程之中;.h的不用添加到工程里面。同时在.c文件里把对应的.h文件包含进去。,155,156,157,二、I2C总线数据操作在I2C总线上,数据是伴随着时钟脉冲,一位一位的传送的,数据位由高到低传送,每位数据占一个时钟脉冲。在时钟线SCL为高电平期间,数据线SDA的状态就表示要传送的数据;高电平为数据1,低电平为数据0。在数据传送时,SDA上数据的改变要在时钟线为低电平时完成,而SCL为高电平时,SDA必须保持稳定;否则SDA上的变化会被当作起始或终止信号而致使数据传输停止。,158,三、I2C的数据读写和应答,每一个字节必须保证是8位长度。数据传送时,先传送最高(MSB)。主机写数据时,每发送一个字节,接收机需要回复一个应答位“0”,通过应答位来判断从机是否接收成功。主机读数据时,接收一个字节结束后,主机也需要发送一个应答位“0”,但是接收最后一个字节结束后,则需发送非应答位“1”,发完了1后,再发一个停止信号,最终结束通信。,159,2.非应答:是一个高电平信号,应答:是一个低电平信号。,应答位分为:,160,1.应答信号ACK:I2C总线的数据都是以字节(8位)的方式传送的,发送器每发送一个字节之后,在时钟的第9个脉冲期间释放SDA数据线,由接收器发送一个ACK(把数据线电平拉低)来表示数据成功接收。,161,2.无应答信号NACK,在时钟的第9个脉冲期间发送器释放数据线,接收器不拉低数据线表示一个NACK。,NACK有两个用途:,1.一般表示接收器未成功接收数据字节。,2.当接收器是主机时,它收到最后一个字节后,应发送一个NACK,以通知被控从机结束数据发送,并释放总线,以便主机发送一个停止信号。,162,163,如何发送I2C总线数据,I2C总线发送到SDA线上的每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。,依据I2C总线规定,SCL线呈高电平期间,SDA线上的电平必须保持稳定。只有SCL线为低电平期间SDA线上的电平才允许变化。因此发送数据函数可在SCL线为低电平期间将数据赋值给SDA线,由于每一个字节必须为8位,因此循环8次即可将数据传送给从器件。,164,如何接收I2C总线数据,依据I2C总线规定,SCL线呈高电平期间,SDA线上的电平必须保持稳定,因此应在SCL线为高电平的时候读取SDA数据状态。,I2C总线每次传输的是一个字节数据,对于I2C数据的接收同样也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度城市更新项目资产转让合同模板
- 2025版皮革材料贸易皮革原料采购合同模板
- 2025版新型蔬菜种植基地土地承包权转让及种植合作协议
- 2025房地产项目竣工验收补充协议
- 2025年度存量房买卖合同-老旧小区改造后交易合同
- 2025版虚拟现实技术应用合同范本下载
- 2025年光伏发电项目土地租赁合同范文
- 2025房地产代理销售协议书:特色小镇文旅地产代理服务
- 2025厂房及设备租赁合同协议书-重工业设备租赁
- 2025年高效节能变电所设备安装及维护服务协议
- 陆上石油天然气长输管道建设项目初步设计安全专篇
- 广西建设工程质量安全监督总站建设工程检测见证取样员手册
- 工作人员轮岗交流动员会上的讲话
- 《三字经》PPT课件(完整版)
- 钣金件检验的基本要求
- 公路工程施工安全技术规范-JTG-F90-2015
- 高职创新无人机实训室建设方案
- 现在完成时——英语公开课课件
- 管片嵌缝及手孔封堵施工方案完整
- 4三级心理危机干预体系流程图
- 1-5的认识和加减法《整理与复习》
评论
0/150
提交评论