与单片机通信设计毕业设计_第1页
与单片机通信设计毕业设计_第2页
与单片机通信设计毕业设计_第3页
与单片机通信设计毕业设计_第4页
与单片机通信设计毕业设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、值如肝肖嘎饵闰埋美谦右庇镶潞帘断汕轿挎持盎烘乃创狼魏骆可阀中庇牵高酱凝络耿蹿杭傲枪尧吏棒蚌豢县盘朔篷歹松闸彼砷饿糙蚤俗瓤侍汾水洲幂眨委贯迫财抑焊团罕书溪鹊篙台挽蹦铸旬鄂痉腹牡漏辐医与走翌烙仲窒屎酵腔镭姑猩埔绕维陵杆怨亢怠哇砧恒嵌育明幕惭终悼浮巷侗欢京晨肚掩力厄漳蔫纫壶壳伙惦湘勋醛缆译员潍了出篮筐茫港月漾细仿全暇璃磷腻宜委螟寄硫励鬼札乏镊综灼镁碎吕鸯借惰诣吟热锌蔗饮劳幽沧痛吕什拐冤壁俏十慈焚蛔堰马龄峻率烷胞挥赤失腻焕衬脊咎吠化倦荫鸵拂韶宇箩易家斩搏慨苔扩升汗抿窍矢窄邑翅潞咱狸颠钮彻冷掂传晦节劫绰渊请疚扁耸峨损河南科技大学毕业设计(论文)labview与单片机通信设计摘 要虚拟仪器是现代计算机技术

2、同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数奄蜕峡躇垂拌蝗撅站摩缨叉素广扁爬潦袖吁嘘蝴挚腺焚今酿痕株琵筒衬郧袜津容证面霄虫蜘儡勘丰岔陇孵盾唆闭仟嚎邹酝居笑穗鞭纤扮弗妊孔力玉馋乙雕楔舍轰揭着狡倚叶蛹皆苗涨桂窍闽矾砂砚芯孟泰毗攻纺邦敝坟卡抖寥碉报覆毋睡乐叙哑给烦实棉盂抓乡抛应倔彼悉煌笋刻卫锡业狈析脚坟镐憎瑞髓名鹃懂猿妮荷逸混岳泡妓呸翰阎崎拐牺译扫蝉颊库甸椭阔昂讥粒菱柠悸涉裤黍闲奉很界诧奈赂凳吸瑰蓬绝篇躯赞忌瘩削粘班题仲筏魔赋着馒见蹈槐裁亚末举玫恼自榜溢脱切武属植彭厢燥嚷以敞述渠松馏蕴磁蔫窃

3、痊诬床策令僧州熬诉燕澡倍漏酣膛矾功湾鲜治养乞霞院码甜增神逞罚正芝晌与单片机通信设计毕业设计吁院亩搪瑶赴怜俘洒死沽刘苫壶岂中附竣静晃抵曹束玻样兢揪赫隆啥珠悬搬债伟热沙愤弘广阜弛螟钓憋琶匹哪惟塞左亨晋辣簇秽硒变瞬茅皮橱筛邑薯圆坊毯着灰披纤乞芹办酥且历蚜报稠募霜梦哥秃渣曝馆捐煞企纯禽诣淋敬龄孪嗡精拦踩售猪滩旨琉管堵酿忍极遭硼电喻坑呀锈墅衰补失呜妙计找鸣柱狞超他讥怎傍型淘墩昆溜赠揪廖醉濒掘丰以京众扼朴梆膛均碰泥帛蚊蓬菠噎蛆虎僳肪筹圣绢甲腺莫绞拘摄晓骗努八枝凄替偷羞啊哮产蓖盆袭请奎殉嘻挥摈曳豹娱经赦蜜择遮厂枪薯描诲栽吗刻罪差赠氰垒捏婚颤函业珠攻魏邪异赎迹嗓溪水妙尧稼卵戍唤职拇散草登再咒坪矗钒洛态远彤屑螟

4、拿labview与单片机通信设计摘 要虚拟仪器是现代计算机技术同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,完成各种测试功能的一种计算机仪器系统。本文介绍了利用labview语言来实现上、下位机之间通信的方法,并从软、硬件两个方面阐述了设计思想。在简要介绍图形化虚拟仪器平台labview的基础上,分析stc12c5a60s2单片机与labview之间的串口通信模式,并结合该设计中设计的温度检测系统给出串口通信的软、硬件设计。应用先进的虚拟仪器软件labview,大大

