优选VR虚拟现实本系统AVR与虚拟仪器Word下载.docx
- 文档编号:17093525
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:8
- 大小:18.73KB
优选VR虚拟现实本系统AVR与虚拟仪器Word下载.docx
《优选VR虚拟现实本系统AVR与虚拟仪器Word下载.docx》由会员分享,可在线阅读,更多相关《优选VR虚拟现实本系统AVR与虚拟仪器Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
2:
芯片内部的Flsah、EEPROM、SRAM容量较大;
3:
所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);
4:
多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;
5:
每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;
6:
内部资源丰富,一般都集成AD、DA模数器、PWM、SPI、USART、TWI、I2C通信口、丰富的中断源等。
目前支持AVR单片机编译器的语言主要有汇编语言、C语言、BASIC语言等。
其中C编译器主要有CodeVisionAVR、AVRGCC、IAR、ICCAVR等,C语言编译器由于它具有功能强大、运用灵活、代码小、运行速度快等先天性的优点,使得它在专业程序设计上具有不可代替的地位。
DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度。
信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。
因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。
DSl8B20的测量范围从-55摄氏度到+125摄氏度增量值为0.5摄氏度。
可在ls(典型值)内把温度变换成数字。
系统的硬件设计主要分为四个部分:
单片机、供电电路、DS18B20、串口通讯。
图1:
单片机部分电路设计
单片机部分的电路设计如图1所示,主要包括复位电路、ISP接口、JTAG接口、晶振电路、A/D参考电压电路(此部分用于AD采集,本系统并未使用)。
复位电路使用了钳位二极管钳位,防止触点电压过高烧坏RESET引脚。
图2:
供电电路设计图3:
DS18B20电路设计
供电电路如图2所示,供电电路使用了BM1117进行稳压,防止电压过高烧坏单片机,并可以提高系统适应电压的范围,即使供电电压高于单片机正常工作电压也可以由BM1117稳压到单片机正常工作电压的范围。
DS18B20的工作电路如图3所示,采用外部供电而非总线供电的方式,只需一个电容和两个电阻。
图4:
串口通信电路
串口通信采用Max232进行电平转换,电路原理图如图4所示,实物照片如图5所示。
图5:
实物照片
3、软件设计
下位机软件采用C语言编写,包括DS18B20的读写和串口通信两个主要部分。
上位机软件采用LabVIEW编写。
相关程序段如下所示:
获取DS18B20数据:
uint8gettemp(void)//读取温度值
{
uint8temh,teml,wm0,wm1,wm2,wm3,temp;
init_1820();
//复位18b20
write_1820(0xCC);
//跳过ROM
write_1820(0x44);
//温度变换
//跳过ROM
write_1820(0xbe);
//读暂存存储器
teml=read_1820();
//读数据
temh=read_1820();
wm0=teml>
>
4;
//只要高8位的低四位和低8位的高四位,温度范围0~99
wm1=temh<
<
wm2=wm1+wm0;
//16进制转10进制
returnwm2;
}
系统下位机主函数:
voidmain(void)
unsignedchari=0,tmp=0;
USART_Init(9600);
//波特率9600初始化串口
while
(1)
{
tmp=gettemp();
USART_Transmit(tmp);
}
上位机软件采用当前测试测量应用最广泛的LabVIEW编写。
LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
图形化的程序语言,又称为“G”语言。
使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。
它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。
使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
上位机的软件前后面板如图6所示:
图6上位机软件前后面板视图
4、结束语
本系统利用数字化的温度传感器进行温度的采集监控,利用串口通信将采集的温度数据传给电脑,利用电脑进行数据处理和显示。
既实现了采集监控的功能,又可以进行数据的进一步处理和分析。
附录:
主要下位机程序代码
18B20.c
#include"
config.h"
uint8count,wmh,wml;
//count为实际温度,wmh为温度的高位,wml为温度的低位
voidinit_1820(void)
{
SET_TEM_DDR;
//设置数据端口为输出
SET_TEM_SDT;
CLR_TEM_SDT;
delay_us(480);
//480us以上
CLR_TEM_DDR;
delay_us(20);
//15~60us
while(CHECK_TEM_SDT);
delay_us(140);
//60~240us
}
voidwrite_1820(uint8data)
uint8i;
for(i=0;
i<
8;
i++)
{
//从高到低,产生写间隙
if(data&
(1<
i))//写数据,先写低位
SET_TEM_SDT;
else
delay_us(40);
}
uint8read_1820(void)
uint8temp,k,n;
temp=0;
for(n=0;
n<
n++)
//从高到低再到高,产生读间隙
//设为输入
k=CHECK_TEM_SDT;
//读数据,从低位开始
if(k)
temp|=(1<
n);
temp&
=~(1<
delay_us(50);
//60~120us
//设为输出
return(temp);
Sio.c
voidUSART_Init(unsignedintbaud)
unsignedinttmp;
/*设置波特率*/
tmp=F_CPU/baud/16-1;
UBRRH=(unsignedchar)(tmp>
8);
UBRRL=(unsignedchar)tmp;
/*接收器与发送器使能*/
UCSRB=(1<
RXEN)|(1<
TXEN);
/*设置帧格式:
8个数据位,2个停止位*/
UCSRC=(1<
URSEL)|(1<
USBS)|(1<
UCSZ0)|(1<
UCSZ1);
//数据发送【发送5到8位数据位的帧】
voidUSART_Transmit(unsignedchardata)
/*等待发送缓冲器为空*/
while(!
(UCSRA&
(1<
UDRE)))
;
/*将数据放入缓冲器,发送数据*/
UDR=data;
//数据接收【以5到8个数据位的方式接收数据帧】
unsignedcharUSART_Receive(void)
/*等待接收数据*/
(UCSRA&
RXC)))
/*从缓冲器中获取并返回数据*/
returnUDR;
Main.c
unsignedchartmp=0;
while
(1)
谢谢阅读!
!
随心编辑,值得下载拥用!
专业│专注│精心│卓越
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优选 VR 虚拟现实 系统 AVR 虚拟仪器
![提示](https://static.bdocx.com/images/bang_tan.gif)