通信与测控系统设计报告
- 格式:doc
- 大小:623.50 KB
- 文档页数:13
《测控电路课程设计》报告题目人体电子秤设计院系仪器科学与光电工程专业测控技术与仪器班级测控1102学号 2011010652学生姓名丁向友指导老师刘国忠实验时间 2014.06-2014.07实验成绩目录一、课程设计目的及意义 (3)二、系统设计的主要任务 (3)三、总体方案设计 (3)四、电路设计及调试 (4)4.1称重传感器电路 (4)4.2信号调理电路 (5)4.2.1放大电路 (5)4.2.2调零电路 (7)4.3比较电路 (7)4.4或非电路 (9)4.5显示模块 (10)4.6报警系统 (10)五、电路调节 (10)六、实验数据分析与处理 (11)6.1准确性 (11)6.2稳定性 (12)6.3关键点电压 (13)七、总结 (14)八、参考文献 (14)一、课程设计目的及意义测控电路课程设计是测控电路课程体系的一个重要组成环节,独立实践教学环节是对《测控电路》理论部分的必要补充。
课程设计内容为典型测控系统电路设计,通过课程设计,使学生完成测控系统任务分析、电路总体设计、单元电路设计以及电路调试等各个环节。
掌握有关传感器接口电路、信号处理电路、放大电路、滤波电路、运算电路、显示电路以及执行部件驱动电路等内容在测控系统中的使用方法。
了解有关电子器件和集成电路的工作原理。
在课程设计中,做到理论联系实际,加深对理论知识的进一步理解,提高分析问题和解决问题的能力。
本课程设计以AD620、LM741、LM339为核心,进行智能人体电子秤的设计,并详述该系统硬件的设计方法。
该系统集称重、显示、报警于一体,功能齐全,实用性强,充分利用了电路分析、模拟电路、测控电路、信号分析与处理、传感器等课堂上学到的知识,有机的将所学到的知识融合在一起,投入到实际运用中,便于对知识的综合掌握及运用。
二、系统设计的主要任务任务:设计一个人体电子秤测量系统。
要求:1)基本要求最大称重:150KG用3位半数字显示表头显示体重,输入电压范围0-2V,当体重大于W1时,点亮LED1,发出声音提示;当体重小于W2时,点亮LED2,发出声音提示。
测控技术与仪器课程设计一、课程目标知识目标:1. 让学生掌握测控技术的基本原理,理解仪器的工作机制;2. 帮助学生了解不同类型的传感器及其在测控系统中的应用;3. 使学生掌握数据采集、处理、传输的基本方法。
技能目标:1. 培养学生运用所学知识进行简单测控系统的设计和搭建能力;2. 提高学生运用相关软件进行数据处理和分析的能力;3. 培养学生解决实际测控问题的能力。
情感态度价值观目标:1. 培养学生对测控技术与仪器课程的兴趣,激发学生主动学习的积极性;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生在实践中不断探索和尝试。
课程性质:本课程为理论与实践相结合的课程,旨在培养学生的实际操作能力和创新能力。
学生特点:学生在本年级已具备一定的物理知识和电子技术基础,对测控技术与仪器有一定了解,但实践能力有待提高。
教学要求:教师需结合课本内容,注重理论与实践相结合,引导学生通过实际操作掌握测控技术与仪器的相关知识。
在教学过程中,关注学生的个体差异,因材施教,使学生在完成课程目标的基础上,实现个性化发展。
通过课程学习,使学生能够将所学知识应用于实际问题的解决中,提高学生的综合素质。
二、教学内容本课程教学内容主要包括以下几部分:1. 测控技术基本原理:介绍传感器的工作原理、特性及应用,涵盖课本第二章内容。
2. 数据采集与处理:讲解数据采集的方法、过程和设备,以及数据处理的基本算法,对应课本第三章。
3. 传感器与仪器:分析不同类型的传感器及其在测控系统中的应用,介绍常见测控仪器的结构和原理,包括课本第四章内容。
4. 数据传输与接口技术:阐述数据传输的基本原理,介绍常见的数据传输接口技术,如RS-232、RS-485等,对应课本第五章。
5. 测控系统设计与实践:结合实际案例,指导学生进行测控系统的设计和搭建,涵盖课本第六章内容。
6. 软件应用与数据处理:教授相关软件(如LabVIEW、MATLAB等)在测控数据处理和分析中的应用,对应课本第七章。
C语⾔测控系统程序设计实验报告Harbin Institute of TechnologyC语⾔在测量与控制中的应⽤实验报告专业:⾃动化班级:1104104学号:姓名:设计时间:2014/3/29实验⼀定时中断程序设计实验的⽬的:1.掌握定时器/计数器8254的⼯作原理与编程。
2.熟悉中断控制器8259A的⼯作原理与使⽤⽅法。
3.掌握硬件中断程序设计的原理与编程⽅法。
实验条件:PC机,WinXP操作系统,Turbo C 2.0程序设计要求:程序运⾏⾸先提⽰输⼊中断服务的时间间隔T和中断服务次数N,正确输⼊后,回车,则每间隔指定的时间T会在屏幕上显⽰⼀些字符,显⽰N次后,则不再显⽰,如果N=0,则会⽆限显⽰下去,直到在键盘上按下指定的按键,才停⽌显⽰。
停⽌显⽰后,按任意键程序结束运⾏。
1.时间间隔T为以毫秒为单位浮点数,可处理范围⾄少要0.001毫秒到5000毫秒。
2.屏幕上的显⽰信息要有助于验证程序运⾏结果的正确。
3.输⼊错误信息要有提⽰,并允许重新输⼊。
4.编程时要尽量把具有独⽴功能的代码写成⼦程序。
5.注意变量的命名要清晰,代码的注释要丰富。
6.后⾯的三个实验均要在此程序基础上编程、添加代码,注意程序的结构。
设计思路1.如何实现任意时间间隔?(附程序流程图)时间间隔的选取是根据⽤户的需要来进⾏的,因此程序⾸先应该是要求⽤户输⼊时间间隔T(ms),设定了8254的通道0定时器的计数初值,再通过将计数初值先写低8位后写⾼8位的⽅式来初始化通道0。
代码实现为:通过CalIPara()函数来计算计数初值的⾼低8位:void CalIPara(double DTimeI,int *ILongCount,unsigned char *CL8,unsigned char *CH8){double TotalCounter=DTimeI*1193;int Residue;ILongCount[0]=TotalCounter/65536;Residue=TotalCounter-65536*ILongCount[0];CH8[0]=Residue>>8;CL8[0]=Residue&0x0FF;}通过SetupTimerInterrupt()函数来对8254的通道0定时器的初始化:void SetupTimerInterrupt(void){disable();oldint8=getvect(0x08);outportb(0x43,0x36);if(LongCount==0){outportb(0x40,L8);outportb(0x40,H8);}else{outportb(0x40,0x00);outportb(0x40,0x00);}setvect(0x08,myint8);enable();}这样,每隔T(ms)时间,8259A的中断请求信号引起中断服务的执⾏。
关于测控实习报告4篇测控实习报告篇1一、实习目的生产实习是我们测控专业知识结构中不可缺少的组成部分,并作为一个独立的项目列入专业教学计划中的。
其目的在于通过实习使学生获得基本生产的感性知识,理论联系实际,扩大知识面。
生产实习也是教学与生产实际相结合的重要实践性教学环节。
在生产实习过程中,学校也以培养学生观察问题、解决问题和向生产实际学习的能力和方法为目标。
培养我们的团结合作精神,牢固树立我们的群体意识,即个人智慧只有在融入集体之中才能最大限度地发挥作用。
同时专业实习又是锻炼和培养学生业务能力及素质的重要渠道,培养当代大学生具有吃苦耐劳的精神,也是学生接触社会、了解产业状况、了解国情的一个重要途径,逐步实现由学生到社会的转变,培养我们初步担任技术工作的能力、初步了解企业管理的基本方法和技能;体验企业工作的内容和方法。
这些实际知识,对我们学习后面的课程乃至以后的工作,都是十分必要的基础。
通过生产实习,对我们巩固和加深所学理论知识,培养我们的独立工作能力和加强劳动观点起了重要作用。
二、实习时间20__年9月三、实习地点:中国博大仪表集团四、指导教师:____老师 ______老师 ______老师五、实习单位介绍博大集团为一家中德合资企业,是集高科技产品制造、能源节能服务、物资贸易、能源服务、投资、房地产开发、娱乐等诸多领域的多元化、跨区域发展的大型科技先导型企业集团。
公司成立以来,一直把科技投入和高新技术开发作为公司发展的重中之重。
博大仪表产品秉承了德国20余年仪器仪表设计精华与制造工艺,推出的博大多流束冷热量表、无磁冷热量表、智能射频卡冷热量表、远传冷热量表、IC卡智能冷水表、智能纯净水表、超声波热量表、温控阀、锁闭阀等产品技术荣获多项国家专利,博大“供热系统热计量技术”项目被列为建设部科技成果以全国重点推广。
博大专业化服务与质量体系多年来一直贯彻集团总裁倡导的“产品体现人品、人品决定产品”准则,在同行业中率先通过ISO9001-20__质量体系认证。
第1篇一、实验背景随着科技的不断发展,测控技术在工业生产、科学研究、军事等领域发挥着越来越重要的作用。
测控装置作为测控技术的核心,其性能直接影响着测控系统的稳定性和准确性。
本实验旨在通过实际操作,深入了解测控装置的原理、结构、功能以及应用,提高学生对测控技术的认识和操作能力。
二、实验目的1. 熟悉测控装置的基本原理和组成;2. 掌握测控装置的调试方法和操作技巧;3. 学会分析测控装置在实际应用中的问题,并提出解决方案;4. 提高学生的动手能力和创新意识。
三、实验内容1. 测控装置基本原理及组成本实验主要介绍了测控装置的基本原理和组成,包括传感器、信号调理电路、数据采集与处理系统、执行机构等部分。
传感器负责将物理量转换为电信号,信号调理电路对信号进行放大、滤波等处理,数据采集与处理系统对信号进行数字化处理,执行机构根据处理结果执行相应的动作。
2. 测控装置调试方法(1)传感器调试:根据实际测量需求,选择合适的传感器,并对传感器进行校准和标定,确保测量精度。
(2)信号调理电路调试:对信号调理电路进行参数设置,使信号达到最佳状态,如放大倍数、滤波频率等。
(3)数据采集与处理系统调试:设置数据采集参数,如采样频率、分辨率等,并对采集到的数据进行处理和分析。
(4)执行机构调试:根据实际需求,对执行机构进行参数设置,确保执行机构能够准确执行指令。
3. 测控装置应用实例本实验以温度测控系统为例,介绍了测控装置在实际应用中的具体操作。
包括:(1)选择合适的温度传感器,如热电偶、热电阻等;(2)搭建温度测控系统,包括传感器、信号调理电路、数据采集与处理系统、执行机构等;(3)对系统进行调试,确保系统稳定运行;(4)根据实际需求,对温度数据进行采集、处理和分析,实现对温度的实时监控和控制。
四、实验结果与分析1. 实验结果通过本次实验,我们成功搭建了一个温度测控系统,实现了对温度的实时监测和控制。
系统稳定运行,测量精度达到预期要求。
测控技术与仪器专业导论报告测控技术与仪器是一个电子与信息技术交叉的学科专业,其学习研究对象包括电子电路、信息处理、传感与控制、软硬件设计、仪器系统集成、计量测试等。
测控技术与仪器专业以光、机、电、计算机一体化为特色,培养具有现代科学创新意识、知识面宽、基础理论扎实、计算机和外语能力强,可从事计算机应用、电子信息、智能仪器、虚拟仪器、测量与控制等多领域的产品设计制造、科技开发、应用研究、企业管理等多方面的高级工程技术及经营管理人才。
需要掌握电工学、电子技术基础、传感器原理及应用、微机原理及应用、控制工程基础、信号与测试系统、智能机械设计、数字化测控技术、精密仪器设计、测控电路设计、智能仪器设计、微机电系统。
本专业学生主要学习测控仪器仪表的光学、机械与电子学基础理论和数字化、智能化测量仪表的设计方法;学习先进的自动控制理论和技术。
受到现代测控技术和仪器应用的训练。
本专业毕业生应获得以下几方面的知识和能力:1、具有较扎实的自然科学基础,较好的人文社会科学和管理科学基础;2、较系统地掌握本专业的理论基础知识;3、掌握光、机、电、计算机相结合的当代测控技术,具有测控仪器仪表与系统的设计、开发能力;4、具有较强的外语应用能力和计算机应用能力;5、具有较强的自学能力、创新意识和较高的综合素质。
一、航天领域中的应用由于航天领域对数据和技术的要求非常高,所以工作人员在进行有关测量工作时必须要选择优异的技术理念。
了解以往人工测量工作可知,不仅工作时间长,旦消耗精力大,但随着社会经济和科学技术的不断提升,导致传统意义上的手工业的低下,通过整合交战套例分析,推广测控技术与仪器后,航天领城可以进行跟踪测量,井准确获取与航天器有关的多项数据,这对实践工作及技术探究而言具有积极作用。
二、农产品种植浇灌领域中的应用了解以往农产最种植工作可知,大部分工作都是人工操控的,所需精力和时间非常多,挡在先进技术提出后,农产品种植浇灌领城出现了新的交化。
测控与传感技术课程设计一、课程目标知识目标:1. 让学生掌握测控与传感技术的基本原理,理解常见传感器的工作方式及其在工程中的应用。
2. 使学生了解测控系统的组成,掌握数据采集、处理和传输的基本方法。
3. 引导学生掌握至少两种传感器(如温度传感器、光电传感器)的接线方式和使用方法。
技能目标:1. 培养学生运用测控与传感技术解决实际问题的能力,能够设计简单的测控系统。
2. 提高学生的动手实践能力,学会使用传感器进行数据采集,并能够对数据进行简单的处理和分析。
3. 培养学生团队协作和沟通能力,能够在小组合作中发挥自己的作用,共同完成测控系统的设计。
情感态度价值观目标:1. 激发学生对测控与传感技术学科的兴趣,培养他们的学习热情和求知欲。
2. 引导学生关注测控技术在生活中的应用,认识到测控技术对社会发展的贡献,增强社会责任感。
3. 培养学生严谨的科学态度,使他们具备良好的实验习惯和实事求是的精神。
本课程针对初中年级学生的认知特点,注重理论与实践相结合,旨在提高学生的动手实践能力和创新能力。
通过课程学习,使学生能够将所学知识应用于实际问题的解决,培养他们的综合素质,为未来的学习和工作打下坚实基础。
二、教学内容本课程教学内容主要包括以下三个方面:1. 测控与传感技术基本原理- 介绍测控系统的概念、组成及其应用。
- 传感器的工作原理、分类及其性能参数。
- 教材第1章和第2章内容。
2. 常见传感器及其应用- 温度传感器:热敏电阻、热电偶等原理和使用方法。
- 光电传感器:光敏电阻、光敏二极管等原理和使用方法。
- 教材第3章和第4章内容。
3. 测控系统设计与实践- 数据采集、处理和传输的基本方法。
- 设计简单的测控系统,如温度监测、光照强度检测等。
- 教材第5章内容。
教学内容安排和进度:1. 第1周:测控系统基本原理学习。
2. 第2-3周:常见传感器原理及使用方法学习。
3. 第4-5周:测控系统设计与实践,包括数据采集、处理和传输。
1前言本次我们三人小组设计的是无线通信模块,根据设计要求我们选择了无线收发模块nRF24L01、单片机STC89C52、LCD1602和键盘模块等作为本次设计的硬件需求。
首先我们与老师一起讨论了一些设计的相关事宜和设计思路。
接下来我们一起画好了模拟电路图,在老师的帮助下我们对电路图进行了补充和完善。
完成这些基本工作后,在老师和同学的帮助下我们买回了自己所需的元器件。
接着我们变分工完成了元器件的焊接连接和程序的编写,然后便是模块的上电调试,设计的答辩和设计报告的完善。
我们本次之所以会选择无线通信模块的设计,是我们觉得无线通信技术是现代社会中一门很重要的技术,我们掌握好了这门技术对以后我们的工作生活都有很大的帮助。
我们本次设计的无线通信模块虽然只是我们的一次小小的体验,但我们都知道无线通信在我们现在所处的信息时代是多么的重要,如今我们生活的方方面面无不与无线通信息息相关。
我们所熟悉的手机、电脑、电视等等都与无线通信有着直接的联系。
甚至在某些高端领域方面无线通信技术能反映一个国家的科技水平和综合国力。
我们国家的无线通信技术虽然在世界上排在了前面的位置,但与一些发达国家相比我们任然有很大差距,如太空中有差不多80%的通信卫星是美国的。
当然我们本次设计的无线通信模块只是很基础的无线通信模块,我们所达到的效果就是两个模块间能相互发送一些简单的字符和数字。
2总体方案设计本次设计我们考虑用C语言和汇编去实现模块的无线通信功能,但我们编写程序时发现汇编语言较难写且可读性差,因此我们选择了用C语言作为本次的软件实现。
要实现无线通信功能,我们选择了小巧轻便的无线收发模块nRF24L01。
在单片机方面考虑到52系列优于51系列且很好购买,我们选择了STC89C52单片机。
在液晶显示上,我们只要求能显示一些简单的数字和字母,我们选择了LCD1602。
键盘输入方面我们选择的是4×4矩阵键盘。
以上各模块的功能信息在后面都有更为具体的介绍。
《电气工程训练》设计报告----智能数字电压表班级:姓名:学号:指导老师:中南大学2017年1月3号目录1 引言 (3)1.1 数字电压表的发展背景 (3)1.2 数字电压表的发展现状 (3)1.3 数字电压表的发展意义 (4)2 设计要求 (4)2.1 设计任务 (4)2.2 设计要求 (5)2.3 实验任务 (5)3 设计方案 (5)3.1 系统设计 (5)3.2 系统框图 (6)4硬件电路 (6)4.1 单片机系统 (6)4.2 A/D转换电路 (9)4.3 量程自动切换电路 (11)4.4 LED点阵显示电路 (13)4.5 电源电路 (14)4.6 超量程报警电路 (14)5 软件设计 (15)5.1 程序结构 (15)5.2 程序分析与设计 (15)6 结论 (20)7 致谢 (20)8 附件(系统仿真图、原理图、PCB图) (21)8.1 系统protues仿真图 (21)8.2 Altium Designer设计原理图 (21)8.3 Altium Designer设计PCB图 (22)9 参考资料 (23)1 引言科学技术现代化的今天,是电子技术和信息技术迅速发展的时代。
数字电压表在工程测量、计量检定、科学实验、机械电子、电能电力、邮电通信、国防军工以及工矿企业等诸多领域中,有着非常广泛的应用。
尤其是智能化数字仪表的普及和应用,在数字化、自动化、软件化测量技术中更发挥着重要的作用。
1.1 数字电压表的发展背景数字仪表是把连续的被测模拟量自动地变成断续的、用数字编码方式并以十进制数字自动显示测量结果的一种测量仪表。
这是一种新型仪表,它把电子技术、计算机技术、自动化技术与精密电测量技术密切地结合在—起,成为仪器仪表领域中一个独立的分支。
数字仪表的种类很多,应用场合各不相同,其内部结构也相差很大。
根据仪表的用途(即被测量的性质)分为:数字电压表、数字电阻表、数字电流表、数字功率表、数字Q(品质因数)表、数字电桥及电子计数器等经过适当变换,还可制成测量多种非电量的仪表,如数字温度表、数字转速表、数字位移表、数字钟、数字秤、数字测厚仪及数字高斯计等,还有许多其他数字式测量仪器和测量装置。
基于stm32的仓库环境智能测控系统设计与实现开题报告全文共四篇示例,供读者参考第一篇示例:开题报告一、选题依据随着物联网技术的发展和智能化水平的提高,基于微控制器的嵌入式系统在仓库环境智能测控方面的应用愈加广泛。
本课题旨在设计开发一款基于STM32微控制器的仓库环境智能测控系统,通过实时监测仓库环境数据,实现对仓库内部温湿度等参数的精确测控,提高仓库管理效率和产品质量。
二、选题背景传统的仓库管理方式存在许多问题,如无法做到实时监控、数据不准确、无法远程管理等。
而基于STM32微控制器的智能测控系统能够实时监测仓库环境数据并自动调节,提高管理效率、降低成本,同时避免因无法及时察觉环境变化而造成的货物损失。
三、选题意义仓库环境智能测控系统不仅可以提高仓库管理的效率和准确性,还可以减少人为操作和管理成本,提高产品质量和客户满意度。
通过本系统的研发和应用,可以为企业提供更加智能化的仓库管理解决方案,促进企业的可持续发展。
四、研究内容本课题的主要研究内容包括以下几个方面:1. 仓库环境数据采集:利用STM32微控制器实时采集仓库内部的温湿度等环境参数。
2. 数据处理与分析:通过数据处理与分析模块,实现对采集到的环境数据进行处理和分析。
3. 控制算法设计:设计相应的控制算法,实现对仓库环境参数的智能控制。
4. 系统软硬件设计:设计并实现相应的硬件电路和软件程序,搭建完整的仓库环境智能测控系统。
五、研究方法本课题将采用实验研究和仿真分析相结合的研究方法。
通过对STM32微控制器的硬件配置和软件编程进行深入研究,结合实际仓库环境数据进行仿真分析,验证系统设计的可行性和有效性。
六、预期成果七、研究计划1. 系统需求分析:对仓库环境数据采集需求进行分析,明确系统功能和性能要求。
2. 系统设计与实现:进行硬件和软件设计,搭建系统测试平台。
3. 系统测试与调试:对系统进行功能测试和性能验证,不断优化系统设计。
4. 系统应用与推广:将研发的仓库环境智能测控系统应用于实际仓库管理中,并进行推广应用。
河北工业大学通信与测控系统设计姓名:高旭班级:通信122班学号:122238指导教师:王蒙军、曾祥烨1. 项目需求随着社会生产力的发展,社会的进步,传感器在工农业生产中都有了很重要的应用。
例如,现代化的智能温室系统,温度的测控与检测在农业生产中是很重要的环节,检测温室中的各处的温度是很重要的,因此温度采集和网络结合得到了广泛的应用。
本项目旨在完成设计收发双方两台设备之间的温度信息通信,由发送方对周围环境温度进行采集(此项目采用DS18B20芯片构成温度采集模块),通过核心处理芯片AT89C52对采集到的温度信息进行信息处理,并使用七段数码管对处理后的信息进行显示,并使用无线传输模块(本项目采用IA4421芯片)将温度信息传送至接收方的IA4421无线接收模块,并传送至中央处理芯片进行处理,并加以在七段数码管显示。
为了验证传输的可靠性,可将发送方显示模块的温度值与接收方的温度进行校正与对比。
2. 原理介绍无线传感器测温系统可划分为四部分。
CPU使用的是AT89S52单片机芯片,是该系统的核心部分,负责数据的处理和系统的控制。
温度测量模块使用的DS18B20传感器,是无线传感器网络的关键部分,负责温度的测量。
显示温度的四位数码管。
用于数据发送的是无线收发的IA4421芯片电路,负责单片机和上位机之间的无线通信。
温度传感器DS18B20传感器和CPU通过一总线协议相连,将测量的温度数据传输给CPU,CPU 对数据进行处理通过四位数码管显示测得的温度数据CPU和IA4421之间通过SPI总线协议相连接,CPU通过无线收发模块IA4421芯片电路发送给上位机,与上位机之间的连接是无线连接。
2.1 DS18B20传感器在无线温度测量系统的设计中,温度测量使用DS18B20传感器。
DS18B20单线数字温度传感器,即“一线器件”。
其具有独特的优点。
⑴采用单总线的接口方式与微处理器连接时仅需要一条连线即可实现微处理器与DS18B20的双向通信。
单总线具有经济性好,抗干扰能力强,使用方便等优点。
⑵DS18B20测量温度范围宽,为-55℃~+ 125℃。
测量精度高,在-10℃~+ 85℃范围内,精度为±0.5℃。
⑶测量参数可配置DS18B20 的测量分辨率可通过程序设定9~12 位。
⑷持多点组网功能,多个DS18B20可以并联在一根单线上,实现多点测温。
⑸供电方式灵活,DS18B20 可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建经济的测温系统。
2.2 IA4421通用ISM 频段FSK 收发器:IA4421单片机与无线模块IA4421的连接单片机与无线模块IA4421的连接标准是SPI,SPI的相关协议如下:它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。
也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
(1)SDO –主设备数据输出,从设备数据输入;(2)SDI –主设备数据输入,从设备数据输出;(3)SCLK –时钟信号,由主设备产生;(4)CS –从设备使能信号,由主设备控制。
设计中通过两块IA4421模块对数据进行无线传输,使得数据能够进行相互对比,从而使得实验的准确性得到提高。
3. 原理框图DS18B20CPUAT89S5274LS573无线收发模块IA4421上位机P2.0-2.3P3.3四位数码管系统原理图DS18B20和CPU之间的连接采用一总线协议。
IA4421和CPU之间的连接采用SPI总线协议。
4. 程序流程图1 ds18b20工作流程图2 IA4421流程图无线连接3 系统流程图5 附录主程序主程序代码:#include<reg52.h>#include<IA4421.h>#include<absacc.h>#include<intrins.h>#include<math.h>#include<xianshi.h>#define uint unsigned int#define uchar unsigned charunsigned char m;unsigned char n;void zhuanhuan();void delay_led(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}uint aa;uchar wei_1,wei_2,wei_3,v,wei_4,wei_5,wei_6;uint shuju;//得到的温度值uchar temp[2]={0,0}; //存放DS18B20的温度寄存器值uint value = 0;sbit DQ=P3^3; //数据线void ReadSerialNumber(void);uchar sn1,sn2,sn3,sn4,sn5,sn6,sn7,sn8; //存放DS18B20的64位序列号 v void ow_reset(void);void tmstart (void);void ReadSerialNumber(void);void Read_Temperature(void);void write_byte(char);uint read_byte(void);void delay_18B20(uint);//void baojing();/*******主函数**********/void main(){ m=0;tmstart ();delay_18B20(50); /*等待转换结束*/while(1){ m++;Read_Temperature();delay_18B20(50);tmstart();delay_18B20(50); /*等待转换结束*/zhuanhuan();ia4421(); n=wei_4; wei_4<<=4;txdata[4]=wei_5|wei_4;if(m==50){m=0;UART_Init();P1=0xfc;txdata[0]=0x2d; txdata[1]=0xd4;txdata[2]=0xfa;txdata[3]=0x01;ia442xinit();spirevtwobyte();spisendcommand(0x8288);txregframe(); }P2=0xff; P0=table[n];P2_4=0;delay1s(); P2_4=1;P0=table[wei_5];P2_5=0;delay1s();P2_5=1;P0=~0x80;P2_6=0; delay1s();P2_6=1; P0=~0x39;P2_7=0; delay1s();P2_7=1;}}/******转换************/void zhuanhuan(){aa=shuju;wei_1=aa/100000;wei_2=aa/10000%10;wei_3=aa/1000%100%10;wei_4=aa/100%1000%100%10;wei_5=aa/10%10000%1000%100%10;wei_6=aa/1%100000%10000%1000%100%10;}/******延时函数*********///========18b20程序=================*/void delay_18B20(uint seconds) //延时{for(;seconds>0;seconds--); }/******18b20***********************************/void ow_reset(void){uchar presence;DQ = 0; //pull DQ line lowdelay_18B20(44); //至少480微秒,leave it low for 501usDQ = 1; // allow line to return high?delay_18B20(3); // wait for presence18b20 36uspresence = DQ; // get presence signaldelay_18B20(12); // wait for end of timeslot }//=========从总线上读取一个字节========uint read_byte(void) {uchar i;for (i=8;i>0;i--){value>>=1;DQ = 0; // pull DQ low to start timeslot _nop_();_nop_();_nop_() ;_nop_();DQ = 1; // then return highif(DQ) {value|=0x80; }delay_18B20(4); // wait for rest of timeslot}return(value);}//===========向18B20写一个字节=================void write_byte(char val)uchar i,j;for (i=8; i>0; i--)// writes byte, one bit at a time{DQ = 0; // pull DQ low to start timeslotj++;/*延时4us*/DQ = val&0x01;delay_18B20(8); // hold value for remainder of timeslot DQ = 1;j++;val>>=1;}}//============读取温度============void Read_Temperature(void){int k,i;int temple; /*存放读取的温度值将其除以16即为得到的值*/ ow_reset();k++; //延时4uswrite_byte(0xCC); //Sk_nop_();ip ROMk++; //延时4uswrite_byte(0xBE); // read registerk++;k++; //延时8ustemp[0]=read_byte(); //读取低字节temp[1]=read_byte(); //读取高字节//if(!(temp[0]&0x80)) /*当低位寄存器第八位为0时*/i=temp[1];i<<=8; /*把b放到高八位上去*/i|=temp[0]; /*将a放到底八位上去*/i&=0x07ff;if( (temp[1]&0x08))temple=~i+1; //如果为负温则去除其补码elsetemple=i;}//temple=temp[1]*0x100+temp[0];shuju=temple*10/16;}//以下是读取器件序列号的子程序,需要读取序列时可在程序中调用;/////////////////读取器件序列号子程序///////////////////////// void ReadSerialNumber(void){ow_reset(); //复位delay_18B20(1); //延时write_byte(0x33); //发送读序列号子程序sn1=read_byte(); //读取第一个序列号,应为16H;sn2=read_byte(); //读取第二个序列号,应为10H;sn3=read_byte(); //sn4=read_byte(); //sn5=read_byte(); //sn6=read_byte(); //sn7=read_byte(); //sn8=read_byte(); }//=======初始化============void tmstart (void){ow_reset(); //复位delay_18B20(1); //延时 //ReadSerialNumber();write_byte(0xCC); //跳过序列号命令,对所有器件有效write_byte(0x44); //发转换命令 44H,}/**************读取ds18b20当前温度************/unsigned char ReadTemperature(void){ unsigned char tt[2]; Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x4E);//写入"写暂存器"命令WriteOneChar(RS); //写配置寄存器,格式为0 R1 R0 1,1 1 1 1delay_18B20(80); // this message is wery importantInit_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay_18B20(80); // this message is wery importantInit_DS18B20();WriteOneChar(0xCC); //跳过读序列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度 delay_18B20(80);tt[0]=ReadOneChar(); //读取温度值低位tt[1]=ReadOneChar(); //读取温度值高位T=((tt[0]&0xf0)>>4)|((tt[1]&0x0f)<<4)return(T);}}。