51单片机C语言编程一学就会 第2版 课件 汪小林 -第4-10章 单片机常用显示器件的驱动-电子密码锁模拟_第1页
51单片机C语言编程一学就会 第2版 课件 汪小林 -第4-10章 单片机常用显示器件的驱动-电子密码锁模拟_第2页
51单片机C语言编程一学就会 第2版 课件 汪小林 -第4-10章 单片机常用显示器件的驱动-电子密码锁模拟_第3页
51单片机C语言编程一学就会 第2版 课件 汪小林 -第4-10章 单片机常用显示器件的驱动-电子密码锁模拟_第4页
51单片机C语言编程一学就会 第2版 课件 汪小林 -第4-10章 单片机常用显示器件的驱动-电子密码锁模拟_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

51单片机C语言编程一学就会学习导航第1章学习单片机的必备基础第2章入门关键—通过实现流水灯掌握单片机C语言基础知识第3章单片机指令器件的应用第4章单片机常用显示器件的驱动第5章单片机内部资源——中断及应用示例第6章单片机内部资源——串口及应用第7章.A/D与D/A的应用第8章步进电机的控制第9章DS18B20温度传感器及智能换气扇第10章电子密码锁模拟第4章单片机常用显示器件的驱动【学习目标】(1)理解共阴、共阳数码管的结构和显示原理。(2)掌握控制数码管静态显示的方法。(3)掌握控制数码管动态显示的方法。(4)掌握LCD1602显示ASCII字符的驱动方法。(5)掌握LCD12864显示信息的取模方法。(6)掌握LCD12864显示汉字和字符的方法。(7)初步形成单片机驱动硬件的编程思路第4章单片机常用显示器件的驱动4.1数码管的显示4.1.1.常用的数码管类型与结构4.1.2数码管的静态显示4.1.3数码管的动态显示4.2LCD1602的认识和使用4.2.1

LCD1602的引脚功能及和单片机的连接4.2.2LCD1602模块的内部结构和工作原理4.2.3

LCD1602的工作时序4.2.4

LCD1602指令说明4.2.5

LCD1602的编程4.1数码管的显示4.1.1.常用的数码管类型与结构4.1.2数码管的静态显示4.1.3数码管的动态显示4.1.1.常用的数码管类型与结构一位数码管

二位数码管

三位数码管

四位数码管

4.1.2数码管的静态显示数码管的静态显示电路4.1.3数码管的动态显示数码管的动态显示属于“分时复用技术”。当要驱动多个数码管时,依次使各个数码管快速点亮然后熄灭,并周期性地循环。典型数码管显示电路及相应硬件电路数码管动态显示编程入门示例4.2LCD1602的认识和使用4.2.1

LCD1602的引脚功能及和单片机的连接4.2.2LCD1602模块的内部结构和工作原理4.2.3

LCD1602的工作时序4.2.4

LCD1602指令说明4.2.5

LCD1602的编程4.2.1

LCD1602的引脚功能及和单片机的连接1.LCD1602的引脚功能2.LCD1602与单片机的连接4.2.2LCD1602模块的内部结构和工作原理LCD1602模块的内部结构分为三部分,即LCD控制器、LCD驱动器、LCD显示器4.2.3LCD1602的工作时序1.LCD1602的读操作时序2.LCD1602的写操作时序4.2.4

LCD1602指令说明LCD1602指令说明详见表4-44.2.5

LCD1602的编程引脚定义忙检测函数写“命令”函数写“数据”函数第4章单片机常用显示器件的驱动4.3不带字库LCD12864的使用4.3.1

LCD12864的引脚说明4.3.2LCD12864模块介绍4.3.3不带字库LCD12864的读写时序4.3.4

LCD12864的点阵结构4.3.5

LCD12864的指令说明4.3.6

LCD12864字模的获取4.3.7LCD12864显示信息操作示例4.3.812864液晶的跨屏显示4.3不带字库LCD12864的使用4.3.1

LCD12864的引脚说明4.3.2LCD12864模块介绍4.3.3不带字库LCD12864的读写时序4.3.4

LCD12864的点阵结构4.3.5

LCD12864的指令说明4.3.6

LCD12864字模的获取4.3.7LCD12864显示信息操作示例4.3.812864液晶的跨屏显示4.3.1