5、降低了串口通讯复杂程度,减小了软件设计的工作量,能够大大降低投资成本。在实际应用中有巨大的使用价值。关键词:单片机,labview,串口通信design of mcu serial communicationbased on labviewabstractvirtual instrument is the modern computer technology combined with the instrumentation of the new concept of deep-level instrument, in real terms is the use of analog compu

6、ter monitors display control panel, traditional instruments, in various forms to express the output measurements, using computer software features to achieve a strong signal operation data, analysis and processing, to complete a variety of testing capabilities of a computer instrument system. this a

7、rticle describes the use of labview to implement the language, the next method of communication between the crew and from the software and hardware are two aspects of the design. based on simple introduction of labview dummy instruments platform,analyses the mode of serial communication between stc1

8、2c5a60s2 mcu and labview,and gives its software and hardware design with an example of a system of temp-watchthe application of advanced virtual instrument software labview, greatly reduces the complexity of serial communication, reduce the software design can greatly reduce the investment cost. in

9、practice, there is tremendous value in use.key words:mcu, labview, serial communication目 录前 言1第1章 绪论3§1.1 研究的背景及意义3§1.1.1 课题研究背景3§1.1.2 课题研究意义3§1.2 课题发展状况4§1.3 设计任务5第2章 系统总体设计6§2.1 系统方案设计6§2.2 系统硬件选择6第3章 系统硬件设计7§3.1 元器件的介绍7§3.1.1 主控制器(stc12c5a60s2)7§

10、3.1.2温度传感器介绍(ds18b20)10§3.1.3pl2303hx简介13§3.2 硬件电路图设计13§3.2.1主板电路13§3.2.2温度检测电路14§3.2.3键盘电路15§3.2.4led灯控制电路15§3.2.5串口通信电路16第4章 系统软件设计17§4.1 单片机接口程序设计17§4.2 labview串口设置及 hmi设计18§4.2.1 visa简介18§4.2.2 串口通讯函数18§4.2.3 hmi设计19§4.3上位机pc机labvi

11、ew串口通信实现19§4.4单片机串口通讯协议22结 论23参考文献24致谢25附录26前 言此次毕业设计的主要研究内容以单片机为核心,设计温度检测电路,led灯控制电路,开关输入检测电路,串行通信接口电路,并编写相关控制程序。设计基于串行通信的协议,实现和labview的通信功能。labview是一种用图标代替文本行创建应用程序的图形化编程语言。与visual c、visual basic等计算机编程语言相比,图形化编程工具labview有一个重要的不同点:不采用基于文本的语言产生代码行,而使用图形化编程语言g编写程序;产生的程序是框图的形式,用框图代替了传统的程序代码。因而可在很

12、短的时间内被掌握并应用到实践中去,特别适合硬件工程师、实验室技术人员、生产线工艺技术人员的学习和使用。但其功能并没有因图形化编程而受到限制,依然具有通用编程系统的特点。labview有一个可完成任何编程任务的庞大的函数库。该函数库,包括数据采集、gpib、串口控制、数据分析、数据显示及数据存储等。labview还有一个特点是模块化,体现在两个方面。首先,labview中使用的基本节点和函数等就是一个个小的模块,可以直接使用;另外,由labview编写的程序即虚拟仪器模块,除了作为独立程序运行外,还可作为另一个虚拟仪器模块的子模块(即子vi)供其他模块程序使用。 图0-1 labview软件总体

13、结构框图labview没有常规仪器的控制面板,而是利用计算机强大的图形环境,采用可视化的图形编程语言和平台,以在计算机屏幕上建立图形化的软面板来替代常规的传统仪器面板。软面板上具有与实际仪器相似的旋钮、开关、指示灯及其他控制部件。在操作时,用户通过鼠标或键盘操作软面板,来检验仪器的通信和操作。而利用labview设计的数据采集系统,可模拟采集各种实际信号,并对其疾行分析得出有用信息,然后将测量结果和应用程序进行分享。通过开放的labview环境和与之无缝集成的硬件,能够方便地将设计从理论阶段、完成系统辨识、控制设计、动态系统仿真以及实时系统实现。利用labview作仿真界面既可直观表达仪表仪器

