单片机课程设设计单总线和IC总线结合实现数

合集下载

《单片机原理及应用课程设计》报告单只数码管循环显示设计

《单片机原理及应用课程设计》报告单只数码管循环显示设计

《单片机原理及应用课程设计》报告——单只数码管循环显示设计专业:班级:姓名:学号:2012年5月1.课程设计目的1.1巩固和加深对单片机原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。

2.课程设计要求2.1单只数码管循环显示0~93.硬件设计3.1 设计思想1、数码管实际上是由7个发光二极管组成一个8字形,另外一个发光二极管做成圆点型,这样就构成了一个数码管。

所有的8个二级管的正极或者负极都连到一个公共端点上,对于公共端连在正极的数码管,称为共阳极数码管,反之称为共阴极数码管。

根据数码管的内部结构原理,可以很清楚的知道数码管显示数字的原理。

2、由于单片机的IO口的驱动能力有限,而数码管点亮时需要较大的电流,所以在用单片机构成数码管显示系统时,需要增加驱动电路,最简单的驱动电路就是利用三极管的电流放大能力来输出较大的电流,3、让数码管显示数字的步骤为:1)使数码管的公共端连到电源(共阳极)或者地(共阴极)上。

2)向数码管的各个段输出不同的电平。

3.2主要元器件介绍1. AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

单片机课程设计报告——温度报警器

单片机课程设计报告——温度报警器
4.2系统程序设计流程图
4.2.1主程序软件设计
通过上述原理,已对密码锁整体运行环境有了充分认识,绘制主程序和子程序流程图,利用Keil软件,对单片机进行编程,如图4-1为主程序功能流程图:
4-1主程序功能流程图
4.2.2温度采集的软件设计
如图4-2为温度采集的软件设计,主要功能是完成DS18B20的初始化工作,并进行读温度,将温度转化成为压缩BCD码 并在显示器上显示传感器所测得的实际温度。读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据的改写。
1.2温度报警器的背景与研究意义
在日常生活中,温度对于我们并不陌生,它是一个时时刻刻存在的物理量在我们的日常生活中占据了十分重要的地位。温度的大小时刻与我们的生产、生命、安全息息相关。因此对温度的测量与控制对各个行业领域有着很及其重要的作用尤其是在金属冶炼、化学研究、建材生产、食品加工、机械制作、石油提炼等工业领域,占据不可忽视的作用。众所周知,当我们进行陶瓷烧烤,制作陶瓷工艺时,必须很精确的控制其烧烤温度,只要我们控制好其温度,这样才能创造出完美的、无瑕疵的艺术品,一旦温度控制不佳,将会一件次品;另外当我们进行酿酒时,同样也需要对温度进行合理适当的控制,只有这样,我们才能够生产出大家公认的好酒。如此可见,对于温度的检测与把控在我们日常生活以及工业生产占据着举足轻重的地位。
1.DS18B20不断采集周围环境温度;
2.单片机处理温度的数据显示在DS18B20;
3.用户设定温度报警的上限和下限;
系统整体设计框图如图2-1所示:
图2-1系统整体设计框图
2.2系统的基本方案
2.2.1系统方案选择
采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。

单片机原理与嵌入式设计【ch08】IIC总线接口技术 培训教学课件

单片机原理与嵌入式设计【ch08】IIC总线接口技术 培训教学课件
如果连接到IIC总线的器件具有IIC总线接口,那么用它们可以自动检测起始信号 和终止信号。但是,若连接在IIC总线上的器件是没有IIC总线接口的微控制器, 则在每个SCL时钟周期至少要采样 SDA 线两次,以判断有没有发生电平切换。
单总线接口技术原理
IIC总线通信时序
IIC总线的数据传输
在起始信号后,主机会向从机发送多个字节数据,该过程的数据传输格式如下。 ➢ 有效数据位。
引脚说明如下。脚,是一个漏极开路结构的引 脚,因此,SCL要求在该引脚与VCC 之间接入上拉电阻。
WP:硬件写保护控制引脚。当它为低电平时,正常读写操作;当它为高电 平时,对 EEPROM内部存储区域提供硬件写保护功能,即只能读不能写。
vcC:电源接正引脚。
IIC总线通过上拉电阻接电源正极。当总线空闲时,两条线均为高电平。连到总线上的 任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA和SCL都是线与关
单总线接口技术原理
IIC总线介绍
每个接到IC总线上的器件都有唯一的地址,这样可以保证在总线上同时存 在多个器件时器件间不会相互干扰。主机与其他器件的数据传送可以由主 机发送数据到其他器件,此时主机为发送器,总线上接收数据的器件为接 收器;也可以由总线上的其他某一器件发送数据到主机,这时主机为接收器, 总线上发送数据的器件为发送器。
单总线接口技术原理
IIC总线通信时序
IIC总线的数据传输
在起始信号后,主机会向从机发送多个字节数据,该过程的数据传输格式如下。 ➢ 响应。
若主机作为接收器,从机作为发送器,则主机必须通过在接收数据的最后一 个字节后不产生响应,向从机发送器通知数据结束。从机发送器必须释放数 据线;允许主机产生一个终止信号(P)或重复起始信号(Sr)。

单片机单总线技术

单片机单总线技术

简介美国Dallas公司近年推出的单总线技术及相应的集成芯片,用单片机可以组建成单总线技术的应用系统。

文中具体说明了系统的硬、软件组成特点,介绍了一些典型器件,并列举了在自动测控系统中的实际应用情况。

相对于传统的方案,单片机单总线技术具有突出的技术优势和更高的性能价格比。

关键词单片机单总线测控技术引言计算机用于测控系统时,测控对象与计算机之间的信息交换是通过总线进行的。

不管是通用的并行、串行总线,还是专用总线,其传送数据的信号线总是多根的。

最简单的RS-232串行总线也有两根信号线,且只能通向一路被测或被控对象,否则要用下位机扩展。

这样,当遇到多路多个测控对象时,系统中相互连接则非常复杂。

若只用一根信号线(1-wire),在其上可以挂上许多测控对象,且电源也经这根信号线馈给,这样组建一个系统就方便多了。

本文介绍使用这种一根信号线的技术,为了表述简明易懂,并区别于计算机的其他总线,将其称为单总线(1-wire bus)技术。

单总线及相应芯片是美国Dallas半导体公司近年推出的新技术。

在该公司支持下,信息产业部电子五所和桂林电子工业学院联合对单总线技术进行了开发应用。

