版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1PG160128A液晶显示任务描述用AT89C51驱动PG160128A液晶显示器,使液晶屏在第一行显示“液晶显示测试”,在第二行显示“屏幕分辨率:160*128”,在第三行显示“PG160128...OK!”。任务分析1.硬件电路分析使用单片机的P1口传送数据DO~D7,P2.0,P2.1,P2.2,P2.3分别控制PG160128A的CD,CE,WR和RD引脚,电路原理图如图5-1所示。2.软件设计思路软件程序设计需要按照PG160128A液晶显示器的读写操作时序来编写。下一页返回任务1PG160128A液晶显示参考源程序上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示上一页下一页返回任务1PG160128A液晶显示系统仿真调试在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图5-1所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真效果如图5-2所示。知识拓展PG160128A点阵型液晶显示器1.PG160128A液晶显示器的特点①内部有T6963C控制器,可与8位微处理器直接相连;②显示的字符字体有4种:5X8,6X8,7X8,8X8;③可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作;上一页下一页返回任务1PG160128A液晶显示④内部有字符发生器CGROM,共128种字符;内部RAM也可根据用户的需要,由用户自行设计定义字符或符号;⑤可管理64KB显示缓冲区及字符发生器CGRAM,并允许CPU随时访问显示缓冲区,甚至可以进行位操作。2.PG160128A液晶显示器内部结构及功能引脚PG160128A液晶显示器包括T6963C控制器、行驱动器组、列驱动器组、显示缓冲区RAM及液晶显示屏,内部结构如图5-3所示。PG160128A液晶显示器共有19个引脚,其引脚及功能见表5-1。3.PG160128A指令系统PG160128A液晶模块的系统指令集其实就是T6963C控制器的指令集。模块的初始化设置一般都由管脚设置完成,因此,其指令系统将集中于显示功能的设置上。上一页下一页返回任务1PG160128A液晶显示T6963C的指令可带一个或两个参数,或无参数。每条指令的执行都是先送入参数(如果有的话),再送入指令代码。每次操作之前需进行状态字的检测。内含T6963C控制器的指令系统见表5-2。(1)读状态字指令S0:指令读写状态,1:准备好,0:忙S1:数据读写状态,1:准备好,0:忙S2:数据自动读状态,1:准备好,0:忙S3:数据自动写状态,1:准备好,0:忙S4:未用上一页下一页返回任务1PG160128A液晶显示SS:控制器运行检测可能性,1:可能,0:不能S6:屏读/拷贝出错状态,1:出错,0:正确S7:闪烁状态检测,1:正常显示,0:关显示由于状态位作用不一样,因此执行不同指令必须检测不同状态位。在CPU每一次读、写指令和数据时,S0和S1要同时有效,处于“准备好”状态。当CPU读、写数组时,判断S2或S3状态。屏读、屏拷贝指令使用S6。SS和S7反映T6963C内部运行状态。(2)地址指针设置指令上一页下一页返回任务1PG160128A液晶显示本指令为双参数(D1~D2)指令。指令代码中的N2,N1,NO为“1”时有效,且不能同时为“1”。根据N的取值,该指令有三种功能,见表5-3。(3)显示区域设置指令本指令为双参数(D1,D2)指令。根据N1,NO的不同取值,该指令有四种功能,见表5-4。①文本区首地址设置:该指令设置了文本显示区在显示存储器中的起始地址。该地址对应显示屏左上角的第一个字符位。定时问定问隔修改这个地址将会使显示画面平滑滚动。参数D1为该地址的低8位,D2为该地址的高8位。上一页下一页返回任务1PG160128A液晶显示②文本区宽度设置:该指令规定了在文本显示区中作为一行显示所占的字节数。该数据与文本显示首地址一起确定了显示单元与显示屏上各点像素的对应关系。③图形区首地址设置:该指令设置了图形显示区在显示存储器中的起始地址。该地址对应显示屏左上角的第一个8点列像素。一个水平8点像素作为一个像素组由一个字节表示。点定时问定问隔修改这个地址将会使显示画面平滑滚动。参数D1为该地址的低8位,D2为该地址的高8位。④图形区宽度设置:该指令规定了在图形显示区中作为一行显示所占的字节数。该数据与文本显示首地址一起确定了显示单元与显示屏上各像素组的对应关系。(4)显示方式设置指令上一页下一页返回任务1PG160128A液晶显示N0~N2组合产生的显示方式见表5-5。设置文本方式和图形方式均打开时,上述合成显示方式设置才有效。其中的文本特征方式是指将图形区借用为文本特征区。该区大小与文本区的相同,每个字节作为对应文本区的每个字符显示的特征,包括字符显示与不显示、字符闪烁及字符的“负向”显示。通过这种方式,T6963C可以控制每个字符的文本特征。文本特征区内,字符的文本特征码由一个字节的低四位组成,即d0~d3的组合功能见表5-6。上一页下一页返回任务1PG160128A液晶显示(5)显示状态设置指令该指令为显示状态的设置,无参数。该指令有4个设置位,每一位都代表一种显示状态的设置。N0为光标闪烁开关。NO=1,启用光标闪烁;N0=0,禁止光标闪烁。N1为光标显示开关。N1=1,启用光标显示;N1=0,禁止光标显示。N2为文本显示开关。N2=1,启用文本显示;N2=0,禁止文本显示。N1为图形显示开关。N1=1,启用图形显示;N0=0,禁止图形显示。上一页下一页返回任务1PG160128A液晶显示(6)光标形状设置指令该指令为光标形状的设置,无参数。光标是以8点列X(N十1)行,N的取值由设置位N0~N3确定,值为0~7。(7)数据自动读写设置指令上一页下一页返回任务1PG160128A液晶显示该指令为数据自动读写的设置,无参数。该指令执行后,CPU可以连续地读、写显示缓冲区RAM的数据,每读、写一次,地址指针自动增1。自动读、写结束时,必须写入自动结束命令以使T6963C退出自动读、写状态,开始接受其他指令。N0,N1的组合功能见表5-7。(8)数据一次读写设置指令该指令是一次读写数据操作指令。在每次读写数据操作后,显示地址都要根据指令代码的设置而修正:加1、减1或不变。该指令在写入数据时,所带的参数就是所要写入的显示数据。当进行读数据操作时,该指令不带参数,直接写入指令代码,读出的内容直接送到数据线上。上一页下一页返回任务1PG160128A液晶显示N0~N2的组合功能见表5-8。(9)屏读(一字节)设置指令所谓屏读,是指把显示屏上显示的内容取出来作为数据提供给CPU使用,这一内容为一个字节的当前显示数据,多数为文本域图形合成显示的内容。该指令为无参数指令,不能应用在文本属性显示方式下。(10)屏拷贝(一行)设置指令上一页下一页返回任务1PG160128A液晶显示该指令为无参数指令,将屏上当前地址指针(图形区内)处开始的一行合成显示内容拷贝到相对应的图形显示区的一组单元内,不能应用在文本属性显示方式下。(11)位操作指令(2)数据写操作上一页下一页返回任务1PG160128A液晶显示数据写操作是向数据通道里写数据,指令的参数也同样是这样操作的。一次写数据或参数时,该数据将写入数据栈中,再由紧接着写入的指令代码决定是将该数据作为数据写入当前的显示地址指针所指的单元内,还是作为参数写入相应的寄存器。(13)数据读指令数据读操作是从数据通道里读取数据。在一次读取数据操作时,读数据指令的写入将当前显示地址指针所指的单元的数据取出写入数据栈中,读数据操作将该数据提出送入数据总线供CPU获取。4.PG160128A操作时序内嵌T6963C控制器的液晶显示器的读写时序如图5-4所示,读写时序参数见表5-9。上一页下一页返回任务1PG160128A液晶显示知识链接1.C51数据类型—结构类型(struct)结构是一种构造类型的数据,它是将若干不同类型的数据变量有序地组合在一起而形成的一种数据的集合体。组成该集合的各个数据变量称为结构成员,整个集合体使用一个单独的结构变量名。一般来说,结构中的各个变量之问是存在某些关系的。由于结构是将一组相关联的数据变量作为一个整体来进行处理,因此,在程序中使用结构将有利于对一些复杂而又具有内在联系的数据进行有效的管理。(1)结构变量的定义有三种定义结构变量的方法,分述如下。第一种,先定义结构类型,再定义结构变量名。定义结构类型的一般格式为:上一页下一页返回任务1PG160128A液晶显示Struct结构名{结构元素表}其中,“结构元素表”为该结构中的各个成员(又称为结构的域),由于结构可以由不同类型的数据组成,因此,对结构中的各个成员都要进行类型说明。定义好一个结构类型之后,就可以用它来定义结构变量。一般格式为Struct结构名结构变量名1,结构变量名2,结构变量名3,……,结构变量名n;第二种,在定义结构类型的同时定义结构变量名。一般格式为:Struct结构名{结构元素表}结构变量名1,结构变量名2,结构变量名3,……,结构变量名n上一页下一页返回任务1PG160128A液晶显示第三种,直接定义结构变量。一般格式为Struct{结构元素表}结构变量名1,结构变量名2,结构变量名3,……,结构变量名n(2)结构变量的引用在定义了一个结构变量之后,就可以对它进行引用,即可以进行赋值、访问和运算。一般情况下,结构变量的引用是通过对其结构元素的引用来实现的。引用结构元素的一般格式为:结构变量名.结构元素其中,“.”符号是访问结构元素成员的运算符。上一页下一页返回任务1PG160128A液晶显示2.C51关键字一一breakbreak是跳出循环的语句,任何由switch,for,while,do-while构成的循环,都可以用break来跳出。必须注意的是,break一次只能跳出一层循环,通常都和if连用,当某些条件成立后,就跳出循环。3.C51的库函数—string.Hstring.h是关于字符数组的函数定义,常用函数有strlen,strcmp,strcpy等。(1)字符串的长度计算函数strlen函数原型:externintstrlen(char*);上一页下一页返回任务1PG160128A液晶显示它求解的方法是从字符串的首地址开始到遇到第一个’\0‘停止计数。如果只定义,没有给它赋初值,这个结果是不定的,它会从字符串首地址一直记下去,直到遇到’\0'才会停止。(2)字符串比较函数strcmp函数原型:externcharstrncmp(char*s1,char*s2,intn);按顺序比较字符串s1和s2的前n个字符的大小,但是不区分字母大小写。返回值:当sl<s2时,返回值<0;当strl=str2时,返回值=0;当str1>str2时,返回值>0o上一页下一页返回任务1PG160128A液晶显示(3)字符串拷贝函数strcpy函数原型:externcharstromp(char*s1,char*s2);将字符串s1拷贝到字符串s2。上一页返回任务2万年历的计时控制任务描述用AT89C52控制DS1302实时时钟,并在PG160128A液晶显示器显示时问信息。任务分析1.硬件电路分析选择AT89C52作为控制芯片。AT89C52与AT89C51的最大不同之处在于内部程序存储器的不同,AT89C52有8KB的Flash程序存储器,AT89C51有4KB的Flash程序存储器。在该任务中,程序编译后大于4K,所以需选择AT89C52作为控制芯片。下一页返回任务2万年历的计时控制使用单片机AT89C52的P1口为PG160128A液晶显示器传送数据D0~D7,P2.0,P2.1,P2.2,P2.3分别控制PG160128A的CD,CE,WR和RD引脚,单片机的P3.0,P3.1和P3.2分别控制DS1302的I/O,SCLK和RST引脚,完成对DS1302的控制。电路原理图如图5-5所示。2.软件设计思路软件设计完成对PG160128A的初始化、DS1302初始时问的设定,读取DS1302当前的时问并显示。其中,DS1302时问的设定和读取DS1302当前时问是按照DS1302传送数据格式来完成的。时问的读取和显示is更新一次,时问控制由Timer0完成。上一页下一页返回任务2万年历的计时控制参考源程序参考源程序由两个文件组成:一个为T6963.c,完成PG160128A的显示控制,源程序为任务1中除了main以外的程序,在此省略;另一个为Main.c,完成DS1302的操作,并完成主程序的工作,源程序如下:上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制上一页下一页返回任务2万年历的计时控制系统仿真调试在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图5-5所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真效果如图5-6所示。知识拓展DS1302实时时钟1.实时时钟DS1302概述DS1302是Dallas公司推出的一款时钟/日历芯片。实时时钟/日历电路具有能计算2100年之前的秒、分、时、天、月、年的能力,还可以实现闰年的天数自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。上一页下一页返回任务2万年历的计时控制DS1302与单片机之问能简单地采用同步串行的方式进行通信,仅需用到三个口线:①RST(复位);②I/O(数据线);③SCLK(串行时钟)。时钟/RAM的读/写数据以1B或多达31B的字符组方式通信。DS1302工作时,功耗很低,保持数据和时钟信息时,功率小于1mW。DS1302是由DS1202改进而来的,增加了以下的特性:双电源管脚用于主电源和备份电源供电,Vccl为可编程涓流充电电源,附加7个字节存储器。因而,DS1302是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。上一页下一页返回任务2万年历的计时控制2.DS1302管脚排列及功能DS1302的管脚排列如图5-7所示。DS1302的管脚功能见表5-10。3.基本控制操作为了初始化任何数据的传输,RST引脚信号应由低变高,并且应将具有地址和控制信息的8位数据(控制字节)装入芯片的移位寄存器内,数据的读、写可以用单字节或多字节的突发模式进行。所有的数据应在时钟的下降沿变化,而在时钟的上升沿,芯片从与之相连的设备输出。4.命令字节命令字节的格式如下:上一页下一页返回任务2万年历的计时控制5.数据的写入或读出对芯片的所有写入或读出操作都是由命令字节引导的,每次仅写入或读出一个字节数据称为单字节操作。每次对时钟/日历的8个字节或31个RAM字节进行全体写入或读出操作,称为多字节突发模式操作。数据传送格式如图5-8所示。6.片内寄存器地址及功能DS1302内部的各寄存器地址及功能如图5-9所示,其中秒、分、时、日、月、星期、年的数据是以压缩的8421BCD码形式存放的。(1)时钟/日历寄存器如图5-9所示,有秒、分、小时、日、月、星期和年共7个寄存器。小时寄存器的最高位决定其为12小时制(1)或24小时制(0)。当为12小时制时,位5若为0,就是上午(AMA,为1就是下午(PM)。上一页下一页返回任务2万年历的计时控制星期的值为01~07,01代表星期日,02代表星期一,……,07代表星期六。(2)时钟暂停标志秒寄存器的最高位是时钟暂停标志。当该位被置1时,时钟振荡电路停止工作,DS1302进入低功耗空闲状态,这时芯片消耗电流将小于100nA。当该位被置0时,时钟将会正常工作。(3)芯片写操作写保护寄存器的最高位是芯片的写保护位,位0至位6应强制写0,且读出时始终为0。对任何片内时钟/日历寄存器或RAM,在写操作之前,写保护位必须为0,否则不可写入。通过置位写保护位,可提高数据的安全性。上一页下一页返回任务2万年历的计时控制(4)涓流充电控制涓流充电寄存器控制着DS1302的涓流充电特性。寄存器的位4~7决定是否具备充电性能:仅在1010编码的条件下才具备充电性能,其他编码组合不允许充电。位2和位3选择在Vcc1和Vcc2之问是串入一个还是两个二极管。(5)RAM在RAM寻址空问依次排布的31字节静态RAM可为用户使用。Vcc1引脚的备用电源为RAM提供了失电保护功能,寄存器和RAM的操作通过命令字节的位6加以区别。当位6为0时,对RAM区进行寻址;为1时,对时钟/日历寄存器寻址。上一页下一页返回任务2万年历的计时控制知识链接C51的库函数—stdio.hstdio.h是关于标准输入/输出的函数定义。本文中用到sprintf函数,其函数原型为:externintsprintf(char*buffer,constchar*format,函数实现把格式化的数据写入某个字符串,具体参数如下。buffer:char型指针,指向欲写入的字符串地址。format:char型指针,指向的内存里面存放了格式字符串。[argument]...:可选参数,可以是任何类型的数据。返回值:字符串长度(strlen)。上一页返回任务3万年历的温度控制任务描述用AT89C52控制DS18B20温度传感器,并在PG160128A液晶显示器上显示温度信息。任务分析1.硬件电路分析使用单片机AT89C52的P1口为PG160128A液晶显示器传送数据DO~D7,P2.0,P2.1,P2.2,P2.3分别控制PG160128A的CD,CE,WR和RD引脚,单片机的P2.4控制DS18B20的DQ引脚,完成对S1302的控制。电路原理图如图5-10所示。2.软件设计思路软件设计完成对PG160128A的初始化,读取DS18B20当前的温度并显示。下一页返回任务3万年历的温度控制参考源程序参考源程序由两个文件组成:一个为T6963.c,完成PG160128A的显示控制,源程序为任务1中除了main()主程序以外的程序,在此省略。另一个为Main.c,完成DS18B20的操作,并完成主程序的工作,源程序如下。上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制上一页下一页返回任务3万年历的温度控制系统仿真调试在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图5-10所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真效果如图5-11所示。知识拓展DS18B20单线数字温度传感器1.温度传感器DS18B20概述DS18B20是Dallas公司推出的“一线总线”数字化温度传感器芯片。DS18B20通过一个单线接口发送或接收信息,在CPU和DS18B20之问仅需一条数据线,其主要特性如下。上一页下一页返回任务3万年历的温度控制①单线接口,仅需一个端口引脚进行通信。②无需外部器件。③每个器件有唯一的64位的序列号存储在内部存储器中。④宽范围工作电压(C3.0~5.5V)。⑤测温范围:-550C~+1250C。⑥在一100C~+850C范围内精确度为士50C。⑦可进行简单的多点分布式测温应用。⑧温度计分辨率可选择9~12位。⑨可在750ms内将温度转换为12位。⑩用户可定义的非易失性温度报警设置。上一页下一页返回任务3万年历的温度控制2.DS18B20管脚排列及功能DS18B20的管脚排列如图5-12所示。DS18B20的管脚功能见表5-11.3.测温操作DS18B20是能够直接读数字的温度传感器。温度传感器的精度为用户可编程的9,10,11或12位,分别以0.50C,0.250C,0.1250C和0.06250C增量递增。上电默认的精度为12位。DS18B20启动后,保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器必须发出}44h]命令,产生的温度数据以两个字节的形式存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。温度寄存器的格式如图5-13所示。上一页下一页返回任务3万年历的温度控制在温度寄存器中,低字节(LSByte)的低4位存放温度的小数部分,高4位和高字节(MSByte的低3位存放温度的整数部分,高字节的高5位存放温度的符号信息。上电复位时,温度寄存器默认值为+850C。典型温度/数据关系见表5-12。4.存储器DS18B20的存储器结构如图5-14所示。存储器由一个8B的暂存器(SRAM)和一个3B的非易失性电可擦除寄存器(EEPROM)组成。EEPROM寄存器存放了温度高低报警触发值TH和TL,以及配置寄存器的值。上电时,EEPROM中的数据被载入暂存器。暂存器中的字节2和字节3是EEPROM寄存器中TH和TL的拷贝,TH和TL的格式如下:上一页下一页返回任务3万年历的温度控制标志位S表明温度的正负:正数S=0,负数S=1。当设置报警功能时,每次温度转换完成后,就将温度值和存储在TH和TL中一个字节的报警预置值进行比较,如果温度高于TH或低于TL,DS18B20会置位一个报警标示。每进行一次测温,就对这个标识进行一次更新;因此,如果报警条件不成立了,在下一次温度转换后,报警标识将被清零。当报警功能不使用时,TH和TL可以被当做普通寄存器使用。用户可以按表5-13设置DS18B20的精度。上电默认为12位精度。配置寄存器的位7和位0~4被器件保留,禁止写入;在读回数据时,它们全部表现为逻辑1.5.DS18B20指令DS18B20的指令功能见表5-14。上一页下一页返回任务3万年历的温度控制(1)搜索ROM指令[F0h]当系统上电初始化时,总线控制器必须通过识别总线上所有芯片序列码去得到从机的数目和型号。总线控制器通过搜索ROM指令多次循环搜索ROM编码,以确认所有从机器件。如果总线上只有一台从机,可以用较为简单地读取ROM指令。(2)读取ROM指令[33h]只有总线上存在单个DS18B20的时候才能使用这条命令。该命令允许总线控制器在不使用搜索ROM指令的情况下读取从机的64位序列码。如果总线上有不止一台从机,当所有从机试图同时传送信号时,就会发生数据冲突。上一页下一页返回任务3万年历的温度控制(3)匹配ROM指令[55h]匹配ROM指令,后跟64位ROM编码序列,让总线控制器在多点总线上定位一个特定的DS18B20。只有和64位ROM片序列码完全匹配的DS18B20才能响应随后的存储器操作指令;所有和64位ROM片序列码不匹配的从机都将等待复位脉冲。(4)忽略ROM指令[CCh]本指令允许总线控制器不用提供64位ROM编码就能使用功能指令。例如,总线控制器可以先发出一条忽略ROM指令,然后发出温度转换指令[44h],从而完成温度转换操作。值得注意的是,当只有一台从机在总线上时,无论如何,忽略ROM指令之后只能跟着发出一条读取暂存器指令[[BEh]。在单点总线情况下使用该指令,器件无需发回64位ROM编码,从而节省了时问。如果总线上有不止一台从机,若发出忽略ROM指令,由于多台从机同时传送信号,总线上就会发生数据冲突。上一页下一页返回任务3万年历的温度控制
(5)报警搜索指令[ECh]本指令的流程和搜索ROM指令的相同,只有满足报警条件的从机才对该命令做出响应。只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。(6)温度转换指令[44h]本指令用于启动一次温度转换。温度转换指令被执行后,产生的温度转换结果数据以2个字节的形式被存储在高速暂存器中,而后DS18B20保持等待状态。(7)写暂存器指令[4Eh]本指令向DS18B20的暂存器写入数据,开始位置在TH寄存器,接下来写入TL寄存器,最后写入配置寄存器。数据以最低有效位开始传送。上述3个字节的写入必须发生在总线控制器发出复位命令前,否则会中止写入。上一页下一页返回任务3万年历的温度控制
(8)读暂存器指令[BEh]本指令读取暂存器的内容。读取从字节0开始,直到字节8读完,如果不需要读完所有字节,控制器可以在任何时问发出复位命令中止读取。(9)拷贝暂存器指令[48h]本指令把TH,TL和配置寄存器的内容拷贝到EEPROM中。(10)召回EEPROM指令[B8h]本指令把报警触发器的值CTH和TL)以及配置寄存器的内容从EEPROM拷回暂存器。(11)读电源模式指令[B4h]总线控制器在本指令发给DS18B20后发出读时序,若是寄生电源模式,DS18B20将拉低总线;若是外部电源模式,DS18B20将会把总线拉高。上一页下一页返回任务3万年历的温度控制
6.DS18B20工作过程通过单线总线端口访问DS18B20协议的步骤如下。步骤1:初始化。步骤2:ROM操作指令。步骤3:DS18B20功能指令。每一次DS18B20的操作都必须满足以上步骤,若是缺少步骤或是顺序混乱,器件将不会返回值。(1)初始化通过单总线的所有执行操作处理都从一个初始化序列开始。上一页下一页返回任务3万年历的温度控制
(2)ROM操作指令一旦总线控制器探测到一个存在脉冲,它就发出一条ROM指令。如果总线上挂有多只DS18B20,这些指令将基于独有的64位ROM片序列码,使总线控制器选出要进行操作的器件。ROM操作指令包括搜索ROM指令、读取ROM指令、匹配ROM指令、忽略ROM指令、报警搜索指令。(3)DS18B20功能指令在总线控制器发给欲连接的DS18B20一条ROM命令后,接着可以发送一条DS18B20功能指令。这些命令允许总线控制器读写DS18B20的暂存器,发起温度转换和识别电源模式。DS18B20功能指令包括温度转换指令、写暂存器指令、读暂存器指令、拷贝暂存器指令、召回EEPROM指令、读电源模式指令。上一页下一页返回任务3万年历的温度控制
7.DS18B20工作时序(1)初始化初始化序列包括一个由总线控制器发出的复位脉冲和其后由从机发出的存在脉冲,存在脉冲让总线控制器知道DS18B20在总线上且已经准备好操作。DS18B20初始化时序如图5-15所示。主机总线在t0时刻发送一复位脉冲(最短为400μs的低电平信号),接着在t1时刻释放总线并进入接收状态,DS18B20在检测到总线的上升沿之后,等待15~60μs,接着DS18B20在t2时刻发出存在脉冲(低电平,持续60~240μs)。上一页下一页返回任务3万年历的温度控制(2)写操作时序写时序包括两种时序:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。所有写时序必须最少持续60μs,包括两个写周期之问至少有1μs的恢复时问。写操作时序如图5-16所示。当总线控制器把数据线从逻辑高电平拉到低电平时,写时序开始,从to时刻开始,15μs之内将所需写的位送到总线上,DS18B20在t0后15~60μs问对总线采样。若为低电平,写入的位为0,如图5-16(a)所示;若为高电平,写入的位为1。如图5-16(b)所示。(3)读操作时序读时序必须最少持续60μs,包括两个写周期之问至少有1μs的恢复时问。读操作时序如图5-17所示。上一页返回任务4万年历的设计和制作任务描述用AT89C55控制DS1302实时时钟和DS18B20温度传感器,在PG160128A液晶显示器显示时问和温度信息,并能够通过键盘调整时问。任务分析1.硬件电路分析使用单片机AT89C55C20KB内部程序存储器)的P1口为PG160128A液晶显示器传送数据DO~D7,P2.0,P2.1,P2.2,P2.3分别控制PG160128A的CD,CE,WR和RD引脚;单片机的P2.4,P2.5和P2.6分别控制DS1302的RST,SCLK和I/O引脚,完成对DS1302的控制;单片机的P2.7控制DS18B20的DQ引脚,完成对DS1302的控制;按键K1,K2,K3,K4分别连接在P3.4,P3.5,P3.6,P3.7上和四输入与非门的输入端,与非门的输出端与P3.2相连,完成按键的控制。下一页返回任务4万年历的设计和制作电路原理如图5-18所示。2.软件设计思路①主程序:主程序主要对系统进行初始化,包括设置定时器和外部中断、液晶显示初始化、设置初始时问、温度传感器初始化、显示固定字符,主循环完成is对DS1302和DS18B20的读取和显示。当在调整时问时,不进行DS1302时问的读取。②外部中断0:进行按键的判断并实现对应按键的功能,K1为选择调整的对象(依次为年、月、日、时、分、秒进行循环设置)、K2为实现时问加1功能、K3为实现时问减1功能、K4为确定键。在进行调整时,首先按下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 凉山彝族自治州金阳县2025-2026学年第二学期二年级语文第五单元测试卷(部编版含答案)
- 山南地区桑日县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 玉林市玉州区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 柳州市柳南区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 黄石市黄石港区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 乌兰察布盟四子王旗2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 揭阳市普宁市2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 南宁市邕宁区2025-2026学年第二学期五年级语文第五单元测试卷(部编版含答案)
- 安康地区旬阳县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 红色物业议事工作制度
- 轴承游隙知识培训
- 内镜生物监测课件
- 加油站电气安全培训课件
- 皮带走廊脚手架施工方案
- 光伏施工现场安全培训
- 2025年苏州健雄职业技术学院单招职业技能考试题库(各地真题)含答案
- 学堂在线 雨课堂 学堂云 人工智能原理 章节测试答案
- 省委党校考试试题及答案
- 小专题(五)等腰三角形中的分类讨论
- 2025至2030中国索道缆车市场运行状况与未来经营模式分析报告
- DUK-2A高密度电法测量系统使用说明
评论
0/150
提交评论