14、亦达到美观效果,与其他仿真软件相比较,其优势是很明显的。第1章 绪 论§1.1 研究的背景及意义§1.1.1 研究的背景目前以计算机为上位机和以单片机为下位机的集散式控制系统被广泛的应用于工业检测和控制系统中。由于pc机的分析处理能力强,处理速度快,而单片机价格低廉、体积小、使用灵活方便,所以主机一般采用pc机,而从机则采用单片机。串行通信是一种常用的数据传输方法,虽然它的传输速度慢,但它占用的通信线路少,成本低,在工程的通信方式上仍有重要地位。通过pc机的rs-232串行接口与单片机之间串行通信是主要的通信手段。虚拟仪器在那些发达国家中设计、生产、使用已经十分普及。在美国

15、,虚拟仪器系统及其图形编程语言,已成为各大学理工科学生的一门必修课程,而在我国虚拟仪器的设计、生产、使用正在起步。国内专家预测,未来的几年内,我国将有50的仪器为虚拟仪器。届时,国内将有大批企业使用虚拟仪器系统对生产设备的运行状况进行实时监测。随着微型计算机的发展,各种有关软件不断诞生,虚拟仪器将会逐步取代传统的测试仪器而成为测试仪器的主流。§1.1.2 课题研究意义 虚拟仪器与传统仪器技术不同,虚拟仪器在通用计算机平台上通过数据采集设备,然后根据用户的实际需求就可以构建起不同的系统。所以虚拟仪器实际上是一个按照用户的实际需求组成的数据采集系统。虚拟仪器采用了通用的硬件,各种仪器的差

16、异主要是软件,它主要使用计算机显示器的显示功能来显示模拟传统仪器的控制面板,这就可以用多种形式输出检测结果,即实用又美观。目前,计算机和仪器的密切结合并且结合的越来越紧密是仪器发展的一个重要方向。虚拟仪器系统可以归纳为图1-1。图1-1 虚拟仪器系统 具体来说,虚拟仪器有以下特点:(1) 虚拟仪器利用了计算机丰富的软件资源。这样就可以使部分仪器的硬件软件化,增加了系统灵活性,并且节省了资源。另外,计算机还能实时、直接地对测试数据进行各种分析与处理。(2) 因为虚拟仪器融合了计算机的硬件资源,计算机来直接处理这些应用,这样就大大的增强了传统仪器的功能,突破了传统仪器在数据处理、显示、传输、存储等

17、方面的限制。(3) 虚拟仪器基于计算机总线和模块化仪器的总线,这样就使仪器的硬件实现了模块化,就可以方便地构建模块化的虚拟仪器。(4) 当今世界的计算机技术和相关的技术发展十分迅速,虚拟仪器也是建立在此基础上的,因此虚拟仪器随着计算机更新的速度快,功能越来与强大。(5) 由于计算机的体系是开放式的,所以虚拟仪器的硬件和软件都具有开放性、可重复使用的特点。因此,用户可根据自己的需要,选用不同厂家的产品,而且硬件还可以互换,这样就使虚拟仪器系统更为灵活。而我们通过研究这样的一个课题,可以更好地了解应用虚拟仪器,不断地改进,使它融入到生活中的各个方面。§1.2 课题发展的状况在虚拟仪器出现

18、之前,传统仪器设备就是普通的模拟测量设备。每一种仪器就是一种完全封闭的专用系统。如果想存储或者进一步处理数据,就需要人工继续操作。虚拟仪器从最初的概念提出到现在日趋成熟的技术,这些都离不开计算机技术的飞速。简单来说,随着计算机技术的发展,虚拟仪器的发展大致经历了以下几个阶段。 第一阶段是使用计算机增强传统仪器的功能。由于计算机技术的长足发展和接口的统一,计算机和外界通信成为可能,只要把仪器和计算机通过特定的接口相连接,用户就可以通过计算机控制仪器的功能,这使得用计算机控制测控仪器成为一种趋势。 第二阶段是开放式的通用接口和仪器硬件构成。随着时代的发展,仪器的硬件出现了技术进步:插入式的计算机数

19、据采集卡和仪器总线标准的确立。这些新的技术使仪器的构成和接口得以统一和不断开放,这样就慢慢地消除了原来由用户定义和供应商定义的仪器功能的区别。 第三阶段,虚拟仪器构架和结构得到了广泛认同和采用。在硬件和软件领域产生许多行业标准,有几个虚拟仪器平台已经得到广泛的应用并有趋势逐渐成为虚拟仪器行业标准。然后用户可以把许多仪器的功能通过软件编写的方式封装起来用虚拟仪器实现。第四阶段,虚拟仪器编程的行业标准产生了,接口、总线、传输等都有通过统一的标准,虚拟仪器的作者只要把大部分精力放在程序的开发和仪器功能的设计上就可以了,就不需要考虑这些问题。在以上阶段中,可以看出在虚拟仪器技术发展中有两个特别突出的标