我们正在对环境状态监测系统、实时气象监测系统(自动气象站)、军用仓库测控系统、农业塑料大棚测控系统、宾馆楼宇监管系统、停车收费系统、考勤管理系统等领域进行应用开发。

应用中主控计算机视要求,既可以采用PC机也可以采用单片机。

本文主要介绍在单片机控制下单总线技术的应用。

一、单总线技术单总线技术是只有一个总线命令者和一个或多个从者组成的计算机应用系统。

单总线系统由硬件配置、处理次序和单总线信号三部分组成。

系统按单总线协议规定的时序和信号波形进行初始化、识别器件和进行数据交换。

1. 硬件配置单总线系统只定义了一根信号线。

总线上的每个器件都能够在合适的时间驱动它,相当于把计算机的地址线、数据线、控制线合为一根信号线对外进行数据交换。

为了区分这些芯片,厂家在生产每个芯片时,都编制了惟一的序列号,通过寻址就能把芯片识别出来。

单片机中的总线接口设计与应用

单片机中的总线接口设计与应用

单片机中的总线接口设计与应用作为嵌入式系统中的重要组成部分,单片机在各种应用领域中发挥着重要的作用。

总线接口设计是单片机系统中不可忽视的一部分,他在单片机与其他外设之间起着桥梁的作用。

本文将探讨单片机中的总线接口设计与应用的相关内容。

一、总线接口概述总线接口是单片机与外设之间进行数据交换的通信线路。

通过总线接口,单片机可以与各种外设进行数据的收发、控制信号的传输等操作。

常见的总线接口设计包括I2C、SPI、UART等。

1. I2C(Inter-Integrated Circuit)总线I2C是一种常见的串行通信协议,它使用两根线路(SDA和SCL)进行数据和时钟信号的传输。

单片机通过I2C总线可以与多个设备进行通信,每个设备通过唯一的地址来识别。

I2C总线接口的设计与应用需要注意以下几个方面:(1)硬件电路设计:I2C总线的硬件电路包括I2C总线控制器、电平转换电路、上拉电阻等。

其中,电平转换电路用于将单片机的信号电平转换为I2C总线所需的电平。

(2)软件设计:在单片机中,需要编写相应的软件程序来实现I2C总线的读写操作。

软件程序需要对I2C总线进行初始化,并实现对不同设备的访问与数据交换。

2. SPI(Serial Peripheral Interface)总线SPI总线是一种全双工的串行通信协议,它使用四根线路(SCLK、MOSI、MISO和SS)进行数据的传输和设备的选择。

SPI总线常用于单片机与外部存储器、传感器等设备之间的通信。

SPI总线接口的设计与应用需要注意以下几个方面:(1)硬件电路设计:SPI总线的硬件电路包括SPI总线控制器、数据线、时钟线和设备选择线等。

其中,设备选择线(SS)用于选择与单片机通信的设备。

(2)软件设计:在单片机中,需要编写相应的软件程序来实现SPI总线的读写操作。

软件程序需要进行SPI总线的初始化,并实现与具体设备之间的数据交换。

3. UART(Universal Asynchronous Receiver/Transmitter)总线UART总线是一种常见的串行通信协议,它通过两根线路(RX和TX)进行异步的数据传输。

单片机课程设计

单片机课程设计

单片机课程设计一、目的和意义本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。

该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

二、选题要求在现有的开发装置上掌握相关硬件,正确地进行连线在计算机上编写汇编程序、调试、下载、配合外部电路进行系统功能测试,设计并实现参考选题中要求设计的系统。

要求按设计要求制订方案,直至正确地实现系统功能;写出课程设计报告;理解设计方案后再自己动手设计程序,并正确联线、构成硬件电路,通过独立调试实现设计方案。

三、任务及要求(一)课题要求1.数字电压表的设计技术要求:利用51单片机,ADC0809转换芯片,键盘显示系统,设计一个测量模拟电压的数字电压表,可以显示3位有效数字,通过汇编语言设计。

工作要求:画出设计原理图,编写出软件,并调试出各种功能2.温度检测系统的设计技术要求:利用51单片机,DS18B20芯片,键盘显示系统,设计温度检测系统,通过键盘控制,实现数字温度的采集,用汇编语言设计。

工作要求:画出设计原理图,编写出软件,并调试出各种功能。

(二)设计报告要求要求设计报告按以下条目顺序编写:1.封面2.内容提要3.正文概述所作题目的意义、本人所做的工作及系统的主要功能;硬件电路设计及描述;软件设计流程及描述;源程序代码(要有注释)。

4.课程设计体会5.参考文献四、进程安排1.介绍课程设计的教学内容,指导学生根据兴趣选题。

2.原理设计3.原理设计及软件设计4.课程设计报告要求及示例介绍,原理设计5.硬件调试,软件设计及调试6.验收答辩五、考核方法与成绩评定1、考核方法(1)理论设计方案,演示所设计的系统,总成绩50%;(2)设计报告,占总成绩20%;(3)回答教师所提出的问题,占总成绩20%;(4)考勤情况,占总成绩10%;2.有下列情况之一者,要酌情减分:(1)设计报告有抄袭行为或有意给别人抄袭。

(完整版)基于DS18B20数字温度传感器的仿真与设计应用

(完整版)基于DS18B20数字温度传感器的仿真与设计应用
(6)精度
精度是传感器的一个重要的性能指标,它是关系到整个测量系统测量精度的一个重要环节。传感器的精度越高,其价格越昂贵,因此,传感器的精度只要满足整个测量系统的精度要求就可以,不必选得过高。这样就可以在满足同一测量目的的诸多传感器中选择比较便宜和简单的传感器。
如果测量目的是定性分析的,选用重复精度高的传感器即可,不宜选用绝对量值精度高的;如果是为了定量分析,必须获得精确的测量值,就需选用精度等级能满足要求的传感器。对某些特殊使用场合,无法选到合适的传感器,则需自行设计制造传感器。自制传感器的性能应满足使用要求。
本课题的整个系统是由单片机、显示电路、键盘电路、声光报警电路等构成。
3.1温度传感器
3.1.1温度传感器选用细则
现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的问题。当传感器确定之后,与之相配套的测量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。
1.2温度传感器的发展趋势
进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
1.3传感器在温控系统中的应用
目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200℃~800℃之间,分辨率12位,最小分辨温度在0.001~0.01之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。

简单单总线CPU的实现_华中科技大学_计算机组成原理课设

