




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥学院计算机科学与技术系微机原理与接口技术课程设计页:1调整字体大小20082009学年第一学期页:1课程设计科目电烤箱温度控制系统学生姓名 张 群学号 0604031026班级 网络工程(1)班指导教师 张 向 东页:1不是采用表格的形式 2009年2月1、 题义分析与解决方案1、 题义需求分析 在STAR ES598PCI单板开发机上实现对电烤箱温度和时间的控制功能。设计要求:(1)通过键盘设定温度和加热时间。(2)使用DS18B20采集温度,采用七段数码管显示当前温度和剩余时间,并和设置的温度进行比较。(3)当温度低于设定值时,通过DAC0832输出电压供给发热电阻RT1,使其温度升高。(4)使温度恒定在设定温度附近,时间到了停止加热,并提示操作完毕。2、 解决问题的方法与思路(1) 硬件部分页:2这部分可以先介绍都采用了那些硬件,各硬件如何相连选择8279芯片和七段LED显示器与键盘相连,8279的扫描输出信号经译码器译码,三根输出线Y0Y7作为矩阵键页:2表述有错盘的行扫描信号,返回信号RL0RL7与矩阵键盘的8个列输出信号相连接,扫描输出信号经另一译码器产生的8个输出信号作为8个显示器的选通信号,即位选信号,轮流刷新8个显示器。8255A PC0口接DS18B20,接收采集的温度值,PC4口接警报器,用于时间结束是的报警。DACO832输出电压,对电阻RT1进行加热,使温度维持在一定范围。(2) 软件部分页:2软件部分可以描述为了实现功能都设计了哪些模块,各模块的实现方法。 设立一个段码表,用来数字09的段码,根据这些段码可以判定LED显示器选用的共阳极还是共阴极方式;同时还要设置一个显示缓冲区以动态刷新的方式。 设置好8279的工作方式,运行显示程序。前四位显示时间,后四位显示温度值。 对DS18B20进行初始化编程,发出读取温度和转换温度命令。8255A PC0口接收数据,并与输入的界限值进行比较,如果小于界限,则启动DAC0832,输出电压给电阻加热;如果达到界限,则不启动加热。程序运行过程中时间递减,当时间减为零时,启动报警系统,产生声音报警,程序结束。2、 硬件设计1、 可编程并行接口芯片8255A页:2硬件设计的介绍按照课程设计的格式要求分为3部分,作用,功能分析,技术参数,其他硬件也要这样介绍。各芯片的作用要介绍详细。(1)8255A的作用 利用8255A的PC0与DS18B20相连,向其发出温度检测命令及接受温度数据,PC4和蜂鸣器相连,用于声音报警。(2)8255A的功能分析及技术参数 8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、口和口。三个端口都可以作为输入端口或输出端口。口有三种工作方式:即方式、方式和方式,而口只能工作在方式或方式下,而口通常作为联络信号使用。8255A的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。 图2-1 8255A的内部框图标识符最小最大测试条件输入低电平(VIL)-0.5V0.8V输入高电平(VIH)2.0V5V输出低电平(VOL)DB0.45VIOL=2.5mA输出低电平(VOL)PER0.45VIOL=1.7mA输出高电平(VOH)DB24VIOH=-400A输出高电平(VOH)PER24VIOH=-200A驱动电流-1.0mA-4.0mAREXT=750,VEXT=1.5V供应电流120 mAIIL(INPUT LOAD CURRENT)10AVIN=0V5VIOFL(OUTPUT FLOATL EAKAGE)10AVOUT=0.455V 表2-1 8255A的技术参数表参数说明:输入最低电压:min-0.5V,max0.8 V输入最高电压:2.0 V输出最低电压:0.45 V输出最高电压:2.4 V(3)8255A的方式控制字D7 D6 D5 D4 D3 D2 D1 D0100010011:工作方式 A口方式0输出 B口方式0输出 C口高4位输入 C口低4位输入 图2-2 8255A的方式控制字表 方式0的工作特点:是这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。 通道的功能为:两个8位通道:通道A和B。两个四位通道:通道C高4位和低四位,任何一个通道可以作输入/输出,输入是不锁存的,输出是锁存的,在方式0时各个通道的输入/输出可有16种不同的组合。D7 D6 D5 D4 D3 D2 D1 D00XXX写入位编码写入内容 写入位 编码 0写入0 D0-D7 000-111 1写入1 图2-3 8255A的置位/控制字表2、8279芯片 (1)8279芯片在本试验中的作用 使用8279来实现对键盘输入信号的接收和输出控制LED显示器的数据及显示方式。(2)8279芯片的功能分析页:5技术参数呢? 8279的功能是对短矩阵键盘扫描以及控制LED显示器的数据及显示方式。8279扫描输出信号经译码器译码后三根输出线Y0Y2作为矩阵键盘的扫描信号,返回信号RL0-RL7与键盘矩阵的8个列输出信号相连接。扫描译码器经另一译码器译码产生的8个输出信号作为8个显示器的选道信号,轮流刷新8个显示器。8279A是一个40脚双列直插式芯片,由单一5V供电. 控制字寄存器数据缓冲存储器FIFO/传感器RAM状态寄存器地址寄存器16字节显示RAM控制与定时传感器RAM键盘控制显示输出消隐输出寄存器扫描计数键盘输入 图2-4 8279内部结构 8279具有2个端口,8个控制字和一个状态字A0=0用来接收来自键盘的输入字节数据或输出到显示器的输出字节数据。键盘扫描方式中,发出读FIFO命令后,从数据口读入数据为:页:6注意段落的缩进,其他雷同 D7 D6 D5D4D3 D2D1D0CNTL SHIFT 扫描值 回送值 KKK 输入方式000编码扫描键盘,双键互锁扫描键盘001 译码扫描键盘,双键互锁010 编码扫描键盘,N键互锁扫描传感器矩阵011 译码扫描键盘,N键互锁100 编码传感器矩阵选通101 译码扫描传感器矩阵110 选通输入,编码显示扫描111 选通输入,译码显示扫描 表2-2 8279键盘输入方式页:6表标要放在表的上方DD 输出方式 00 8字符显示,左端输入显示器输出 01 16字符显示,左端输入 10 8字符显示,右端输入 11 16字符显示,右端 表2-3 显示器输入方式8279共使用8个控制字,高3位D7D6D5的特征位。这些控制字是由CPU送到数据总线以后,CS=0,A0=1,WR上升沿送入控制寄存器。名称格式 备注设置键盘和显示方式000DDKKKDD见上图,KKK见上图时钟频率001PPPPPP为预定值231,是外接时钟的分频系数读FIFO传感器RAM010AIA2A1A0A2A1A0是CPU读出传感器的存储单元地址读显示RAM011AIA3A2A1A0A3A2A1A0是CPU送出传感器RAM的存储单元地址禁止写显示器/熄火101IW1IW0BL1BL0IW1BL1为A口控制位,IW0BL0为B口控制位。IW=1时,禁止写;BL1时显示器消隐清除110CD2CD1CD0CFCACA=1,清除FIFO/显示RAM,CF=1,将FIFO置空,并中断输出复位,传感器RAM置成0结束中断111EE=1时,以N键巡回特殊出错方式工作。传感器矩阵方式中,该命令时IRQ变为的电平 表2-3 8279的控制字 8279A的的状态字,适用于键盘输入和选通方式检查FIFO,如下: D7 D6 D5 D4 D3 D2 D1 D0DU S/E O U F N N ND1D0:FIFO RAM中字符的个数。取值为000111。D3:FIFO RAM 满(D3=1);D4:FIFO RAM空。(D4=1)D5:FIFO RAM溢出(D5=1);D6:传感器信号结束特征位D7:显示无效特征位。DU=1无效。3、 DS18B20温度传感器(1)DS18B20温度传感器的作用 利用温度传感器检测温度,并转换为数字量和设定的界限值比较。(2) DS18B20的功能特点DS18B20可编程温度传感器有三个管脚。GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与CPU相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.05.5V。本系统中使用外部电源供电。其主要特点为: 用户可以自行设定报警上下限温度值; 不需要外部组件,能测量-55+125C范围内的温度; 在-10+85C范围内的测温准确度为0.5C; 通过编程可以实现912位的数字读数方式,可在至多750MS内将温度转换成12位数字,测温分辨率可达到0.0625C; 独特的单总线接口方式,与微处理器连接时仅需要一条线既可实现和微处理器的双向通讯。 图2-6 DS18B20内部结构图图2-5 DS18B20DS18B20的内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(3) DS18B20的测温原理和技术参数 DS18B20的测温原理: 图2-7 DS18B20的测温原理图页:9此图不符合规范,调整图标DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 表2-4 DS18B20温度值格式表页:10表呢?DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。DS18B20的存储器:DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。4、LED显示器(1)芯片在本设计中的作用 LED发光二极管在本设计中采用7段数字发光二极管,作为终端显示。显示时间的分秒。(2)LED的功能分析 物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。有段选码和位选码确定数字18的输出并在延时程序中保持复位。它是一种当外加电压超过额定电压时发生击穿,并因此而产生可见光的器件。这种数码管是有7段或8段笔画显示器组成一个字符而形成的。 图2-8 LED内部结构图2-9 LED显示页:11图和表都要居中表2-5 LED显示管段选码编码表数字dpgfedcba二进制编码011000000C0h111111001F9h210100100A4h310110000B0h41001100199h51001001092h61000001082h711111000F8h81000000080h91001000090h(3)LED的技术参数分析LED发光二极管的压降一般为1.5-2.0V,其工作电流一般取10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。 由于8255A的最大驱动电流为4.0mA,而LED的工作电流一般为10-20mA,所以需要加一个驱动器74LS244。5、矩阵键盘(1)矩阵键盘在本设计中的作用 矩阵键盘在工作时,是按照行线和列线交叉点的电平值来识别按键的,由人手按动键盘。当键释放后,该键就有效。矩阵键盘将0F这16哥键按行和列排列成矩阵形式。对于mn哥键的键盘,只需要m+n位I/O端口,我们的实验采用的是44键盘。(2)矩阵键盘的功能分析在矩阵键盘中,通过行列交叉点上的电平值来识别按键,而行列线通过键盘数据格式确定,键盘数据格式如下: 表2-6 键盘数据格式 D7 D6 D5 D4 D3 D2 D1 D0CNTLSSHIFTSL2SL1SL0R2R1R0控制移位行编码列编码其中,控制和移位由两个独立的附加开关决定;SL2 SL1 SL0为按下键的行编码,来自扫描计数器的低三位,R2 R1 R0是根据返回信号确定的列编码。通常使用的键盘是矩阵结构的。对于44=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。 图2-10 44键盘矩阵图行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。6、数/模转换器DAC0832(1)DAC0832在本设计中的作用 DAC0832是National Semiconductor生产的一款D/A(数字/模拟)转换器,其采用CMOS工艺和R2RT形电阻解码网络, 转换结果为一对差动电流 I01和 I02输出。在本设计中主要用来将开关打入的数字信号转换为相应的模拟信号。(2)DAC0832的功能分析 DAC0832是8位D/A转换器,转换周期为1s。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成。当ILE为高电平,CS为低电平,WR1为负脉冲时,在LE1产生正脉冲;LE1为高电平时,输入寄存器的状态随数据输入线状态变化,LE1的负跳变将输入数据线上的信息存入输入寄存器。当Xfer为低电平,WR2输入负脉冲时,则在LE2产生正脉冲;LE2为高电平时,DAC寄存器的输入与输出寄存器的状态一致,LE2的负跳变,输入寄存器内容存入DAC寄存器。DAC0832的输出是电流型的。在微机系统中,通常需要电压信号,电流信号和电压信号之间的转换可由运算放大器实现。(3)DAC0832的技术参数 DAC0832芯片采用CMOS工艺,四象限乘法型DAC,与微机兼容,数据输入能与双缓冲、单缓冲或直接通过三种方式工作。是一个8位D/A转换器,输入电平与TTL、CMOS兼容,单电源+5+15V工作,基准电压的范围为 10V,电流建立时间为1s,低功耗200mw,20引脚,双列直接式封装。 图2-12 内部原理图7、蜂鸣器(1) 蜂鸣器的作用在本实验中,蜂鸣器用作声音报警。(2) 蜂鸣器的技术参数 图2-11 蜂鸣器内部结构图它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。本实验电压范围为05V。874LS138芯片(1)74LS138在本设计中的作用 将SL0SL2锁确定的信号经译码器译为矩阵键盘的行选择线。(2)74LS138 的功能分析 74LS138是3/8译码器,即对3哥输入信号进行译码,得到8个输出状态。其引脚功能图如下所示: 表2-7:真值表 图2-13 引脚图 G1 G2A G2B为数据输出端,G2A G2B为低电平有效,G1高电平有效,A、B、C为译码器输入出端,Y0Y7为译码输出端,低电平有效。(3)74LS138的技术参数极限值 电源电压-7V 输入电压-7V 工作环境温度 -070 贮存温度-65150 9、 硬件总逻辑图及说明3、 控制程序设计1、 控制程序设计思路说明 本程序采用模块化设计,主程序由若干子程序组成。首先8279控制键盘输入两个值,时间和温度,在七段LED显示器前四位显示温度后四位显示时间。DS18B20采集温度传输到8255,并与界限值比较,小于界限就通过DAC0832输出电压加热,大于界限就初始化DAC0832。温度和时间一秒刷新显示一次,通过调用延时,使主程序循环一次是一秒。输入的时间以分钟计时,60秒后时间减一。由于DS18B20采用串行数据传送和单总线数据传输方式,其数据输入输出都由同一条线完成,因此,对读写的操作时序要求严格,需要做较精确的延时。对8279进行操作时要注意与实际情况相结合修改控制字选择不同的显示方式,同时应注意左入口和右入口的区别。2、 控制程序流程图页:16一个流程不能画在两页上主程序流程图:开 始初始化8255输入子程序启动DS18B20子程序延时 CX=60大于界限启动DAC0832CX=CX-1TIME0结 束显示子程序初始化DAC0832CX=0TIME-报警子程序延时 NYN N Y N N Y初始化8279:开始写入端口地址、命令字及入口方式调用函数清除LED显示设置显示方式RET结束扫描按键子函数流程图:开始写入8279控制字有键按下?NOYESNO KEY读FIFO/ROM,键号转化为键值并输出RET结束显示温度设定值:开始保护寄存器SI,BX将键入的温度值存入中间量buffer2调用显示子函数,显示值寄存器出栈RET结束读出DS18B20的温度存放在AX:开始首先复位DS18B20跳过ROM匹配发出度温度指令读出温度,存放至AX;还原寄存器结 束 读温度字操作流程图:开始开始时让PC0口维持低电平写入新的控制字,准备接收温度值调用延时子程序,温度经由PC0口写入AL右移AL最低位至标志位CF标志位转移至BL,备份AL中的值,PC0口置低电平准备读下一位RET结束3、 控制程序.MODELTINYPCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & ;32BITRAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;厂商ID号Device_IDEQU8376;设备ID号.STACK300 .DATAIO_Bit8_BaseAddress DW?msg0DBBIOS不支持访问PCI $msg1DB找不到Star PCI9052板卡 $msg2DB读8位I/O空间基地址时出错$msg3 DB 输入温度和加热时间$ Con_8255DW00F3HPC_8255DW00F2HPB_8255 DW 00F1HPA_8255DW00F0HDAC0832 DW 00C0HCMD_8279 DW 00B0HTABDB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h, 7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71hTEMP DB ?TIME DB ?LIMIT_1 DB ?buffer2 DB ?.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AXNOPCALLInitPCICALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址CALLInit8255 CALL INITDAC0832 LEADX,msg3;输出相关提示信息 MOVAH,09H INT21HMAIN: MOVDX,CMD_8279 MOVAL,34H ;可编程时钟设置,设置分频系数(20分频) OUTDX,AL MOVAL,00H ;8*8字符显示,左边输入,双键锁定 OUTDX,AL CALLCLEAR ; 清显示 MOVAL,90H ; 左入口后第一位开始显示 OUTDX,AL LEADI,buffer2;读BUFFER2KeyA:CALL SCAN_KEY ;键盘扫描 JNCKeyA ;cf=0 CALLKEY_NUM ;转化键值 STOSBKeyB:CALLSCAN_KEY;键盘扫描 JNCKeyB CALLKEY_NUM ; 转化键值 STOSB CALLSHOW ; 显示在LED上 MOV LIMIT_1,AL; CALL INIT8279_1 ;清除并显示 MOVAL,94H;从第四位开始显示 OUTDX,AL; LEADI,buffer2;KeyC:CALLSCAN_KEY; JNCKeyC CALLKEY_NUM;转化键值 STOSBKeyD:CALLSCAN_KEY;键盘扫描 JNCKeyD; CALLKEY_NUM;转化键值STOSBCALLSHOW; 显示在LED上MOV temp,AL CALL INIT8279_1 MAIN_1: MOV CX,60MAIN_2:CALL START_Temperature;向DS18B20发送读温度指令 call delay CALLRD_Temperature ;读出温度值,并转换为BCD码 CALL DISPLAY CALL DLTIME CMPAX,LIMIT_1 JBMAIN_3 CALL INITDAC0832MAIN_3: LOOP MAIN_2 DECT IME CMP TIME,00H JZ MAIN_4 JMP MAIN_1MAIN_4: CALLHOT_UP JMPMAIN_3MAIN_5: CALL ALARM;写 0或维持低电平W_LPROCNEARPUSHAXMOVDX,Con_8255MOVAL,80H ;PC口输出,置低电平OUTDX,ALMOVAL,0BH ;PC5口置1,防止误报警 OUTDX,ALPOPAXRETW_LENDP;写 1W_HPROCNEARPUSHAXMOVDX,Con_8255MOVAL,01H ;PC0口置1,向18B20写1 OUTDX,ALPOPAXRETW_HENDP;DS18B20复位初始化子程序INIT_18B20PROCNEAR PUSH CXCALLW_L ;置低电平CALLDelay501us ;主机发出501us复位低脉冲MOVDX,Con_8255MOVAX,89H ;PC输入状态 , 准备接收存在脉冲 OUTDX,ALDECDXMOVCX,15 ;检测十五次INIT_18B20_1:INAL,DXTESTAL,01H ;如果18B20回复存在脉冲,AL最低位写1JZINIT_18B20_2LOOPINIT_18B20_1STC;置位标志位1,表示DS18B20不存在RETINIT_18B20_2:CALLDelay501usCLC;复位标志位0,表示DS18B20存在 POP CXRETINIT_18B20ENDPDISPLAY PROC NEAR MOVDX, CMD_8279MOVAL,34H;可编程时钟设置,设置分频系数(20分频)OUTDX,ALMOVAL,00H;8*8字符显示,左边输入OUTDX,ALCALLCLEARMOVAL,90H; 第一位开始显示OUTDX,AL; mov AL,temp;将TEMP装入al中 LEABX,TAB;XLATCALLWRITE_DATA;将其值显示 mov al,94h;第四位开始显示 out dx,al mov al,time;time入al LEABX,TABXLATCALLWRITE_DATA;将其值显示 retDISPLAY ENDPDelay501usPROCNEARPUSHAXPUSHCXPUSHDXMOVCX,167MOVDX,PA_8255Delay501us_1:INAL,DXLOOPDelay501us_1POPDXPOPCXPOPAXRETDelay501usENDPDelay50usPROCNEARPUSHAXPUSHCXPUSHDXMOVCX,12MOVDX,PA_8255Delay50us_1:INAL,DXLOOPDelay50us_1POPDXPOPCXPOPAXRETDelay50usENDPDelay8usPROCNEARPUSHAXPUSHCXPUSHDXMOVCX,2MOVDX,PA_8255Delay8us_1:INAL,DXLOOPDelay8us_1POPDXPOPCXPOPAXRETDelay8usENDP;写操作WRITE_18B20PROCNEAR PUSH CXMOVCX,8;一共8位数据WRI: CALLW_L;0-PC0,维持低电平CALLDelay8usRORAL,1 ;最低位赋给CFJNBWRI1 ;CF等于0,继续低电平,执行写0CALL W_H ;CF等于1,调用写一函数WRI2: CALLDelay50us CALLW_H ;50微秒后,拉高电平,标识写一位结束LOOPWRI ;写下一位 POP CXRETWRI1: PUSHCXPOPCXJMPWRI2WRITE_18B20ENDP;读操作READ_18B20PROCNEAR PUSH CXMOV CX,8;数据一共有8位Read: CALLDelay50usMOVDX,Con_8255MOVAL,80HOUTDX,AL;0-PC0MOVAL,89HOUTDX,AL;PC输入状态,准备接收18B20发送的信号CALLDelay8usMOVDX,PC_8255INAL,DX ;将PC口接收的数据写到AL RORAL,1 ;AL最低位,即18B20写到PC0口的数据移到CFRCRBL,1 ;将CF移到BL最高位,为了备份ALMOVDX,Con_8255MOVAL,80H ;PC口置低电平,OUTDX,AL MOVAL,01H ;再拉高,标识读一位结束(串行异步通信,位同步)OUTDX,ALMOVAL,0BH OUTDX,ALLOOPReadMOVAL,BL ;读取8位后,温度存AL POP CXRETREAD_18B20ENDP;*; 8279;*INIT8279PROC NEARPUSHAX MOV DX,CMD_8279;CMD_8279为写命令地址、读状地址 MOV AL,34H ;可编程时钟设置,设置分频系数(20分频) OUT DX,AL MOV AL,0;8*8字符显示,左边输入 OUT DX,ALCALL INIT8279_1;清显示 POPAX RETINIT8279ENDPINIT8279_1 PROC NEAR CALL CLEAR ;清显示 MOV AL,90H ;从第一个数码管开始移位显示 OUT DX,AL RETINIT8279_1 ENDPCLEAR PROC NEAR MOV DX,CMD_8279 MOV AL,0DEH ; 清除命令 OUT DX,ALWAIT1: IN AL,DX TEST AL,80H JNZ WAIT1; 显示RAM清除完毕吗? RETCLEAR ENDPSCAN_KEY PROC NEAR MOV DX,CMD_8279 IN AL,DX;读状态READ_FIFO:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幸福新疆娃课件
- 小龙虾水彩课件教学
- 输液泵微量泵使用课件
- 小鸭子学走路的课件
- 民间个人医疗借款合同模板(含保险配套与还款安排)
- 个人鱼塘养殖承包与养殖环境监测合同
- 模块化橱柜设计研发生产销售合同
- 高端制造企业技术秘密保护及竞业限制合同
- 供热管网改造及维护保养服务合同
- 4.2 遵守规则 课件 2025-2026学年 统编版道德与法治八年级上册
- 十八项核心医疗制度试题(附答案)
- 网络安全知识竞赛试题及答案
- 煤矿作业规程编制课件
- DB11∕T 1135-2024 供热系统有限空间作业安全技术规程
- 健康养老专业毕业论文
- 2025四川乐山市市中区国有企业招聘员工47人笔试参考题库附答案解析
- 新版部编人教版三年级上册语文全册1-8单元教材分析
- 海运订舱基础知识培训课件
- 公安机关人民警察执法资格(高级)考前点题卷一
- 人力资源管理SOP标准化流程手册
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
评论
0/150
提交评论