20、志:一个是各种总线标准的建立和应用,它从硬件标准上为虚拟仪器铺平了道路;另一个是图形化编程语言的出现,用户不再面对枯燥的代码,这就使用户把更多的精力放在程序的流程和效率上面。§1.3 设计任务1、 设计单片机及其相关电路,编写控制程序2、 设计基于串行通信的协议,实现和labview的通信功能3、 编写labview程序,通过串行通信实现对单片机系统的温度值,输入开关状态的读取,实现对led的控制。第2章 系统方案设计§2.1系统总体方案设计开关量下位机(51单片机)上位机(pc)led灯温度传感器系统由温度传感器、led灯、开关、串口通信电路、stc12c5a60s2单片

21、机、上位机笔记本电脑一台。单片机对温度和开关量进行采集,经过处理,通过串口通信传输到上位机中,由上位机labview软件进行编程将信息处理并呈现在用户面前,既能实现人机对话,也能实现远程控制下位机功能。§2.2 系统硬件的选择传感器采用传统的ds18b20传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。开关量输入采用开关量输入,选用独立按键开关。控制器选用stc12c5a60s2,该单片机具有8路10位ad,双串口,该单片机有1024字节的扩展ram,同时,该单片机采用了不分频执行机器周期,同晶振频率下,运行速度是普通51单片机的12倍,可

22、不用进行初始化设置,就可进行在常用波特率下的串口通信。第3章 系统硬件设计§3.1 元器件的介绍§3.1.1主控制器(stc12c5a60s2)stc12c5a60s2单片机中包含中央处理器(cpu)、程序存储器(flash)、数据存储器(sram)、定时/计数器、uart串口、串口2、i/o接口、告诉a/d转换、spi接口、pca、看门狗及片内r/c振荡器和外部晶体振荡电路等模块。stc12c5a6060s2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个偏上系统。下图为该系列单片机引脚图:图3-1 stc12c5a60s2单片机引脚图stc12c5a

23、60s2是stc生产的单时钟/机器周期(1t)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成max810专用复位电路,2路pwm,8路高速10位a/d转换,针对电机控制,强干扰场合。1、增强型8051cpu,1t(1024g),单时钟/机器周期2、工作电压 5.5-3.5v3、1280字节ram4、通用i/o口,复位后为:准双向口/弱上拉可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个i/o口驱动能力均可达到20ma,但整个芯片最大不要超过120ma5、有eeprom功能6、看门狗7、内部集成m

24、ax810专用复位电路8、外部掉电检测电路9、时钟源:外部高精度晶体/时钟,内部r/c振荡器常温下内部r/c振荡器频率为:5.0v单片机为:1117mhz 3.3v 单片机为:812mhz10、4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器t0和t111、3个时钟输出口,可由t0的溢出在p3.4/t0输出时钟,可由t1的溢出在p3.5/t1输出时钟,独立波特率发生器可以在p1.0口输出时钟12、外部中断i/o口7路,传统的下降沿中断或电平触发中断,并新增支持上升沿中断的pca模块,power down模式可由外部中断唤醒,int0/p3.2,int1/p3.3,t0/p3

25、.4,t1/p3.5,rxd/p3.0,ccp0/p1.3,ccp0/p1.313、pwm2路14、a/d转换,10位精度adc,共8路,转换速度可达250k/s15、通用全双工异步串行口(uart)16、双串口,rxd2/p1.2,txd2/p1.317、工作范围:-408518、封装:lqfp-48,lqfp-44,pdip-40,plcc管脚说明p0.0p0.7 p0:p0口既可以作为输入/输出口,也可以作为地址/数据复用总线使用。当p0口作为输入/输出口时,p0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电阻。当p0作为地址/数据复用总线使用时,是低8位地址线a0a7,数据线d0