LCD12864的引脚说明LCD12864的引脚功能引脚号引脚名称电平引脚功能描述1VSS0V电源地2VDD3.0+5V电源正3VL—对比度调整4RSH/L(高/低)指令/数据选择,RS为高电平选择“数据”,RS为低电平时选择指令5R/WH/L读/写选择,R/W=“H”,为读操作R/W=“L”,为写操作6EH/L使能信号。高电平读出有效,下降沿写入有效7~14DB0~DB7H/L三态数据线,用于单片机与LCD12864之间读、写数据15CS1

左半屏选择,高电平有效16CS2

右半屏选择,高电平有效17H/L复位端,低电平有效18VEE—LCD驱动电压(-10V)输出端19LED++5V背光源正极20LED-0V背光源负极4.3.2LCD12864模块介绍4.3.3不带字库LCD12864的读写时序4.3.4

LCD12864的点阵结构LCD12864沿横向共有128列,即有128个像素点,沿纵向共有64行,即有64个像素点。将横向的128列分为左、右两屏,每屏有64列,用CS1、CS2来选择使用左屏或使用右屏;将纵向的64行分为8页,每页8行,见书中图4-11所示。4.3.5

LCD12864的指令说明指令编号RSR/WD7D6D5D4D3D2D1D0功

能指令1000011111D显示开/关指令20011L5L4L3L2L1L0用于设置显示的起始行指令30010111P2P1P0页地址设置指令40001C5C4C3C2C1C0列地址设置指令501BF0ON/OFFRST

指令610数据写需显示的数据指令711数据读显示数据4.3.6

LCD12864字模的获取LCD12864的显示内容的字模可通过取模软件(常用的有“Lcmzimo.exe”和“zimo.exe”,可在网上下载,本书使用“Lcmzimo.exe”软件并设置为“纵向8点下高位”、“宋体16点阵”、“从左到右从上到下的顺序”)取模。两种软件的取模方法详见本书附带的资料。4.3.7LCD12864显示信息操作示例硬件连接4.3.812864液晶的跨屏显示第5章单片机内部资源——中断及应用示例【学习目标】(1)理解中断响应过程。(2)知道51单片机的中断源。(3)知道单片机的中断优先级和中断嵌套。(4)知道中断相关寄存器各个位的意义,掌握外中断、定时器中断的开启和关闭方法。(5)会应用外中断、定时器中断解决实际问题。第5章单片机内部资源——中断及应用示例5.1单片机的中断系统5.1.1中断的基本概念5.1.2中断优先级和中断嵌套5.1.3应用中断需要设置的寄存器5.1.4中断服务程序的写法(格式)5.2定时器的工作方式1

5.2.1与周期相关的几个概念5.2.2定时器的工作方式1工作过程详解5.2.3定时器T0和T1的工作方式1应用示例5.3外部中断的应用5.3.1低电平触发外部中断的应用示例5.3.2下降沿触发外部中断的应用示例5.1单片机的中断系统5.1.1中断的基本概念5.1.2中断优先级和中断嵌套5.1.3应用中断需要设置的寄存器5.1.4中断服务程序的写法(格式)5.1.1中断的基本概念中断中断是CPU在执行现行程序(事件A)的过程中,发生了另外一个事件B,请求CPU迅速去处理(注:这叫“中断请求”),使CPU暂时中止现行程序的执行(注:这叫“中断响应”),并设置断点,转去处理事件B(注:这叫中断服务),待将事件B处理完毕,再返回被中止的程序即事件A,从断点处继续执行(注:这叫“中断返回”)的过程。中断系统实现中断的硬件逻辑和实现中断功能的指令统称为中断系统。中断源引起中断的事件称为中断源,实现中断功能的处理程序称为中断服务程序。5.1.2中断优先级和中断嵌套中断优先级:通过设置中断优先级寄存器,可以告诉单片机,当两个中断同时产生时先执行哪个中断程序,即中断优先级。中断嵌套:如果单片机正在处理一个中断程序,又有另一个级别较高的中断请求发生,则单片机会停止当前的中断程序,而转去执行级别较高的中断程序即中断嵌套。5.1.3应用中断需要设置的寄存器应用中断需要设置的寄存器中断允许寄存器IE中断优先级寄存器IP定时器/计数器工作方式寄存器TMOD中断控制寄存器TCON5.1.4中断服务程序的写法C51中断函数的格式如下:

void函数名()interrupt中断号{中断服务程序的语句;}5.2定时器的工作方式1