简单单总线CPU的实现_华中科技大学_计算机组成原理课设
2012
计算机组成原理 课程设计报告
基于微程序控制器的
题 目: 简单计算机系统设计与实现
专 业:
计算机科学与技术
班 级:
CS0907
学 号:
U200915089
姓 名:
朱胜本
电 话:
18971072809
邮 件:
337075552@实 验 台:43来自台 同组:李罡完成日期:
2012-03-07 周三下午
2.1.总体设计............................................................................................................................. 10 2.2.运算器 ALU 部分 .................................................................................................................. 12 2.3.存储器 MEM 部分 ................................................................................................................. 12 2.3.地址计数器 PC 部分 ............................................................................................................. 13 2.4.指令寄存器及控存部分......................................................................................................... 13 2.5.时序逻辑电路部分 ............................................................................................................... 13 三 、软件设计 ..........................................................................................................................................................................14 3.1.机器指令设计 ...................................................................................................................... 14 3.2.微程序设计 ......................................................................................................................... 14

单片机原理与嵌入式设计【ch07】单总线接口技术 培训教学课件

单片机原理与嵌入式设计【ch07】单总线接口技术 培训教学课件

单总线实现唯一序列号
DS2401操作原理
单总线仅定义了一条信号线,所以让总线上每个设备 都在适当的时刻运行是非常重要的。为便于达到这一 目的,每个接入单总线的设备都采用开漏连接或三态 输出。DS2401为漏极开路输出,内部等效电路如图所 示。总线主控器可以采用与其一致的等效电路。如果 没有可利用的双向引脚,则可将独立的输入、输出引 脚连接起来使用。在主控制器端需加一个上拉电阻, 最佳的上拉电阻(RPU)取值范围为1.5~5千欧。
单总线实现唯一列号
DS2401操作原理
操作 DS2401应遵循以下顺序:初始化、 ROM命令、读取数据。在单总线上所有的传 输操作以初始化时序开始。初始化时序由主 机发送的复位脉冲和从机发送的在线应答脉 冲组成。在线应答脉冲能让主机知道 DS2401在总线上并已经做好准备。一旦主 机监测到应答脉冲,就可以发送ROM命令。 所有的ROM命令长度为8位,DS2401的 ROM命令如表所示。
第七章 单总线接口技术
电子设计系列教材
单片机原理与嵌入式设计
01
单总线接口技术原理
单总线接口技术原理
单总线介绍
单总线是一种异步半双工串行传输总线,它只需要一条信号线(OWIO) 来传输数据,典型的单总线传输架构如图所示。在单总线传输中,信号线 除作为传输数据的用途外,还可以同时作为所连接单总线接口芯片的电源。
03
单总线实现温度测量
单总线实现温度测量
DS18B20芯片简介
DS18B20芯片(简称DS18B20)是一款数字温度传感器,它通过单一接口发 送或接收信息,因此在单片机和DS18B20之间仅需一条连接线(加上地线)。 用于读/写和温度转换的电源可以从数据线本身获得,无须外部电源。每个 DS18B20都有一个独特的64 位序列号,因此多个DS18B20可以同时连在 一条单线上。其内部拥有用户可定义的非易失性温度报警单元,可通过命 令识别并标志限定温度,从而进行温度报警。

单片机课程设设计--------单总线和I2C总线结合实现数.

单片机课程设设计--------单总线和I2C总线结合实现数.

单片机课程设计题目 :单总线和 I2C 总线结合实现数字温度计实验班级:设计者:指导教师 :单总线和 I2C 总线结合实现数字温度计实验一、实验目的通过本实验 ,理解掌握单总线器件和 I2C 总线器件的应用 ,熟悉串行总线的操作技巧。

二、实验设备及器件IBM PC 机一台DP-51PROC 单片机综合仿真实验仪一台三、实验内容1. 编写程序 ,通过单片机的 P3.3 口控制一个 DS18B20 完成数字温度的采集 ,然后用程序处理采集到的数据结果。

2. 编写程序 ,通过 I2C 总线器件 ZLG7290 实现温度数据的输出显示。

3. 结合以上两部分程序 ,编程实现数字式温度计的程序设计。

四、实验要求熟练掌握单总线方式器件的应用,熟悉I2C总线协议,学习I2C器件的使用方法。