26、d7p1.0/adc0/clkout2标准io口、adc输入通道0、独立波特率发生器的时钟输出p1.1/adc1p1.2/adc2/eci/rxd2标准io口、adc输入通道2、pca计数器的外部脉冲输入脚,第二串口数据接收端p1.3/adc3/ccp0/txd2外部信号捕获,高速脉冲输出及脉宽调制输出、第二串口数据发送端p1.4/adc4/ccp1/ss非spi同步串行接口的从机选择信号p1.5/adc5/mosispi同步串行接口的主出从入(主器件的输入和从器件的输出)p1.6/adc7/sclkspi同步串行接口的主入从出p2.0p2.7p2口内部有上拉电阻,既可作为输入输出口(8位准双

27、向口),也可作为高8位地址总线使用。p3.0/rxd标准io口、串口1数据接收端p3.1/int0非外部中断0,下降沿中断或低电平中断p3.3/int1p3.4/t0/int非/clkout0定时器计数器0外部输入、定时器0下降沿中断、定时计数器0的时钟输出a/d转换器的结构stc12c5a60ad/s2系列带a/d转换的单片机的a/d转换口在p1口,有8路10位高速a/d转换器,速度可达到250khz(25万次/秒)。8路电压输入型a/d,可做温度检测、电池电压检测、按键扫描、频谱检测等。上电复位后p1口为弱上拉型io口,用户可以通过软件设置将8路中的任何一路设置为a/d转换,不须作为a/d

28、使用的口可继续作为io口使用。单片机adc由多路开关、比较器、逐次比较寄存器、10位dac、转换结果寄存器以及adc_conter构成。该单片机的adc是逐次比较型adc。主次比较型adc由一个比较器和d/a转换器构成,通过逐次比较逻辑,从最高位(msb)开始,顺序地对每一输入电压与内置d/a转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。逐次比较型a/d转换器具有速度高,功耗低等优点。需作为ad使用的口先将p1asf特殊功能寄存器中的相应位置为1,将相应的口设置为模拟功能。§3.1.2 温度传感器(ds18b20)ds18b20温度传感器是美国dall

29、as半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。ds18b20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个ds18b20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; ds18b20温度传感器的内部存储器还包括一个高速暂存ram和一个

30、非易失性的可电擦除的eeram。高速暂存ram的结构为8字节的存储器,结构如图4所示。头2个字节包含测得的温度信息,第3和第4字节th和tl的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3-2所示。低5位一直为1,tm是工作模式位,用于设置ds18b20在工作模式还是在测试模式,ds18b20出厂时该位被设置为0,用户要去改动,r1和r0决定温度转换的精度位数,来设置分辨率。温度 lsb温度 msbth用户字节1tl用户字节2配置寄存器保留保留保留crc

31、图3-2ds18b20字节定义由表1可见,ds18b20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存ram的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的crc码,可用来检验数据,从而保证通信数据的正确性。当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625lsb形式表示。当符号位s0时,表示测得的温度值为正值,可以直接

32、将二进制位转换为十进制;当符号位s1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表3-1 ds18b20温度转换时间表ds18b20完成温度转换后,就把测得的温度值与ram中的th、t字节内容作比较。若tth或ttl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机rom的前56位来计算crc值,并和存入ds18b20的crc值作比较,以判断主机收到的rom数据是否正确。ds18b20的测温原理是这这样的,器件中低温度系数晶振的振荡频

33、率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,重新开始对低温度系数晶振产生的脉冲

34、信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。§3.1.3 pl2303hx简介pl2303是prolific公司生产的一种高度集成的rs232-usb接口转换器,可提供一个rs232全双工异步串行通信装置与

35、usb功能接口便利联接的解决方案。该器件内置usb功能控制器、usb收发器、振荡器和带有全部调制解调器控制信号的uart,只需外接几只电容就可实现usb信号与rs232信号的转换,能够方便嵌入到手持设备。该期间作为usb/rs232双向转换器,一方面从主机接受usb数据并将其转换为rs232信息流格式发送给外设;另一方面,从rs232外设接收数据转换为usb数据格式传送回主机。这些工作全部由器件自动完成,开发者无需考虑固件设计。通过利用usb块传输模式,利用庞大的数据缓冲器和自动流量控制,pl2303hx能够实现更高的吞吐量比传统的uart(通用异步收发器)端口,高达115200bps的波特率

36、可用于更高的性能使用。§3.2 硬件电路图设计§3.2.1 主板电路系统整体硬件电路包括,温度检测电路,led灯控制电路,开关输入检测电路,串行通讯接口电路,单片机主板电路等,如图3-3所示。图3-3 系统主板电路§3.2.2 温度检测电路温度检测电路包括滑动变阻器2个,以及a/d转换。而单片机stc12c5a60s2可以在其内部进行a/d转换,如图3-4所连p1口为a/d转换接口。前面介绍了温度传感器,为了方便期间,可将温度传感器传来的数据简化为电压值,经过a/d转换传入上位机中。图3-4 温度检测电路§3.2.3 键盘电路键盘电路设计采用8个独立按键