5.2.1与周期相关的几个概念5.2.2定时器的工作方式1工作过程详解5.2.3定时器T0和T1的工作方式1应用示例5.2.1与周期相关的几个概念时钟周期时钟周期就是时钟频率的倒数。机器周期机器周期为单片机的基本操作周期,在一个基本操作周期内单片机可完成一个基本的操作机器周期为时钟周期的12倍。对于11.0592MHz的晶振,可算出机器周期约为1.09μs。指令周期指令周期指CPU执行一条指令所需的时间,一般一个指令周期为1~5个机器周期。5.2.2定时器的工作方式1工作过程详解启动T0后,TL0便在机器周期的作用下从00000000开始计数,计数过程是:00000001(计了第1个数)→00000010(计了第2个数)→00000011(计了第3个数)→00000100→…,按二进制累加的方式计数。当TL0计满也就是计到11111111(等于十进制255)时,再计1个数即计到256时,TL0清0(即变为00000000),同时向TH0进一位,TH0内为:00000001。当TL0再一次计满时,TL0又清0,并向TH0进一位,此时TH0内为:00000010。直到TH0、TL0都计满(此时TH0、TL0内的数都为11111111,等于十进制65535),再计1个数(TL0、TH0都变为0)就溢出,产生中断请求,同时TF0(中断标志位)由硬件自动置1。中断服务程序执行完毕后,硬件自动将TF0清0。5.3外部中断的应用5.3.1低电平触发外部中断的应用示例5.3.2下降沿触发外部中断的应用示例第6章单片机内部资源——串口及应用【学习目标】(1)理解串行通信和并行通信的概念。(2)理解单工、半双工和全双工通信的特点。(3)了解51单片机串口的工作方式。(4)掌握51单片机与计算机之间通信的设置方法和通信编程方法。(5)掌握I2C通信和SPI通信的基本方法第6章单片机内部资源——串口及应用6.1RS-232串行通信的基础知识6.1.1串行通信标准和串行通信接口6.1.2通信的几个基本概念6.1.3

RS-232串行通信的硬件连接6.1.4读写串口数据6.1.5单片机串行通信的控制寄存器6.1.6串口的工作方式6.1.1串行通信接口(简称串口)6.1.2通信的几个基本概念波特率和比特率波特率是指数据对信号的调制速率比特率是数字信号的传输速率比特率=波特率×单个调制状态对应的二进制数。异步通信与同步通信同步通信就是进行数据传输时,发送和接收双方要保持完全的同步异步通信就是发送方发出数据后,不需要接收方发回响应,就接着发送下个数据包6.1.3RS-232串行通信的硬件连接单片机与计算机串口的连接单片机与单片机的串行通信连接6.1.4读写串口数据发送数据SBUF=dat;/*数据发送完毕,硬件会自动置位发送中断标志位TI(即将TI置为1,由此可知是否发送完毕*/接收数据temp=SBUF;/*意思是将接收缓冲寄存器收到的数据赋给变量temp。注:读出数据后应编程将接收中断标志位RI清0,以便收到下一帧据后,该位能重新置1。这样,单片机通过判断RI的值,就可接收新的一帧数据*/6.1.6串口的工作方式51系列单片机的串口有四种工作方式方式0方式1方式2方式36.单片机内部资源——串口及应用6.2串口通信设置6.2.1计算机串口通信设置6.2.2单片机串口通信设置6.3单片机串口通信的基础程序示例6.4串口通信应用示例(用串口校准数字钟的时间)6.5

I2C总线6.5.1I2C总线认识和工作原理6.5.2I2C总线的基本功能编程6.2串口通信设置计算机串口通信设置启动串口调试助手。修改波特率,即将计算机端串口的波特率修改为与单片机串口的波特率相一致。输入需向单片机传送的数据。单片机串口通信设置波特率的设置开启串口中断的方法串口控制寄存器SCON的设置6.3单片机串口通信的基础程序示例串口中断初始程序串口接收程序串口发送程序voidinit_interrupt(){ ES=1; TMOD=0x20; TH1=0xf4; TL1=0xf4; PCON=0x80;SCON=0x50;

TR1=1; EA=1;}voidserial()interrupt4{ if(RI) { str[0]=SBUF; RI=0; }}voidsendbyte(unsignedchartemp){SBUF=temp; while(TI==0); TI=0;

}6.4串口通信应用示例利用单片机实训板,实现时长为24小时的数字钟6.5I2C总线I2C总线结构第7章.A/D与D/A的应用【学习目标】(1)知道AD转换与DA转换的作用和应用场合。(2)掌握入门级AD转换芯片ADC0809的硬件连接方法和编程方法。(3)理解LM35模拟温度传感器的硬件连接电路,理解LM35的编程方法。(4)通过温度及电压监测仪项目的实现,提高综合应用的编程能力。(5)理解入门级DA转换芯片DAC0832的硬件连接电路,掌握DAC0832的编程方法。(6)进一步理解I2C通信的规律,掌握具有I2C接口的A/D(DA)芯片PCF8591使用方法第7章.A/D与D/A的应用7.1任务书—温度及电压监测仪7.2A/D转换7.2.1A/D和D/A简介7.2.2入门级A/D芯片ADC0809介绍7.2.3ADC0809应用示例7.3LM35温度传感器的认识和使用7.3.1LM35的外形及特点7.3.2