五、实验过程和步骤(一、新建工程文件1、点击工具栏 Project 选项,在下拉菜单中选择 New Project 命令 ,弹出项目文件保存对话框 ,输入项目名后 ,点击保存按钮。

2、在工程建立完毕以后,uVision 会弹出器件选择窗口,选择相应的器件型号。

如想修改 ,可点击工具栏 Project 选项,在下拉菜单中选择 Select Device forTarget …Target ?命令。

3、点击工具栏 File 选项,选中 New 命令,新建文件 ,输入源程序。

4、把文件保存到磁盘中,如用汇编语言编写程序用.asm为扩展名,如用C语言编写程序用 .c 为扩展名。

5、添加该文件到工程中 ,在 Projectwindos 窗口内 ,选中 Source Group1 然后点击鼠标右键 ,选择 Add files to Group “Source Group1 ”,选择刚才创建的源程序文件 ,单击 Add 按钮。

(二、程序文件的编译、链接1. 安装B4区JP12接口上的短路帽,将B4区的DQ 与A2区INT1(P3.3相连。

2. 安装 D5 区 JP1 接口上的短路帽 ,将 D5 区的 SDA、 SCL 分别与 A2 区的 P17、P16 相连。

基于51单片机的ic卡智能水表课程设计

基于51单片机的ic卡智能水表课程设计

基于51单片机的ic卡智能水表课程设计基于51单片机的IC卡智能水表课程设计一、引言随着科技的发展和人们生活水平的提高,水资源的合理利用和管理变得愈发重要。

传统的水表只能实现简单的读数功能,无法满足现代社会对智能化水表的需求。

本文将介绍一种基于51单片机的IC 卡智能水表的课程设计方案,通过对IC卡的读写和水表计量功能的结合,实现对用户用水量的监测和管理。

二、课程设计方案1. 系统框架本课程设计采用51单片机作为控制核心,通过与IC卡、水表及相关传感器的连接与通信,实现智能水表的计量、存储和管理。

系统框架包括IC卡读写模块、水表计量模块、显示模块和数据管理模块。

2. IC卡读写模块IC卡作为存储用户信息和充值记录的介质,需要通过51单片机与系统进行数据交互。

本课程设计中,采用SPI总线通信协议,通过51单片机的SPI接口与IC卡进行通信,实现对IC卡的读写操作。

IC卡中存储了用户的身份信息、充值金额和消费记录等数据,通过读卡器读取IC卡中的数据,传输给51单片机进行处理。

3. 水表计量模块水表计量模块通过与水表传感器的连接与通信,实现对用户用水量的实时计量。

本课程设计中,采用脉冲计量的方式,水表传感器产生的脉冲信号通过51单片机的外部中断引脚接收并计数,实时记录用户的用水量。

通过设置合适的脉冲与用水量的换算关系,可以准确地计量用户的用水量。

4. 显示模块显示模块用于显示用户的用水量和剩余金额等信息,方便用户实时了解自己的用水情况。

本课程设计中,采用LCD液晶显示屏作为显示设备,通过51单片机与LCD显示屏进行通信,将计量数据和相关信息显示在屏幕上。

5. 数据管理模块数据管理模块用于对用户的用水量和消费记录进行管理和统计。

本课程设计中,采用EEPROM作为数据存储介质,通过51单片机与EEPROM进行通信,实现对用户信息、充值记录和消费记录等数据的读写操作。

通过数据管理模块,可以实现对用户用水量和消费情况的管理和查询。

单片机DS1820单总线数字温度计单片机课程设计

单片机DS1820单总线数字温度计单片机课程设计

单片机课程设计DS1820单总线数字温度计一统设计目的,用途,功能1,目的:.S1820温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,数码显示管的使用,汇编语言的设计。

锻炼团队合作能力,动手设计能力以及发现问题并且解决问题的能力。

2,用途:温度是工业控制中主要的被控参数之一。

随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。

单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。

3,功能.:DS1820温度传感器温度的精确度高达0.1度,在许多工业控制中已经足够。

可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。

从用途上讲,该单片机类似于温度计,但用途又不仅仅集限于温度计,由于蜂鸣器的使用,编写程序后,超过预设温度后,蜂鸣器发出蜂鸣声,为工业控制的安全保驾护航。

二试验原原理DS1820单总线数字温度计引脚图DS1820单总线数字温度计一般说明:DS1820数字温度计提供9位温度读数,指示器件的温度信息经过单线接口送入 D S1820或从 DS1820送出因此从中央处理器到 DS1820仅需连接一条线和地读写和完成温度变换所需的电源可以由数据线本身提供而不需要外部电源因为每一个DS1820有唯一的系列号silicon serial number因此多个DS1820可以存在于同一条单线总线上这允许在许多不同的地方放置温度灵敏器件此性的应用范围包括HVAC环境控制建筑物设备或机械内的温度检测以及过程监视控制中的温度检测特性独特的单线接口只需1个接口引脚即可通信多点multidro 能力使分布式温度检测应用得以简化不需要外部元件可用数据线供电不需备份电源图1的方框图表示DS1820的主要部件DS1820有三个主要的数据部件164位激光laseredROM;2温度灵敏元件和3非易失性温度告警触发器TH和TL64位激光ROM每一DS1820包括一个唯一的64位长的ROM编码开绐的8位是单线产品系列编码DS1820编码是10h接着的48位是唯一的系列号最后的8 位是开始56位CRC见图564位 ROM 和 ROM 操作控制部分允许 DS1820作为一个单线器件工作并循单线总线系统一节中所详述的单线协议直到ROM操作协议被满足DS1820控制分的功能是不可访问的此协议在ROM操作协议流程图图6中叙述单线总线主机必须首先操作五种ROM操作命令之一1Read ROM(读ROM),2)Match ROM(匹配ROM),3) Search ROM(搜索ROM),4)Skip ROM(跳过ROM),或5)Alarm Search告警搜索在成功地执行了 ROM 操作序列之后DS1820特定的功能便可访问然后总线上主机可提供六个存贮器和控制功能命令之一DS1820内部结构框图如图1所示。

ds18b20数字温度计课程设计

ds18b20数字温度计课程设计

ds18b20数字温度计课程设计ds18b20数字温度计课程设计一、实验目的1、了解ds18b20数字温度计的原理;2、掌握使用单总线、多总线的ds18b20数字温度计的读取方法;3、学会程序设计,编写读取ds18b20数字温度计的程序;二、实验内容1、ds18b20原理介绍和使用指南;2、单总线ds18b20的读取;3、多总线ds18b20的读取;4、ds18b20数字温度计的程序设计。

三、实验准备1、ds18b20数字温度计一个;2、STC89C52单片机一个;3、74HC00芯片一个;4、基础模块一个;5、阻值电阻一块;6、按键一个;7、LED一个;四、实验步骤1、了解ds18b20的原理(1)ds18b20原理介绍:ds18b20是一款以串行通信方式完成温度采集的高精度热敏电阻,具有自带的识别码,可以同时读取多个ds18b20,具有低功耗,精度高,测量范围广等优点。

(2)ds18b20使用指南:ds18b20使用一根数据线进行通信,将这根数据线接到单片机的数据口即可,用来接收和发送数据。

2、单总线ds18b20的读取(1)实验环境搭建:将ds18b20数字温度计接到单片机的数据口上,并将电阻接入,使电路有效;(2)实验程序编写:编写读取单总线ds18b20的程序,实现单总线ds18b20数字温度计的读取;3、多总线ds18b20的读取(1)实验环境搭建:将多个ds18b20数字温度计使用同一个总线接到单片机的数据口上,并将电阻接入,使电路有效;(2)实验程序编写:编写读取多总线ds18b20的程序,实现多总线ds18b20数字温度计的读取;4、ds18b20数字温度计的程序设计(1)实验环境搭建:将ds18b20数字温度计接到单片机的数据口上,并将电阻、按键、LED等电子元件接入,使电路有效;(2)实验程序编写:编写ds18b20数字温度计的程序,实现读取ds18b20数字温度计的功能,并将按键控制LED亮灭,根据温度读取值判断LED是否亮起。

单片机课程设计-IIC总线式EEPROM存储器应用设计

单片机课程设计-IIC总线式EEPROM存储器应用设计

目录1 设计要求 (2)2 设计目的 (2)3 器件EEPROM的介绍 (2)3.1 EEPROM简介 (2)3.2 EEPROM24XX系列功能概述 (3)4 IIC协议的介绍 (3)4.1 IIC协议总线特征 (3)4.2 IIC协议工作原理 (3)4.3 IIC协议总线基本状态 (3)4.4 寻址约定 (5)5 EEPROM读写功能实现 (5)5.1写操作 (5)5.1.1 字节写操作 (6)5.1.2 页写入操作 (6)5.2 确认查询 (7)5.3 读操作 (7)5.3.1 当前地址的读操作 (8)5.3.2 随机读操作 (8)5.3.3 连续读操作 (9)6 具体设计过程 (10)6.1 程序流程设计 (10)6.2执行结果 (13)6.3 系统组成模块结构及功能 (15)6.3.1 函数定义 (15)6.3.2 主函数设计 (17)6.3.3 源程序 (19)7 设计心得体会 (27)8 参考文献 (28)IIC总线式EEPROM存储器应用设计1 设计要求利用51单片机和IIC总线式EEPROM芯片24C02进行存储器设计。