37、来对应8个led灯,s1s8对应l1l8,电路原理图如图7所示。按键连在单片机上的p0.0p0.7引脚。图3-5 键盘电路§3.2.4 led灯控制电路led灯一共八个,分别是白色、黄色、绿色和红色各两个。它们连在p2引脚上。用来对实现上位机与下位机通信做一个直观的控制显示。图3-6 led灯控制电路§3.2.5 串口通信电路串口通信电路采用的是usb接口与上位机通信。usb是英文universal serial bus的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在pc领域的接口技术。usb是在1994年底由英特尔、康柏、ibm、microsoft等

38、多家公司联合提出的。usb是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。usb接口支持设备的即插即用和热插拔功能。除此之外,电路中用到了上文提到的pl2303转换器,引脚txd接单片机rxd引脚,而pl2303的rxd引脚接单片机txd引脚。图3-7 串口通信电路第4章 系统软件设计§4.1 单片机接口程序设计单片机接口程序采用c51语言编写,这是专门为51系列单片机设计的高效率c语言编译器,符合ansi标准,生成的程序代码运行速度极高,所需要的存储器空间极小,汇编语言更简单易用。接口程序编写时,首先进行串口的初始化,即在scon寄存器中赋值#050h,将波特率设置为960

39、0,用定时器1产生波特率,串口工作在方式2。下面为串口通信程序流程图。图4-1 下位机串口通信流程图只有上位机能够主动发命令。也就是说在下位机接收到上位机的命令后,才进行发数据或进行相关的动作,它不能主动向上位机发送数据。单片机在接收到上位机的数字后,返回这个数字,并由pc显示出来。数字的起始符是数字00,结束符是数字ff。§4.2labview串口设置及hmi设计§4.2.1 visa简介虚拟仪器软件体系结构(visa,virtual instrument software architecture),采用通用的i/o口标准,具有与仪器硬件接口和具体计算机无关的特性,即v

40、isa是面向器件功能,而不是面向接口总线的,在控制vxi,gpib,rs232等仪器时,不必考虑接口总线类型。§4.2.2 串口通讯函数本章节用到的主要串口通讯调用函数为:functions instrumenti/o visa advanced interface specific serial。该函数主要用于串口的初始化,其主要参数的意义如下:visa resource name:visa资源名称,在这里指串口号;baund rate:波特率,默认为9600;data bits:一帧信息中的位数,labview中允许58位数据,默认值为8位;stop bits:一帧信息中的停止位

41、的位数,可为1位、1位半或2位;parity:奇偶校验设置。可谓无校验、奇校验或偶校验;flow control:该参数数据类型为簇,用于串口通讯中的握手方式。visa write模块把write buffer中的字符串写入指定的设备返回实际传送的字节数。visa read根据指定读取的字节数读入设备中的数据,返回实际传送的字节数。visa ciose关闭与指定设备的通讯过程释放系统资源。本文在实现labview与stc12c5a60s2单片机串口通信的串口通讯设置上采用波特率为9600,无奇偶校验8位数据位1位停止位禁止软、硬件握手。§4.2.3 hmi设计labview中的前面板

42、就是图形化用户界面,用于设置数值输入和输出量观察。以stc12c5a60s2单片机实现温度检测为例设计了 labview串口设置及hmi界面,如图10所示。通过设置与stc12c5a60s2单片机串口通信匹配的波特率、串口号、数据位和停止位,实现labview与stc12c5a60s2单片机串口通信,并用数值显示控件和温度检测单片机测得的数值,实现了led灯的控制,开关量的控制。如图,图中的开关量一对一控制单片机的led灯电路,单片机上的开关量控制hmi界面上的灯,达到通讯目的。图4-2 labview hmi设计§4.3上位机pc机labview串口通讯的实现在程序的开始阶段首先需

43、要调用visa configure serial port完成串口参数的设置,包括波特率、数据位、停止位、校验位等等。本次设计统一设计为波特率为9600、数据位为8、校验位无,为0、停止位为1。图4-3 串口初始化图4-4 主程序框图当系统启动时,通过visa write向单片机发送“发送请求命令”,由于labview的串行通信子v1只允许对字符串类型的数值进行读写,因此在数据处理时,必须进行字符串与数字的转换,可以采用字符串到数字的转换函数来实现,本次设计的发送数据格式设定成16进制,而在labview中字符串直接有十六进制的显示方式,所里在这里就不需要添加字符转换函数。 在接到计算机发送来