LM35的典型应用电路分析7.3.3

LM35的应用电路连接及温度转换编程7.1任务书—温度及电压监测仪温度监测用LM35模拟温度传感器感受环境温度,将温度信息转化为电压信息输出给ADC0809,ADC0809输出转化后的数字量给单片机处理,单片机将收到的数字量还原成温度信息,传送到LCD1602上显示出实时环境温度。电压监测可用变压器将市电(额定380V)降低100倍,电压变为3.8V,经A/D变换后传给单片机,单片机将接收到的电压值乘以100(即为实际的市电电压值),显示在LCD1602上。当单片机检测到超压时或欠压影响设备的正常运行时,单片机驱动蜂鸣器(或报警器)报警,并可以切断供电。7.2.1A/D和D/A简介A/D的基本概念传感器将被测量的因素(如温度、压力等)转换成连续变化的电信号(即模拟信号)。单片机不能直接处理这些模拟信号,而要将其转化为数字量,才能进行分析和处理,这种将模拟信号转化为相应的数字信号的过程叫作模/数转换,常简称为A/D变换。D/A的基本概念单片机输出的数字信号也可以转换成模拟量去控制外围设备,这种转换叫作数/模转换,即D/A变换。。7.2.2入门级A/D芯片ADC0809介绍实物、引脚名称、内部逻辑框图7.3.1LM35的外形及特点LM35的特点是:输出电压与摄氏温标成线性关系7.3.2LM35的典型应用电路分析LM35及5倍放大电路7.3.3

LM35的应用电路连接及温度转换编程LM35的应用电路7.4电压源实验时可以用一个电压源来代替传感器输出的模拟量及一些模拟电压信号,非常方便。7.6

D/A变换芯片DAC0832及应用7.6.1DAC0832的内部结构和引脚功能7.6.2单片机实训台典型D/A模块介绍7.6.3

