版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、题义分析及解决方案1.题义需求分析用star es598pci单板开发机设计一款全自动豆浆机,豆浆机的工作原理如下:上电-水位检测-水位合适开始加热-加热到80c开始打浆(打15秒,停15秒,共4次)-继续加热一定时间(溢出到时暂时停止加热)。打浆后继续加热,检测到4次溢出完成。具体要求:(1) 加热温度可以不到80度,设为35度;(2) 水位合适由按键模拟;(3) 打浆过程由电机模拟(4) 温度要求显示由上述的需求可以分析如下:根据设计内容要求可知:1)用star es598pci单板开发机设计一个全自动豆浆机。接口可以使用8255a或8279,考虑该设计要求实现的功能较多,这里 我们选
2、择同时使用8255a和8279芯片,用于系统控制电路。其中8255芯片主要用于控制把直流电机的控制信号输出到继电器来控制电机,接收水位测量的两个按键信号。8279芯片用于控制温度的测量,控制led数码管的温度显示。2)水位合适检测和水位溢出检测由按键模拟,考虑到方便性,我们选择二进制开关,用1表示水位合适或溢出,0表示水位不合适或不溢出。3)加热使用温度传感器ds18b20,ds18b20在本设计中主要是测量加热的温度并将接收的模拟信号转化为数字信号输出至8255a中。4)打浆过程由直流电机模拟,打浆时,打15秒,停15秒,共四次,由软件用汇编语言编程来实现。5)温度的显示用七段led显示器2
3、.解决问题方法及思路1) 硬件部分为了完成这个实验,pc机和es-pci固然不可少,另外,为了能使各个功能模块更好的实现,我们选择8255和8279作为我们的主控芯片。打浆功能由直流电机来实现,温度的测量由ds18b20来实现,温度的显示由led来实现,水位的合适与溢出由两个二进制开关来实现,直流电机的控制由继电器来实现。我们用8279的b口连接led数码管段码,用于控制显示那一段,c口连接led数码管选择脚。我们把8255的 pc0-pc3设置为输入口,pc0连接ds18b20的tout,pa口连接二进制开关, pc4-pc7设置为输出口,pc4口连接继电器(用于控制直流电机),pc5连接d
4、s18b20的tctrl,用于控制加热和暂停加热,到此,硬件设计基本完成。2) 软件部分除了必需的硬件之外,合理的程序设计也是本实验的重中之重,为了完成本实验中的所有功能,需要5大程序段。、 温度测量程序模块。、 电机循环打浆程序模块。、 温度的显示程序模块(包括段选和位选)。、 加热程序模块。、 水位的检测由二进制开关模拟,只需输入一个信号即可(包括水位合适和水位溢出)。二、硬件设计1、 选择芯片8255a1)芯片8255a在本设计中的作用8255在本实验作为控制芯片,把直流电机的控制信号输出到继电器来控制直流电机,接收水位测量的两个按键信号。2)芯片8255a的功能分析8255a是一种可控
5、制编程的并行接口芯片,采用40脚双列直插式封装,单一+5v电源,全部输入/输出均与ttl电平兼容。它有a、b、c三个并行输入/输出端口,其功能全部由程序设定,每个端口都有自己的特点。本设计中8255a工作于方式0,即基本输入输出方式,其中pa口作为输入口,pb口作为输出口,pc0作为输入,c口的其他位不用。8255a在方式0下可将三个数据端口划分为4个独立的部分,a、b口分为两个8位端口,c口高4位和低4位分别用作两个4位端口。在此方式下,输出的数据被锁存,而输入的数据是不锁存的。1 8255a的内部结构图如下: 图 8255a的内部结构图 2 8255a的方式控制字: d7 d6 d5 d4
6、 d3 d2 d1 d01a组工作方式a口i/oc7-c4 i/ob组工作方式b口i/oc3-c0 i/o | | | | | | | 特征位 00:方式0 1:输入 1:输入 0:方式0 1:输入 1:输入 01:方式1 0:输出 0:输出 1:方式1 0:输出 0:输出 10:方式2图2 8255a的方式控制字3 8255a的置位/复位控制字: d7 d6 d5 d4 d3 d2 d1 d00写入位编码写入内容 写入位 | 编码 | pc0 000 0:写入0 pc1 001 1:写入1 pc2 010 pc3 011 pc4 100 pc5 101 pc6 110 pc7 111图3 8
7、255a的方式控制字:3) 芯片8255的技术参数表1_18255a主要技术参数参数名称符号测试条件最大规范值最小规范值输入低电平电压vil0.8v-0.5v输入高电平电压vihvcc2.0v输入低电平电压(数据总线)voliol=2.5ma0.45v输入低电平电压(外部端口)voliol=1.7ma0.45v输入高电平电压(数据总线)vohioh=-400ma2.4v输入高电平电压(外部端口)vohioh=-200ma2.4v达林顿驱动电流idarrext=750vext=1.5v-0.4ma1.0ma电源电流icc120ma输入负载电流iili=vcc0v+10ma-10ma输出浮动电流i
8、oflvout=vcc-0+10ma-10ma 8255a主要参数分析:8255a的达林顿驱动电流最大为4.0 ma, 当电流超过达林顿驱动电流是芯片就有可能会被损坏,而led的驱动电流要比它高的多发光,在保证8255芯片安全的同时又能让led管显示就会需要外加器件。8255有a、b、c三个并行输入输出端口(简称为a口、b口、c口),其功能全部由程序设定,每个端口都有自己的特点。a口、b口通常作为独立的i/o的端口使用,c口也可以作为独立的i/o端口使用,但当a口、b口作为应答式的i/o端口使用时,c口分别用来为a口、b口提供应答控制信号。各端口的功能如表1-2所示。表1_2 8255a的端口
9、功能工作方式a口b口c口0基本输入/输出端口,输入不锁存,输出锁存。同a口同a口1选通输入/输出端口,输入/输出均可锁存。同a口c口3位作为a口的应答线;c口另3位作为b口的应答线。2应答式双向输入/输出端口,均可锁存。不用c口5位作为a口的应答线。2、选择芯片82791)8279在本设计中的作用:8279是专用键盘、数码管显示接口芯片,它可以自动维持7段显示器的刷新,不需要主机的干预,并且可以同时完成矩阵键盘的扫描,通过译码器获得8个显示器的选通信号,即位选通信号。8279芯片用于控制温度的测量,控制led数码管的温度显示。2)芯片8279的功能分析:a. 8279的内部结构框图如下所示:(
10、1)数据缓冲器它连接内、外总线,暂时cpu与8279芯片之间传送的命令、数据或状态。(2)i/o控制它用于控制信息的流向及区分信息的特征。cs=1时,由ro或wr控制从8279读出或向8279写入;a0=0时,选中数据寄存器,输入/输出均为数据。a0=1时,选中命令、状态寄存器,输入时位命令,输出时位状态。(3)控制与定时寄存器它用来寄存键盘和显示的工作方式,以及由cpu编程的其他操作方式,并通过译码产生相应的控制信号,完成规定的控制功能。 图4 8279的内部结构框图 (4)定时控制它对外部时钟信号clk分频至内部所需要的100khz时钟。(5)扫描计数器它可根据编程命令按编码或译码方式工作
11、。编码方式:4位计数器按二进制计数,计数状态从扫描线sl0sl3输出,经外部译码器译码后,为键盘和显示器提供16个扫描信号。译码方式:扫描计数器最低两位被译码后从sl0sl3输出,可直接作为键盘和显示器扫描信号。此时键盘矩阵为48,显示字符为4位。(6)键盘去抖与控制键盘去抖电路:在键盘扫描方式中,当有键闭合时,按命令指定方式去抖动后读入键值。控制电路:按命令指定方式控制去抖电路的工作过程,以及对返回信号进行处理。(7)返回缓冲器它锁存来自rl0rl7的回复信号,在键盘扫描方式中,返回线与键盘矩阵列线相连,在逐行扫描时搜寻一行中闭合键所在的列。当有键闭合时,经去抖动后经行、列编码和附近的移位、
12、控制状态一起形成键盘数据送至fifo存储器,供cpu读取。表3 键盘数据格式 d7 d6 d5 d4 d3 d2 d1 d0cntlshiftsl2sl1sl0r2 r1r0控制移位行编码列编码其中,控制和移位由两个独立的附加开关决定;sl2 sl1 sl0为按下键的行编码,来自扫描计数器的低3位;r2 r1 r0是根据返回信号确定的列编码。(8)fifo ram它是一个88ram,在键盘输入方式时遵循先入先出(fifo)原则。(9)fifo ram的状态寄存器它用来存放fifo ram的状态,例如ram空、满等。当工作在键盘方式fifo存储器不空时,将产生irq1信号向cpu申请中断。(10
13、) 显示ram、显示地址寄存器显示ram用来存储显示数据。容量为168位。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分别为a、b两组,outa03和outb03可以单独送数,也可以组成一个8位的字。显示寄存器的输出与显示扫描配合,不断从显示ram中读出显示数据,同时轮流驱动被选中的显示器件,以达到多路复用的目的,使显示器件呈现稳定的显示状态。显示地址寄存器用来寄存由cpu进行读/写显示ram的地址,它可以由命令设定,也可以设置成每次读写或写入之后自动递减。 (11)显示寄存器它存放显示内容。在显示过程中它与显示扫描配合,轮流从显示ram中读出显示信息并依次驱动被选中的显示器件
14、,循环不断地刷新显示字符编码,使显示器件呈现稳定的显示字符。8位显示寄存器分为a、b两组,outa03和outb03可以单独送树,显示4个字符也可以组成一个8位字符。(12)显示地址寄存器它寄存读/写显示ram地址,即对应显示字符从哪一位开始。它由命令设定,并可设置成每次读出或写入之后自动加1。b芯片8279是一种具有40条引脚的双列直插式芯片,它的外部引脚如下图所示:cs(片选):输入线,当cs=0时8279被选中,允许cpu对其读、写,否则被禁止。 d0d7(数据总线):双向、三态总线,和系统数据总线相连;用于cpu和8279间的数据/命令传递。a0:地址线,进行片内端口选择。为0时,选中
15、数据寄存器;为1时选中命令/状态寄存器。rd、wr(读、写信号):输入线。低电平有效,来自cpu的控制信号,控制8279的读、写操作。clk:系统时钟,为8279芯片提供内部定时。reset:复位线,高电平时复位8279到:16个字符显示(左进方式);编码扫描键盘(双键锁定);时钟设置为31。irq(中断请求):输出线。高电平有效。 图5 外部引脚图 在键盘工作方式中,当fifo/传感器ram存有数据时,irq为高电平。cpu每次从ram中读出数据时,irq变为低电平。若ram中仍有数据,则irq再次恢复高电平。在传感器工作方式中,每当检测到传感器状态变化时,irq就出现高电平。sl0sl3:
16、扫描线,用来扫描键盘或显示器,可编程设定为编码输出或译码输出。rl0rl7:返回线,用作键盘矩阵列线的返回信号输入。shift:移位信号,高电平有效,是键盘数据的d6位,用于扩充键的控制功能,如作为上、下档功能键。cntl:控制线,高电平有效,键盘工作方式时,是键盘数据的d7位,用于扩充键的控制功能控制功能键。outa0 outa3,outb0outb3:a组、b组显示信号输出线,与扫描线sl0sl3同步,实现分时数据显示,即刷新各位显示字符。两组可独立使用,也可合并使用。bd(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。c8279的工作过程通过确定其方式
17、字/命令字来实现。当a0=1时,cpu向8279芯片写入命令。(1) 设置键盘/显示方式表2_2 设置命令字 d7 d6 d5 d4 d3 d2 d1 d0000ddkkk其中: d7、d6、d5=000方式设置命令特征位。 dd(d4、d3):来设定显示方式,其定义如下: 00:8个字符显示,左入口 01:16个字符显示,左入口 10:8个字符显示,右入口 11:16个字符显示,右入口所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。 kkk(d2
18、、 d1、 d0):用来设定七种键盘、显示工作方式: 000 编码扫描键盘,双键锁定 001 译码扫描键盘,双键锁定 010 编码扫描键盘,n键轮回 011 译码扫描键盘,n键轮回 100 编码扫描传感器矩阵 101 译码扫描传感器矩阵 110 选通输入,编码显示扫描 111 选通输入,译码显示扫描 双键锁定与n键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。n键轮回为n键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入fifo
19、ram中。(2) 设置程序时钟命令 表2_3 命令格式 d7 d6 d5 d4 d3 d2 d1 d0001ppppp其中:d7、d6、d5=001为时钟命令特征位。ppppp( d4、d3、d2、d1、d0)用来设定外部输入clk端的时钟进行分频的分频数n。n取值为231。例如外部时钟频率为2mhz,ppppp被置为10100(n=20),则对输入的外部时钟20分频,以获得8279内部要求的100kmz的基本频率。(3) 读fifo/传感器ram命令 表2_4 命令格式 d7 d6 d5 d4 d3 d2 d1 d0010aixaaa其中:d7d6d5 =010为读fifo/传感器ram命令
20、特征位。该命令字只在传感器方式时使用。在cpu读传感器ram之前,必须使用这条命令来设定传感器ram中的8个地址(每个地址一个字节)。 aaa(d2、d1、d0)为传感器ram中的八个字节地址。 ai(d4)为自动增量特征位。当ai=1时,每次读出传感器ram后地址自动加1使地址指针指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读fifo/传感器ram命令。在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不需使用此命令。(4) 读显示ram命令 表2_5 命令格式 d7 d6 d5 d4 d3 d2 d1 d0011aiaaaa其中:d7d6d5 =011为读
21、显示ram命令字的特征位。该命令用来设定将要读出的显示ram地址。aaaa(d3、d2、d1、d0)用来寻址显示ram命令字的特征位。由位显示ram中有16个字节单元故需要4位寻址。ai(d4)为自动增量特征位。当ai=1时,每次读出后地址自动加1指向下一地址。(5) 写显示ram命令 表2_6 命令格式 d7 d6 d5 d4 d3 d2 d1 d0100aiaaaa其中:d7d6d5 =100为写显示ram命令字的特征位。在写显示器ram之前用该命令用来设定将要写入的显示ram地址。aaaa(d3、d2、d1、d0)为将要写入的存储单元地址,ai(d4)为自动增量特征位。当ai=1时,每次
22、写入后地址自动加1指向下一次写入地址。(6) 显示禁止写入/消隐命令特征位 表2_7 命令格式 d7 d6 d5 d4 d3 d2 d1 d0101 xiwaiwbiwciwd其中:d7d6d5 =101为显示禁止写入/消隐命令特征位。iwa、iwb(d3、d2)为a、b组显示ram写入屏蔽位。由于显示寄存器分成a、b两组,可以单独送数,故用两位来分别屏蔽。当a组的屏蔽位d3=1时,a组的显示ram禁止写入。因此,从cpu写入显示器ram数据时,不会影响a的显示。这种情况通常在采用双4位显示器时使用。因为两个双四位显示器是相互独立的。为了给其中一个双四位显示器输入数据而又不影响另一个四位显示器
23、,因此必须对另一组的输入实行屏蔽。iwc、iwd(d1、d0)为消隐显示位。用于对两组显示输出消隐。若bl=1时,对应组的显示输出被消隐。当bl=0时,则恢复显示。(7) 清除命令 表2_8 命令格式 d7 d6 d5 d4 d3 d2 d1 d0110cdcdcdcfca其中: d7d6d5 =110清除命令特征位。 cdcdcd(d4d3d2)用来设定清除显示ram方式。共有四种消除方式,见表6-10-1。 cf(d1)用来置空fifo存储器,当=1时,执行清除命令后,fifo ram被置空,使中断输出线复位。同时,传感器ram的读出地址也被置0。 ca(d0)为总清的特征位。它兼有cd和
24、cf的联合效能。在cd=1时,对显示的清除方式由d3、d2的编码决定。 清除显示ram约需160s。在此期间fifo状态时的最高位du=1,表示显示无效。cpu不能向显示ram写入数据。(8) 结束中断/错误方式设置命令 表2_9 命令格式 d7 d6 d5 d4 d3 d2 d1 d0111 exxxx其中: d7d6d5 =111为该命令的特征位。此命令有两种不同的作用: 作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路将其状态写入传感器ram,并启动中断逻辑,使irq变高,向cpu请求中断,并且禁止写入传感器ram。此时,若传感器ram读出地址的自动递增特
25、征没有置位(ai=0),则中断请求irq在cpu第一次从传感器ram读出数据时就被清除。若自动递增特征已置位(ai=1),则cpu对传感器ram的读出并不能清除irq,而必须通过给8279写入结束中断/错误方式设置命令才能使irq变低。因此在传感器工作方式中,此命令用来结束传感器ram的中断请求。 作为特定错误方式设置命令。在8279已被设定为键盘扫描n键轮回方式以后,如果cpu给8279又写入结束中断/错误方式设置命令(e=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消颤周期内,如果发现多个按键同时按下,则fifo状态字中的错误特征位s/e将置1,并产生中断请求
26、信号和阻止写入fifo ram。 上述八种用于确定8279操作方式的命令字皆由d7d6d5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号a0=1。8279芯片的状态字主要用于键盘和选通工作方式,以指示fifo ram中的字符数和有无错误发生。表2_10 键盘和选通工作方式格式 d7 d6 d5 d4 d3 d2 d1 d0dus/e0 ufnnn其中: du( d7)为显示无效特征位。当du=1表示显示无效。当显示ram由于清除显示或全清命令尚未完成时,du=1。d6(s/e):在键盘工作方式中为特殊错误方式标志位。s/e=1表示出现多键同时
27、按下的错误。d5(0):超出标志位,当向已满的fifo ram中写入,致使fifo ram中的字符个数n8而产生重叠时,0被置为1。d4(u):“空”标志位,当fifo ram中的字符个数n=0时,u被置为1。d3(f):“满”标志位,当fifo ram中的字符个数n=8时,f被置为1。d2d1d0(nnn):表示fifo ram中有n个字符待取走。3.选择ds18b20温度传感器1 )ds18b20温度传感器在本设计中的作用 利用温度传感器检测温度,并转换为数字量和设定的界限值比较。2 )ds18b20的功能分析ds18b20可编程温度传感器有三个管脚。gnd为接地线,dq为数据输入输出接口
28、,通过一个较弱的上拉电阻与cpu相连。vdd为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.05.5v。本系统中使用外部电源供电。其主要特点为: 用户可以自行设定报警上下限温度值; 不需要外部组件,能测量-55+125c范围内的温度; 在-10+85c范围内的测温准确度为0.5c; 通过编程可以实现912位的数字读数方式,可在至多750ms内将温度转换成12位数字,测温分辨率可达到0.0625c; 独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。 图6 ds18b20内部结构图图5 ds18b20ds18b20的内部结构主要由四部分组成:64位光刻
29、rom,温度传感器,非挥发的温度报警触发器th和tl,配置寄存器。光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。ds18b20的测温原理:图7 ds18b20的测温原理图ds18b20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送
30、给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减
31、法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度 值,这就是ds18b20的测温原理。 表3_1 ds18b20温度值格式表3 )ds18b20的技术参数ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达,其中s为符号位。这是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得
32、的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。ds18b20的存储器:ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的e2ram,后者存放高温度和低温度触发器th、tl和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是th、tl的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计
33、算。第九个字节是冗余检验字节。该字节各位的意义如下: tm r1 r0 1 1 1 1 1低五位一直都是1 ,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。在ds18b20出厂时该位被设置为0,用户不要去改动。r1和r0用来设置分辨率,如下表所示:(ds18b20出厂时被设置为12位)分辨率设置表: r1r0分辨率温度最大转换时间009位93.75ms 0110位187.5ms 1011位375ms 1112位750ms 表2-2-2 分辨率表根据ds18b20的通讯协议,主机控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对ds18b20进行复位,复位成
34、功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后释放,ds18b20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主cpu收到此信号表示复位成功。4)rom操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件rom操作命令之一。所有rom操作命令均为8位长。这些命令列表如下:read rom(读rom)33h此命令允许总线主机读ds18b20的8位产品系列编码,唯一的48位序列号,以及8位的crc。此命令只能在总线上仅有一个ds18b20的情况下可以使用。如果总线上存在多于一个的从属器件,
35、那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。match rom( 符合rom)55h此命令后继以64位的rom数据序列,允许总线主机对多点总线上特定的ds18b20寻址。只有与64位rom序列严格相符的ds18b20才能对后继的存贮器操作命令作出响应。所有与64位rom序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。skip rom( 跳过rom )cch在单点总线系统中,此命令通过允许总线主机不提供64位rom编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在skip rom命令之后发出读命令,那么由于多个
36、从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。search rom( 搜索rom)f0h当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位rom编码。搜索rom命令允许总线控制器用排除法识别总线上的所有从机的64位编码。alarm search(告警搜索)ech此命令的流程与搜索rom命令相同。但是,仅在最近一次温度测量出现告警的情况下,ds18b20才对此命令作出响应。告警的条件定义为温度高于th 或低于tl。只要ds18b20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变th或tl的设置,使得测量值再一次位于允
37、许的范围之内。贮存在eeprom内的触发器值用于告警。 存储器操作命令write scratchpad(写暂存存储器)4eh这个命令向ds18b20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。read scratchpad(读暂存存储器)beh这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,crc)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。copy scratchpad(复制暂存存储器)48h这条命令把暂存器的内容拷贝到ds18b20的e2存储器
38、里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而ds18b20又正在忙于把暂存器拷贝到e2存储器,ds18b20就会输出一个“0”,如果拷贝结束的话,ds18b20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。convert t(温度变换)44h这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后ds18b20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而ds18b20又忙于做时间转换的话,ds18b20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电
39、源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。recall e2(重新调整e2)b8h这条命令把贮存在e2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对ds18b20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪。read power supply(读电源)b4h对于在此命令发送至ds18b20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源供电,“1”=外部电源供电。5)ds18b20时序图图8 ds
40、18b20时序图4. 选择继电器继电器在本实验中主要用于控制直流电机,当ctrl端输入1时,直流电机工作,输入0时,直流电机停止工作。其ctrl连接到8255a的pc4口。r832kr825.1kq518r8172365128out1close1out2close2com1com2k1vccvccjp30d4图9 继电器工作原理图5.选择功率放大器功放在本实验中主要用于控制ds18b20,当in1端输入1时,启动加热,输入0时,暂时停止加热。其out1连接到ds18b20的tctrl。6. 选择led数码管1)在本设计中的作用led发光二级管(light-emitting diode),在本设
41、计中采用7段数字发光二级管,做为终端显示,显示温度。2) led功能分析七段码显示器工作原理:led 数码管显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,每个发光二极管称为一字段。因而它的控制原理和发光二极管的控制原理是相同的。根据各管的接线形式,可分成共阴极型和共阳极型。给led 数码管的七个发光二极管加不同的电平,二极管显示不同亮暗的组合就可以形成不同的字形,这种组合称之为字形码。有了字形码表,我们就可以进行编程。如果还用pa口来控制一个led 数码管的八个字段,那么当要显示0f 的一个字型时,我们给pa口输出对应的字形码就可以了。如要在共阴极的数码管显示6,则pb口输出0x7
42、d 就可以了;要显示9 则pa口输出0x6f。 与发光二极管的工作原理相同,共阳极时,所有正端接电源正极,当负端有低电平时,该段有电流流过,发光管亮,当负端为高电平时,该段无电流流过,发光管不亮。要显示什么数字,就使对应的段为低电平。共阴极与共阳极的电平变化状态相反。当每个段的驱动电流为2ma20ma,电流越大,发光越亮。 图10 led结构图 如下图为led数码管字形码表(1为高电平,0 为低电平)。显示字型dpgfedcba共阴极字形码共阳极字形码0001111110x3f0xc01000001100x060xf92010110110x5b0xa43010011110x4f0xb04011
43、001100x660x995011011010x6d0x926011111010x7d0x827000001110x070xf88011111110x7f0x809011011110x6f0x90a011101110x770x88b011111000x7c0x83c001110010x390xc6d010111100x5e0xa1e011110010x790x86f011100010x710x8e表5-1 led数码管字形码表注:本实验中用的是共阳极。7.选择直流电机本实验直流电机主要模拟豆浆机打浆过程:直流电机转15秒表示打浆15秒,直流电机停15秒表示打浆停15秒。8.选择二进制逻辑按钮1
44、). 二进制逻辑按钮在本设计中的作用:本实验中二进制开关主要模拟水位检测:水位合适和水位溢出,水位合适或溢出用1表示,水位不合适或不溢出用0表示。2) . 二进制逻辑按钮的功能说明: 本设计通过二进制逻辑按钮输入开关的编码,来实现水位检测。3) . 二进制逻辑按钮的技术参数 二进制逻辑按钮的工作电压一般为0-5v,0v表示低电平,用0表示,5v表示高电平,用1表示。二进制逻辑按钮按下为0信号,松开为1信号。9.硬件总逻辑图及其说明连线说明:b4区:cs(8255)a3区:cs1b4区:a0,a1es-pci:a0,a1b4区:pc5e1:in1b4区:jp56(pa口)jp80(开关)b4区:
45、pc4e3区:ctrlb4区:pc0g1区:toute5区:jp78(8279b口)g5区:jp42(b口)e5区:jp77(8279c口)g5区:jp41(c口)e5区:clk(8279)b2区:2me5区:cs(8279)a3区:cs5e5区:a0(8279)es-pci:a0e3区:ctrlb4区:pc4e3区:com1c1区:vcce2区:out1g1区:tctrl三、控制程序设计1. 控制程序设计思路说明本程序采用模块化的程序设计思想,将完成整个设计所需要的全部功能按要求划分为若干子模块。具体到本设计而言,控制程序主要有:主程序块,设定温度初值子模块,初始化18b20子模块,读温度子
46、模块,显示读出的温度值子模块,初始化8279子模块,初始化8255子模块,显示输入的温度设定值子程序,启动加热子程序及其他一些初始化程序和延时子程序。总的程序设计思路是首先通过温度传感器ds18b20测量出环境温度,利用8255来接收并通过芯片8279的控制使其显示到led上;利用软件实现将温度与35摄氏度进行比较,若小于35摄氏度,继续加热,若大于35摄氏度,进入打浆过程。以下是对部分控制程序的说明:由于ds18b20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成。因此,对读写的操作时序要求严格。为了保证ds18b20有严格的读写时序,需要做较精确的延时。在操作中用到的
47、延时有15us,90us,270us,540us等,可以在程序设计时用延时子程序来读写延时操作。值得注意的是,首先要对8255a进行初始化,否则可能和笔者遇到的情况一样但ds18b20的温度就已经开始传送到数据端口等待输出了,这务必会造成极大的麻烦。从ds18b20读出数据时也采用每位传输的方法经过pc0口传输到8255a中,每次传输一位后暂存在al寄存器中,再把al寄存器中数据向右循环移位一次,数据被移动到标志位中,此时在用带标志位的循环移位指令把数据移动到另一个寄存器bl里,这样就完成了一位数据的读出。在移位的时候也需要注意读写时序的问题,所以采用专门的延时程序控制。循环移位8次即表示传输
48、了一个字节的数据,最后把bl中的数据再传送到al寄存器中,完成数据的读出操作。对8279进行操作时要注意与实际情况相结合修改控制字选择不同的显示方式,同时应注意左入口和右入口的区别。程序中显示温度值 需要数码管不断显示,同时还需要发热电阻可以正常工作,所以加热部分的延时程序即显示子程序中的延时。这样会在操作中保证在加热的同时温度值能动态的显示出来 。2. 控制程序流程图(1) 主程序流程图(2) ds18b20初始化子程序流程图开始主机发出延时501us低脉冲等待15次ds18b20回复回复?15次等待结束yes18b20存在,置复位18b20不存在,结束启动ds18b20开始复位ds18b20cf=0?ny控制字写入ds18b20发读温度指令结束读温度字操作流程图开始开始时让pc0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年公务员考试时事政治考试题库附答案
- 2025文具用品采购合同范本格式
- 2025办公空间租赁合同书范本
- 辅警笔试题库及答案解析(2025版)重庆
- 2025年无人机配送「最后一公里」产业政策解读报告
- 2025年低空经济行业分析报告:核动力飞行器安全监管框架下的市场趋势预测
- 企业审计检查表操作手册审计指导版
- 2026年中级银行从业资格之中级公司信贷考试题库300道带答案
- 2026年理财规划师之三级理财规划师考试题库500道【考试直接用】
- 2026年二级造价师考试题库500道及完整答案(夺冠系列)
- 青少年科普活动工作计划
- 2024年新人教版四年级数学上册《教材练习7练习七(附答案)》教学课件
- DL∕T 5366-2014 发电厂汽水管道应力计算技术规程
- JT-T-1221-2018跨座式单轨轨道桥梁维护与更新技术规范
- 药用植物与生药学考试题与答案
- 骨质疏松症的诊疗新进展
- 1996年劳动合同模板下载 全新版
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 世界自然遗产地的保护与管理
- 预防校园欺凌行为
- JJG 976-2024透射式烟度计
评论
0/150
提交评论