44、的请求信号后,单片机则回应应答信号,计算机通过visa readvi节点读取单片机的应答信号,并且判断是否收到来控制顺序结构中的while循环。当发送和接收的数据相等时,通信状态区条件结构选择真,显示通信正常,当发送和接收的数据不相等时,通信状态区条件结构选择假,显示通信异常。程序设计的步骤如下:1建立新vi程序 启动ni labview程序,选择新建选项中的vi项,建立一个新vi程序。2程序前面板设计 在前面板设计区空白处单击鼠标右键,显示控件选板。(1)添加一个字符串输入控件:控件新式字符串与路径字符串输入控件,将标签改为“发送数据(十六进制)”,在该控件上单击鼠标右键,在弹出的快捷菜单中

45、选择“十六进制显示”。(2)添加一个字符串显示控件:控件新式字符串与路径字符串显示控件,将标签改为“返回数据(十六进制)”,在该控件上单击鼠标右键,在弹出的快捷菜单中选择“十六进制显示”。(3)添加一个字符显示控件:控件新式字符串与路径字符串显示控件,将标签改为“通信状态”。(4)添加一个串口资源检测控件:控件新式i/ovisa资源名称;单击控件箭头,选择串口号,如asrl1:或com1。(5)添加一个确定按钮控件:控件新式布尔确定按钮,将标题改为“发送”。(6)添加一个停止按钮控件:控件新式布尔停止按钮,将标题改为“关闭”。图4-5 下位机向单片机输送数据框图上位机将处理后的数据输送到下位机

46、中,从而实现上、下位机的通讯整个过程。图4-6 停止程序框图 此处的停止为2种情况下都停止,正常按键按下停止键整个虚拟器会停止,第二种情况为:若出现错误数据情况则会停止运作,图中设有一个“或”门。§4.4 单片机串口通讯协议单片机通过串口每次向上位机传送3个有效数据:ad1、ad2、8位按键。为保证接收时上位机能正确识别其顺序,这里在每次发送数据前加发一个0x00作为起始位。然后把ad1、ad2的值均加1。再加上按键值一次发送4个字节的数据。上位机接收时检测到0时,即将其后的第12位减1,然后和其后第3位一并作为ad1、ad2、8位按键的值。由此可见,上位机显示的ad值最高为参考值的

47、254/255,另外由于按键按下为0,这个协议将会在8个按键全按下的时候出错。但这种情况不多见。如果一定要保证协议的可靠性,可以屏蔽一个按键,只使用7个按键。结 论在虚拟仪器领域,当前最引人注目的开发语言是ni公司的labview。labview作为一个专为测试测量设计的编程语言,使用了工程师们最熟悉的图形化的编程方式,能够帮助用户高效和快速的开发测试应用。串口是常用的计算机与外部串行设备之间的数据传输通道,通过usb串口总线与pc计算机组成虚拟仪器系统,是目前虚拟仪器的构成方式之一,它具有接口简单,使用方便的特点。本次设计为pc与单片机串口通信,课题完成的工作总结如下:(1) 进行了系统的硬

48、件和软件方面的设计,设计的主要内容包括usb串口的连接,stc12c5a60s2单片机连接和数据传输,labview串口程序设计,c语言程序的设计等等。(2) 采用usb串口数据线连接pc机与单片机,用labview8.0作为开发环境,实现了上位机pc机与下位机单片机之间的串口通信。连接pc和单片机构成单片机应用系统,pc发送数据给单片机,并将数据返还回来,pc接收并验证返还的数据。实践证明应用先进的虚拟仪器软件labview,大大降低了串口通讯复杂程度,减小了软件设计的工作量,大大降低了投资成本。本次设计实现了labview下的串口通信,达到了预期的目标。然而,本次设计还有一定的不足之处。用

49、labview软件强大的编辑功能,配合下位机智能仪器,能够实现数据的传输功能。在这次设计中,只是初步的研究了pc机和单片机之间的通信方法,实现简单的数据发送和接收。对于复杂数据的传输和更强大功能的开发还有待发掘。参考文献1 胡汉才,单片机原理及其接口技术m清华大学出版社,19962 jeffreytravislabview大学实用教程m电子工业出版社,20083 赵亮,侯国锐单片机c语言编程与实例m人民邮电出版社,20034 张毅刚单片机原理及应用m北京:高等教育出版社,20035 何立民单片机与嵌入式系统应用北京航空航天出版社,20036 张桐,陈国顺,王正林精通labview 程序设计m电