ADC0832采用I/O方式编程示例7.6.4ADC0832采用用扩展地址方式编程示例7.6.1DAC0832的内部结构和引脚功能DAC0832的内部结构DAC0832的引脚排列7.6.2单片机实训台典型D/A模块介绍7.6.3ADC0832采用I/O方式编程示例用I/O方式编程示例sbitCS=P2^0;sbitWR=P2^1;wr0832(unsignedchardat){P1=dat; //P1输出数字量CS=1; //输入寄存器选择,低电平有效WR=0;WR=1; //WR=0时,数据被锁存到输入寄存器中}7.6.4ADC0832采用用扩展地址方式编程示例采用扩展地址方式编程的接线7.7具有I2C总线接口的A/D芯片的应用7.7.1.具有I2C总线接口的A/D芯片(PCF8591)的特点和引脚功能7.7.2AD(DA)芯片PCF8591应用示例7.7.1.具有I2C总线接口的A/D芯片(PCF8591)的特点和引脚功能其外形和引脚名称各引脚的功能引脚标志

描述1AIN0模拟输入通道12AIN1模拟输入通道23AIN2模拟输入通道34AIN3模拟输入通道45A0用于设定硬件地址

6A17A28Vss接电源负极,即GND9SDAI2C总线的数据线10SCLI2C总线的时钟线11OSC外部时钟输入端,内部时钟输出端12EXT内部、外部时钟选择线,使用内部时钟时EXT接地13AGND模拟地14Vref参考电压输入15AOUT模拟输出(D/A转换器)16Vdd正极7.7.2AD(DA)芯片PCF8591应用示例PCF8591芯片实验电路第8章步进电机的控制【学习目标】(1)了解常用步进电机的种类和基本结构。(2)了解步进电机的参数。(3)理解步进电机的驱动原理、硬件连接方法。(4)掌握单片机控制步进电机启动、加速、减速、停止、精确定位的编程方法。第8章步进电机的控制8.1步进电机的基础知识8.1.1.步进电机的概念8.1.2.步进电机的特点8.1.3步进电机的参数8.1.4步进电机的步进方式(单拍、双拍、单双拍)8.2采用步进电机的驱动器对步进电机的控制8.2.1步进电机及驱动器8.2.2步进电机的位移装置及保护装置8.2.3步进电机的控制示例8.2.4步进电机的定位8.3采用驱动芯片对步进电机的控制8.3.1步进电机驱动芯片UDN29168.3.2步进电机驱动芯片UDN2916驱动步进电机的典型应用示例8.1步进电机的基础知识8.1.1.步进电机的概念8.1.2.步进电机的特点8.1.3步进电机的参数8.1.4步进电机的步进方式(单拍、双拍、单双拍)8.1.1.步进电机的概念步进电机是一种将电脉冲转化为角位移的执行机构,即当步进电机的驱动器接受一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度(该角度很小,称为步距角)。步进电机的旋转是按步距角的大小一步一步进行的,因此称之为步进电机。8.1.2.步进电机的特点步进电机的特点特点步进电机没有积累误差额定电压和额定电流只是参考值步进电机外表的温度在80~90℃之间步进电机的力矩会随转速的升高而下降步进电机种类分类反应式步进电机(VR)永磁式步进电机(PM)混合式步进电机(HB)8.1.3步进电机的参数步进电机固有步距角线、相、极性保持转矩是指步进电机通电但没有转动时,定子锁住转子的力矩。DETENTTORQUE是指步进电机没有通电的情况下,定子锁住转子的力矩。8.1.4步进电机的步进方式单拍双拍单双拍8.2采用步进电机的驱动器对步进电机的控制8.2.1步进电机及驱动器8.2.2步进电机的位移装置及保护装置8.2.3步进电机的控制示例8.2.4步进电机的定位8.2.1步进电机及驱动器8.2.2步进电机的位移装置及保护装置槽式光耦传感器超程保护的原理8.2.2步进电机的位移装置及保护装置8.2.3步进电机的控制示例实训任务:步进电机模块游标的归零设计思路:上电后游标向左运动,遮光片向右运动,当右限位检测到遮光片时(即RL为高电平时),游标肯定已移动到0刻度的左边了。这时使步进电机停止,再给步进电机838个脉冲,并改变步进电机的旋转方向,游标向右运动,当步进电机走完838步时,即可到达0刻度。8.2.3步进电机的控制示例实训任务:利用YL-236实训台的步进电机模块,实现游标从任意位置归0(即停在0刻度)并在0刻度停5秒,再移动到5cm处并停3秒,再移动到10cm处。设计思路:首先要测量不同细分数时游标移动1mm所需的脉冲。其方法为:在没上电时(步进电机处于脱机状态),手动旋转转轴使游标归0,再编程,随意地给步进电机加1000个、2000个或5000个脉冲,观察步进电机会停止在什么位置(设停在X毫米处)。再用脉冲的个数除以X就可以得到每毫米所需的脉冲个数。经实验得出,当设置驱动器采用最小步距角时每毫米所需的脉冲个数为137~138个。不同的设备有所差异,可自行修正。8.3采用驱动芯片对步进电机的控制8.3.1步进电机驱动芯片UDN29168.3.2步进电机驱动芯片UDN2916驱动步进电机的典型应用示例8.3.1步进电机驱动芯片UDN29168.3.2步进电机驱动芯片UDN2916驱动步进电机的典型应用示例第9章DS18B20温度传感器及智能换气扇【学习目标】(1)掌握DS18B20温度传感器接入单片机控制系统的方法。(2)掌握DS18B20的编程方法。(3)提高搭建单片机控制系统硬件系统的能力。(4)提高完成综合性项目的编程能力。第9章DS18B20温度传感器及智能换气扇9.1智能换气扇任务书9.2智能换气扇实现思路9.3DS18B20温度传感器9.3.1DS18B20简介9.3.2DS18B20的编程方法9.4模拟智能换气扇的程序代码示例及讲解9.1智能换气扇任务书实训任务:智能换气扇可以根据室内温度自动控制风扇电机的运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论