按下KEYWRITE1键,向24C02存储器写入数据1和2;按下KEYWRITE2键,向24C02存储器写入数据3和4;按下KEYREAD键,从24C02存储器读出刚写入的数据数据;写入数据显示在左两位,读出数据显示在右两位。

如图1.1所示。

图1.1 系统仿真运行图2 设计目的通过设计,了解IIC协议的基本原理,并对EEPROM读写功能的实现有个系统的概念,对其实现过程比较清楚。

同时,在设计中,巩固我们所学的理论知识。

3 器件EEPROM的介绍3.1 EEPROM简介EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。

EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。

单总线数字温度计单片机课程设计

单总线数字温度计单片机课程设计

单片机课程设计DS1820单总线数字温度计一统设计目的,用途,功能1,目的:.S1820温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,数码显示管的使用,汇编语言的设计。

锻炼团队合作能力,动手设计能力以及发现问题并且解决问题的能力。

2,用途:温度是工业控制中主要的被控参数之一。

随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。

单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。

3,功能.:DS1820温度传感器温度的精确度高达0.1度,在许多工业控制中已经足够。

可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。

从用途上讲,该单片机类似于温度计,但用途又不仅仅集限于温度计,由于蜂鸣器的使用,编写程序后,超过预设温度后,蜂鸣器发出蜂鸣声,为工业控制的安全保驾护航。

二试验原原理DS1820单总线数字温度计引脚图DS1820单总线数字温度计一般说明:DS1820数字温度计提供9位温度读数,指示器件的温度信息经过单线接口送入 D S1820或从 DS1820送出因此从中央处理器到 DS1820仅需连接一条线和地读写和完成温度变换所需的电源可以由数据线本身提供而不需要外部电源因为每一个DS1820有唯一的系列号silicon serial number因此多个DS1820可以存在于同一条单线总线上这允许在许多不同的地方放置温度灵敏器件此性的应用范围包括HVAC环境控制建筑物设备或机械内的温度检测以及过程监视控制中的温度检测特性独特的单线接口只需1个接口引脚即可通信多点multidro 能力使分布式温度检测应用得以简化不需要外部元件可用数据线供电不需备份电源图1的方框图表示DS1820的主要部件DS1820有三个主要的数据部件164位激光laseredROM;2温度灵敏元件和3非易失性温度告警触发器TH和TL64位激光ROM每一DS1820包括一个唯一的64位长的ROM编码开绐的8位是单线产品系列编码DS1820编码是10h接着的48位是唯一的系列号最后的8 位是开始56位CRC见图564位 ROM 和 ROM 操作控制部分允许 DS1820作为一个单线器件工作并循单线总线系统一节中所详述的单线协议直到ROM操作协议被满足DS1820控制分的功能是不可访问的此协议在ROM操作协议流程图图6中叙述单线总线主机必须首先操作五种ROM操作命令之一1Read ROM(读ROM),2)Match ROM(匹配ROM),3) Search ROM(搜索ROM),4)Skip ROM(跳过ROM),或5)Alarm Search告警搜索在成功地执行了 ROM 操作序列之后DS1820特定的功能便可访问然后总线上主机可提供六个存贮器和控制功能命令之一DS1820内部结构框图如图1所示。

单片机总线概述,单片机的三总线结构

单片机总线概述,单片机的三总线结构

单片机总线概述,单片机的三总线结构一、总线概述计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。

计算机的总线分为控制总线、地址总线和数据总线等三种。

而数据总线用于传送数据,控制总线用于传送控制信号,地址总线则用于选择存储单元或外设。

二、单片机的三总线结构51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 2的16次方) 。

在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的对象,完成与各对象之间的信息传递。

单片机三总线扩展示意如图1 所示。

1、数据总线51 单片机的数据总线为P0 口,P0 口为双向数据通道,CPU 从P0 口送出和读回数据。

2、地址总线51 系列单片机的地址总线为16 位。

为了节约芯片引脚,采用P0 口复用方式,除了作为数据总线外,在ALE 信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出8 位数据。

高8位地址则通过P2 口送出。

3、控制总线51 系列单片机的控制总线包括读控制信号P3.7 和写控制信号P3.6 等,二者分别作为总线模式下数据读和数据写的使能信号。

三、单片机总线时序分析51 单片机总线时序如图2 所示。

从图2 中可以看出,完成一次总线( 读写) 操作周期为T,P0 口分时复用,在T0 期间,P0 口送出低8 位地址,在ALE 的下降沿完成数据锁存,送出低8位地址信号。

在T1 期间,P0 口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。

需要注意的是,在控制信号( 读、写信号) 有效期间,P2 口送出高8位地址,配合数据锁存器输出的低8 位地址,实现16 位地址总线,即64kB 范围的内的寻址。

《单片机原理及应用》教学课件 第12章 单总线与SPI总线技术

《单片机原理及应用》教学课件 第12章  单总线与SPI总线技术

图12-16 ADC0832与单片机接口电路
• 12.1 单总线及其应用
• 12.1.1 单总线概述

单总线适用于单主机系统,能够控制一个
或多个从机设备。主机可以是微控制器,从机
可以是单总线器件,它们之间的数据交换只通
过一条信号线。当只有一个从机设备时,系统
可按单节点系统操作;当有多个从设备时,系 统那么按多节点系统操作。图12-1所示是单总 线多节点系统。
• DS18B20的引脚如图12-6所示。
图12-6 DS18B20引脚图

〔二〕DS18B20的内部结构及主要功能部件

DS18B20的总体结构如图12-7所示,由64位光刻ROM及串行
接口、上下温度传感器、上下温触发器、配置存放器、8位CRC发
生器、电源检测和寄生电容等各局部组成。