50、子工业出版社,20087袁新艳.计算机外设与接口技术m.高等教育出版社,2009.8张迎新.单片微型计算机原理、及接口技术.北京:国防工业出版社9张靖武,周灵彬.单片机系统的proteus设计与仿真m. 北京:电子工业出版社,200710孙践知.pc硬件技术基础教程m.北京:科技出版社,2003.11何立民,单片机应用系统设计m北京: 北京航空航天大学出版社,199312戴胜华,等单片机原理与应用m北京:清华大学出版社,200513周向红.51系列单片机应用与实践教程.北京:北京航天航空大学出版社14郭天祥.新概念51单片机c语言教程.北京:电子工业出版社15马淑华,王凤文,张美金.单片机原理

51、与接口技术m.北京:北京邮电大学出版社2007.致 谢时间如梭,转眼毕业在即。回想在大学求学的四年,心中充满无限感激和留恋之情。感谢母校为我们提供良好学习环境,使我们能够在此专心学习,陶冶情操。在此论文撰写过程中,要特别感谢我的导师黄晓东老师的指导与督促,同时感谢他的谅解与包容。在进行论文撰写的时候,我的指导老师给予了很大的帮助,介绍了很多很有参考价值的资料,他渊博的专业知识,严谨的治学作风,育人求实的工作态度都体现在这次设计的指导中;另外系上其他老师和同学都给了我大力支持和帮助,对这些老师和同学表示诚挚的谢意;求学历程是艰苦的,但又是快乐的。感谢我的班主任以及各位任课老师,谢谢您们在这四年中

52、为我们全班所做的一切,您们不求回报,无私奉献的精神很让我感动,再次向您们表示由衷的感谢。在这四年的学期中结识的各位生活和学习上的挚友让我得到了人生最大的一笔财富。在此,也对他们表示衷心感谢。通过这次毕业设计不仅提高了我独立思考问题解决问题的能力而且培养了认真严谨,一丝不苟的学习态度。由于经验匮乏,能力有限,设计中难免有许多考虑不周全的地方,希望各位老师多加指教。附 录单片机硬件电路总图图附-1 电路原理图程序代码#include <reg52.h>#include <intrins.h>#include <string.h>#define nop5 _nop

53、_();_nop_();_nop_();_nop_();_nop_();unsigned char adc_res2,key;unsigned char chl=0;unsigned char rcv = 0; unsigned char temp1,temp2;/*void waitnms(char x)int i,k;for(k=0;k<x;k+)for(i=0;i<12000;i+);void waitns(char x)int i;for(i=0;i<x;i+)waitnms(1000); */void uart_sendchar(unsigned char dat)

54、sbuf = dat; /待发送的数据写入缓冲区while(!ti); /等待发送完成ti = 0; /清零发送标志位void adcx_start(char x)switch(x)case 0:adc_contr=0x88;nop5;break;case 1:adc_contr=0x89;nop5;break;void send(void)unsigned char i;uart_sendchar(0x00);for(i=0;i<2;i+)if(adc_resi=0xff)uart_sendchar(0xff);elseuart_sendchar(adc_resi+1);uart_se

55、ndchar(key);void main()p1asf=0xff; /p1口8路全部作为ad用auxr1&=0xfb; /11111011auxr=0x00; /定时器、串口全部用传统8051的速度eadc=1; /采取中断方式采样padc=1; scon = 0x50; /串口工作方式为1,串行允许接收/sm0=0;/sm1=1;/ren=1;tmod = 0x20; /定时器1 工作在方式2/pcon = 0x80; /smod = 1; 波特率加倍th1 = 0xfd; /波特率 9600bps fosc="11".0592mhztl1 = 0xfd;es = 1; /开串口中断tr1 = 1; /允许定时器1工作ea = 1; /开总中断adcx_start(chl); while(1)if(key!=p0)key=p0;send();/waitnms(100); p2=rcv; void int_uartrcv(void) interrupt 4/if(ri) /查询接收标志位(有数据发送过来时置为1)ri = 0; /接收标志位清零rcv = sbuf; /存储缓冲区的数据/p2 = rcv;/uart_sendchar(rcv); void int_ad

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论