〔三〕DSl8B20工作过程
• 12.2.3 SPI器件ADC0832的应用
• ADC0832是美国国家半导体公司生产的一种8位分 辨率、双通道、SPI接口的A/D转换芯片。它体积小、 兼容性、性价比高,在实际应用中具有很高的普及率 。
• 〔一〕ADC0832引脚说明
• 〔二〕ADC0832与单片机接口及程序
• ADC0832与单片机接口如图12-16所示。
期为1us〕作为控制芯片,来读取DS18B20的温度值,
并通过2位数码管显示被测对象的温度值。系统的结构
如图12-8所示。
图12-8 8051单片机与DS18B20测温系统框图
• 12.2 SPI总线及应用
• 12.2.1 SPI总线概述

〔一〕SPI总线简介

SPI总线技术是Motorola公司推出的一种

单片机总线接口电路的设计_

单片机总线接口电路的设计_

单片机总线接口电路的设计Yibin UniversityEDA技术及应用期末设计报告题目: 单片机总线接口电路的设计专业: 电子信息科学与技术2013 年 12月 19 日摘要:单片机具有性价比高,功能灵活,易于人机交换和良好的数据处理能力等特点;FPGA具有高速,高可靠以及开发方便快捷规范等特点,以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛运用。

在目前的单片机与FPGA的接口电路实际设计中,重要的角色之一就是并串转换电路,并且在很多其它设计中是必不可少的,尤其是在数据量庞大的设计中,如果前级电路和后级电路直接通过并行传输数据,那么数据有多少位就得有多少根通信线,这必将导致通信的准确度的降低和通信成本的增加,当距离较长时这种方式更是不可采用的。

这次设计是基于FPGA设计的51单片机与外围电路通信的并串转换电路,该转换电路在接到51单片发出的访问外部RAM 的时序时,自动接受并行数据,接受完毕后自动串行发送数据,并且产生输出时钟,提供给后级电路使用。

该电路可以完成51单片机与串口外围电路的通信,扩展了51单片机的I/O端口,使得单片机可以带更多的负载。

关键字:(1)并串转换(2)FPGA(3)VHDL(4)状态机(5)单片机目录摘要------------------------------------------------------------------------2关键字---------------------------------------------------------------------2设计概述------------------------------------------------------------------4总的系统框图------------------------------------------------------------4设计思路------------------------------------------------------------------5方案论证------------------------------------------------------------------5设计程序------------------------------------------------------------------6设计仿真图--------------------------------------------------------------16仿真分析-----------------------------------------------------------------17参考文献------------------------------------------------------------------17设计概述:本次设计用FPGA设计一个并串转换电路,完成的功能是让51单片机可以和串行外设通信,51单片机可以用访问外部RAM 的时序去访问该接口电路。

单片机ic卡课程设计

单片机ic卡课程设计

单片机ic卡课程设计一、课程目标知识目标:1. 理解单片机IC卡的基本原理,掌握IC卡的工作流程;2. 学习并掌握单片机与IC卡通信的接口技术;3. 掌握利用单片机对IC卡进行数据读取和写入的操作;4. 了解单片机IC卡在现实生活中的应用。

技能目标:1. 能够独立完成单片机与IC卡的硬件连接;2. 能够编写程序实现单片机对IC卡的读写操作;3. 能够分析并解决单片机IC卡应用中遇到的问题;4. 培养学生的动手操作能力、团队协作能力和创新能力。

情感态度价值观目标:1. 培养学生对单片机IC卡技术的兴趣,激发学习热情;2. 培养学生严谨、细致的学习态度,养成良好的学习习惯;3. 增强学生的信息安全意识,了解IC卡在保护个人信息安全中的作用;4. 培养学生关注科技发展,关注社会热点问题,提高社会责任感。

本课程针对单片机IC卡技术展开,结合学生年级特点,注重理论与实践相结合。

在教学过程中,要求学生掌握基本原理,锻炼动手操作能力,培养团队协作和创新能力。

课程目标旨在让学生在学习过程中,既能掌握单片机IC卡相关知识,又能将其应用于实际生活中,提高学生的综合素质。

通过对课程目标的分解,为教学设计和评估提供明确的方向。

二、教学内容1. 单片机IC卡原理介绍:包括IC卡分类、结构、工作原理及其与单片机的接口技术;- 相关教材章节:第三章“IC卡技术概述”;- 内容安排:介绍IC卡的基础知识,让学生了解IC卡的种类及其工作原理。

2. 单片机与IC卡硬件连接:讲解硬件设计、连接方法及注意事项;- 相关教材章节:第四章“IC卡与单片机的接口设计”;- 内容安排:指导学生完成单片机与IC卡的硬件连接,掌握接口技术。

3. 单片机IC卡程序设计:学习编程实现单片机对IC卡的读写操作;- 相关教材章节:第五章“IC卡编程技术”;- 内容安排:教授编程方法,让学生学会如何编写程序实现IC卡的数据读写。

4. 单片机IC卡应用案例分析:分析实际应用案例,了解IC卡在生活中的应用;- 相关教材章节:第六章“IC卡应用案例分析”;- 内容安排:通过分析案例,使学生了解单片机IC卡技术的应用领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计题目:单总线和I2C总线结合实现数字温度计实验班级:设计者:指导教师:单总线和I2C总线结合实现数字温度计实验一、实验目的通过本实验,理解掌握单总线器件和I2C总线器件的应用,熟悉串行总线的操作技巧。

二、实验设备及器件IBM PC 机一台DP-51PROC 单片机综合仿真实验仪一台三、实验内容1.编写程序,通过单片机的P3.3 口控制一个DS18B20 完成数字温度的采集,然后用程序处理采集到的数据结果。

2.编写程序,通过I2C 总线器件ZLG7290 实现温度数据的输出显示。

3.结合以上两部分程序,编程实现数字式温度计的程序设计。

四、实验要求熟练掌握单总线方式器件的应用,熟悉I2C 总线协议,学习I2C 器件的使用方法。

五、实验过程和步骤(一、新建工程文件1、点击工具栏Project选项,在下拉菜单中选择New Project命令,弹出项目文件保存对话框,输入项目名后,点击保存按钮。

2、在工程建立完毕以后,uVision会弹出器件选择窗口,选择相应的器件型号。

如想修改,可点击工具栏Project选项,在下拉菜单中选择Select Device forTarget …Target‟命令。

3、点击工具栏File选项,选中New命令,新建文件,输入源程序。

4、把文件保存到磁盘中,如用汇编语言编写程序用.asm为扩展名,如用C语言编写程序用.c 为扩展名。

5、添加该文件到工程中,在Projectwindos窗口内,选中Source Group1然后点击鼠标右键,选择Add files to Group “Source Group1”,选择刚才创建的源程序文件,单击Add按钮。

(二、程序文件的编译、链接1. 安装B4 区JP12 接口上的短路帽,将B4 区的DQ 与A2 区INT1(P3.3相连。

2. 安装D5 区JP1 接口上的短路帽,将D5 区的SDA、SCL 分别与A2 区的P17、P16 相连。

3. 将D5 区的RST_L 针接上高电平。

4.按照下面的程序在Keil C51集成开发环境中建立工程文件,并进行调试仿真。

TEMPER_L EQU 36H ;存放读出温度低位数据TEMPER_H EQU 35H ;存放读出温度高位数据TEMPER_NUM EQU 37H ;存放转换后的温度值FLAG1 BIT 00HDQ BIT P3.3 ;一线总线控制端口SDA BIT P1.7 ;I2C总线定义SCL BIT P1.6MTD EQU 40H ;发送数据缓冲器MRD EQU 49H ;接收数据缓冲区;定义器件地址,变量ZLG7290 EQU 70H ;ZLG7290的器件地址ACK BIT 10H ;应答标志位SLA DA TA 50H ;器件的从地址SUBA DA TA 51H ;器件的子地址NUMBYTE DA TA 52H ;读/写的字节数变量ORG 0000HLJMP MAINORG 0100H;-------温度计主程序如下:MAIN:MOV SP,#70HDISP_LOOP:LCALL GET_TEMPER ;从DS18B20读出温度数据LCALL TEMPER_COV ;转换读出的温度数据并保存LCALL DELAYMOV MTD,#60HMOV MTD+1,TEMPER_NUM;温度值低位ANL MTD+1,#0FHMOV SLA,#ZLG7290 ;指定器件地址MOV SUBA,#07H ;指定子地址MOV NUMBYTE,#02H ;发送2字节数据LCALL IWRNBYTE ;调用写2字节数据程序MOV MTD,#61HMOV A,TEMPER_NUMSWAP AANL A,#0FHMOV MTD+1,A ;温度值高位MOV SLA,#ZLG7290 ;指定器件地址MOV SUBA,#07H ;指定子地址MOV NUMBYTE,#02H ;发送2字节数据LCALL IWRNBYTE ;调用写2字节数据程序LCALL DELAYSJMP DISP_LOOP ;温度循环采集显示;-------读出转换后的温度值GET_TEMPER:SETB DQ ; 定时入口BCD: LCALL INIT_1820JB FLAG1,S22LJMP BCD ; 若DS18B20不存在则返回S22: LCALL DELAY1 MOV A,#0CCH ; 跳过ROM匹配------0CCLCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820NOPLCALL DELAYLCALL DELAYCBA: LCALL INIT_1820JB FLAG1,ABCLJMP CBAABC: LCALL DELAY1MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_18200 ;READ_1820RET;-------读DS18B20的程序,从DS18B20中读出一个字节的数据READ_1820: MOV R2,#8RE1: CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE1RET;-------写DS18B20的程序WRITE_1820:MOV R2,#8CLR CWR1820: CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1820SETB DQRET;-------读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出MOV R1,#36H ; 低位存入36H(TEMPER_L,高位存入35H(TEMPER_H RE00: MOV R2,#8RE01: CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RET;-------将从DS18B20中读出的温度数据进行转换TEMPER_COV:MOV A,#0F0HANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值SWAP A MOV TEMPER_NUM,AMOV A,TEMPER_LJNB A CC.3,TEMPER_COV1 ; 四舍五入去温度值INC T EMPER_NUMTEMPER_COV1:MOV A,TEMPER_HANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,A ; 保存变换后的温度数据LCALL BIN_BCDRET;-------将16进制的温度数据转换成压缩BCD码BIN_BCD:MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,@A+DPTRMOV TEMPER_NUM,ARETTEMP_TAB:DB 00H,01H,02H,03H,04H,05H,06H,07H DB 08H,09H,10H,11H,12H,13H,14H,15H DB 16H,17H,18H,19H,20H,21H,22H,23H DB 24H,25H,26H,27H,28H,29H,30H,31H DB 32H,33H,34H,35H,36H,37H,38H,39H DB 40H,41H,42H,43H,44H,45H,46H,47H DB 48H,49H,50H,51H,52H,53H,54H,55H DB 56H,57H,58H,59H,60H,61H,62H,63H DB 64H,65H,66H,67H,68H,69H,70H,71H DB 72H,73H,74H,75H,76H,77H,78H,79H DB 80H,81H,82H,83H,84H,85H,86H,87H DB 88H,89H,90H,91H,92H,93H,94H,95H DB 96H,97H,98H,99H;-------DS18B20初始化程序INIT_1820:SETB DQNOPCLR DQMOV R0,#80HTSR1: DJNZ R0,TSR1 ; 延时SETB DQMOV R0,#25H ;96US-25HTSR2: DJNZ R0,TSR2JNB D Q,TSR3LJMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在LJMP TSR5 TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在LJMP TSR7 TSR5: MOV R0,#06BH ;200USTSR6: DJNZ R0,TSR6 ; 延时TSR7: SETB DQRET;-------重新写DS18B20暂存存储器设定值RE_CONFIG:JB FLAG1,RE_CONFIG1 ; 若DS18B20存在,转RE_CONFIG1 RET RE_CONFIG1:MOV A,#0CCH ; 发SKIP ROM命令LCALL WRITE_1820MOV A,#4EH ; 发写暂存存储器命令LCALL WRITE_1820MOV A,#00H ; TH(报警上限中写入00H LCALL WRITE_1820MOV A,#00H ; TL(报警下限中写入00H LCALL WRITE_1820MOV A,#7FH ; 选择12位温度分辨率LCALL WRITE_1820RET;------------------延时子程序DELAY:MOV R7,#00HMIN: D JNZ R7,YS500RETYS500: LCALL YS500USLJMP MINYS500US:MOV R6,#00HDJNZ R6,$RETDELAY1: MOV R7,#20HDJNZ R7,$RET$INCLUDE(VI2C_ASM.INC ;包含VIIC软件包;END;启动I2C总线子程序START: SETB SDANOPSETB SCL ;起始条件建立时间大于4.7us NOPNOPNOPNOPNOPCLR SDANOP ;起始条件锁定时大于4usNOPNOPNOPNOPCLR SCL ;钳住总线,准备发数据NOPRET;结束总线子程序STOP: CLR SDANOPSETB SCL ;发送结束条件的时钟信号NOP ;结束总线时间大于4usNOPNOPNOPNOPSETB SDA ;结束总线NOP ;保证一个终止信号和起始信号的空闲时间大于4.7us NOPNOPNOPRET;发送应答信号子程序MACK: CLR SDA ;将SDA置0NOPNOPSETB SCLNOP ;保持数据时间,即SCL为高时间大于4.7us NOPNOPNOPNOPCLR SCLNOPNOPRET;发送非应答信号MNACK: SETB SDA ;将SDA置1NOPNOPSETB SCLNOPNOP ;保持数据时间,即SCL为高时间大于4.7us NOPNOPNOPCLR SCLNOPNOPRET;检查应答位子程序;返回值,ACK=1时表示有应答CACK: SETB SDANOPNOPSETB SCLCLR ACKNOPNOPMOV C,SDAJC CENDSETB ACK ;判断应答位CEND: NOPCLR SCLNOPRET;发送字节子程序;字节数据放入ACC;每发送一字节要调用一次CACK子程序,取应答位WRBYTE: MOV R0,#08H WLP: RLC A ;取数据位JC WR1SJMP WR0 ;判断数据位WLP1: DJNZ R0,WLPNOPRETWR1: SETB SDA ;发送1 NOPSETB SCLNOPNOPNOPNOPNOPCLR SCLSJMP WLP1WR0: CLR SDA ;发送0 NOPSETB SCLNOPNOPNOPNOPNOPCLR SCLSJMP WLP1;读取字节子程序;读出的值在ACC;每取一字节要发送一个应答/非应答信号RDBYTE: MOV R0,#08HRLP: SETB SDANOPNOPNOPNOPSETB SCL ;时钟线为高,接收数据位NOPNOPNOP ;+1NOP ;+1NOP ;+1NOP ;+1NOP ;+1MOV C,SDA ;读取数据位MOV A,R2CLR SCL ;将SCL拉低,时间大于4.7us RLC A ;进行数据位的处理MOV R2,ANOPNOPNOPNOP ;+1NOP ;+1NOP ;+1NOPNOPNOP ;+1NOPNOP ;+1NOP ;+1DJNZ R0,RLP ;未够8位,再来一次RET;=========================================================== ====================== =======;=========================================================== ====================== =======; 以下是用户接口子程序;;无子地址器件写字节数据;入口参数: 数据为ACC、器件从地址SLA;占用: A、R0、CYIWRBYTE: PUSH ACCIWBLOOP: LCALL START ;起动总线MOV A,SLALCALL WRBYTE ;发送器件从地址LCALL CACKJNB ACK,RETWRB ;无应答则跳转POP ACC ;写数据LCALL WRBYTELCALL CACKLCALL STOPRETRETWRB: POP ACCLCALL STOPRET;无子地址器件读字节数据;入口参数: 器件从地址SLA;出口参数: 数据为ACC;占用:A 、R0、R2 、CY IRDBYTE: LCALL STARTMOV A,SLA ;发送器件从地址INC ALCALL WRBYTELCALL CACKJNB ACK,RETRDBLCALL RDBYTE ;进行读字节操作LCALL MNACK ;发送非应信号RETRDB: LCALL STOP ;结束总线RET;向器件指定子地址写N字节数据;入口参数: 器件从地址SLA、器件子地址SUBA 、发送数据缓冲区MTD、发送字节数NUMBYTE; 占用: A 、R0 、R1 、R3 、CYIWRNBYTE: MOV A,NUMBYTEMOV R3,ALCALL START ;起动总线MOV A,SLALCALL WRBYTE ;发送器件从地址LCALL CACKJNB ACK,RETWRN ;无应答则退出MOV A,SUBA ;指定子地址LCALL WRBYTELCALL CACKMOV R1,#MTDWRDA: MOV A,@R1LCALL WRBYTE ;开始写入数据LCALL CACKJNB ACK,IWRNBYTEINC R1DJNZ R3,WRDA ;判断写完没有RETWRN: LCALL STOPRET;向器件指定子地址读取N字节数据;入口参数: 器件从地址SLA、器件子地址SUBA、接收字节数NUMBYTE ;出口参数: 接收数据缓冲区MTD;占用:A、R0、R1、R2、R3、CYIRDNBYTE: MOV R3,NUMBYTELCALL STARTMOV A,SLALCALL WRBYTE ;发送器件从地址LCALL CACKJNB ACK,RETRDNMOV A,SUBA ;指定子地址LCALL WRBYTELCALL CACKLCALL START ;重新起动总线MOV A,SLAINC A ;准备进行读操作LCALL WRBYTELCALL CACKJNB ACK,IRDNBYTEMOV R1,#MRDRDN1: LCALL RDBYTE ;读操作开始MOV @R1,A;NOP ;+1;NOP ;+1DJNZ R3,SACKLCALL MNACK ;最后一字节发非应答位RETRDN: LCALL STOP ;并结束总线RETSACK: LCALL MACKINC R1SJMP RDN1;无子地址器件写N字节数据;入口参数: 器件从地址SLA、发送数据缓冲区MTD、发送字节数NUMBYTE ; 占用: A 、R0 、R1 、R3 、CY;不发送子地址SUBA,直接发送多个数据.IWRNBYTEEXT:MOV A,NUMBYTEMOV R3,ALCALL START ;起动总线MOV A,SLALCALL WRBYTE ;发送器件从地址LCALL CACKJNB ACK,RETWRNE ;无应答则退出MOV R1,#MTDWRDAE: MOV A,@R1LCALL WRBYTE ;开始写入数据LCALL CACKJNB ACK,RETWRNEINC R1DJNZ R3,WRDAE ;判断写完没有RETWRNE: LCALL STOPRET;无子地址器件读取N字节数据;入口参数: 器件从地址SLA、器件子地址SUBA、接收字节数NUMBYTE;出口参数: 接收数据缓冲区MTD;占用:A、R0、R1、R2、R3、CY;说明:此函数不发送子址,也不重新启动总线,而是直接读取多个数据. IRDNBYTEEXT:MOV R3,NUMBYTELCALL STARTMOV A,SLAINC ALCALL WRBYTE ;发送器件从地址LCALL CACKJNB ACK,RETRDNEMOV R1,#MRDRDNE1: LCALL RDBYTE ;读操作开始MOV @R1,ADJNZ R3,SACKELCALL MNACK ;最后一字节发非应答位RETRDNE: LCALL STOP ;并结束总线RETSACKE: LCALL MACKINC R1SJMP RDNE1软件调试的具体步骤如下:1打开keil集成开发环境,新建一个新的工程文件。

相关文档
最新文档