新闻中心

EEPW首页>嵌入式系统>设计应用> 基于C8051F340单片机的红外温度监测系统的设计

基于C8051F340单片机的红外温度监测系统的设计

作者: 时间:2011-09-13 来源:网络 收藏


如图3所示,上电后完成初始化配置,初始化配置语句可以使用Configuration Wizard来进行配置,的UART0接口(第二功能)固定在P0^4,P0^5,USB也只能使用特定端口,这里不需要对端口进行特别配置,将其端口模式设置为推拉即可,时钟设置为使用内部时钟模式,通过选择多路开关和倍频使USB时钟工作在48MHz。作为USB中的从设备,系统初始化设置完成后,执行等待命令DisplayLED(),然后在中断函数中根据USB中对要执行的操作进行判断。
UART0使用定时器2作为波特率发生器,并使能定时器0中断允许。USB初始化首先要调用USBXpress提供的API函数USB_Clock_Start(),然后对其端口初始化,这里使用USBXpress提供的默认设置即可。
由于数据为16位数据,串口每次接收其中8位,这里定义个数组In_Packet[3]后两位用来存放MSB,LSP的值,第一位存放传感器标志位。当In_Packet[3]数组数据更新后,调用USBXpress的API函数Block_Write(In_Packet,3)将数据发送给上位机。
2.3 上位机软件
USBXpress提供VC6.0进行USB通信的动态链接库,这里采取了静态方法加载动态链接库的形式,这样需要在编译选项中把USBXpress提供的SiUSBXp.lib路径添加进去,并在需要调用时添加头文件siusbxp.h。
程序依照USBXpress提供的API函数编写,在程序界面初始化时调用SI_GetNumDevices()和SI_GetProductString()函数获取USB器件信息,由于传感器工作间隔200ms左右,这里设定50ms的定时器,在其响应函数中执行SI_Read(),当Buffer中有数据时就会将数据读取到定义好结构体当中去,并使用Format命令将其转换为字符串类型且按16进制方式将数据更新到编辑框中。

d.jpg



3 总结
系统基本实现了的采集和传输功能,并能通过VC6.0将数据保存,提供给matlab等数学分析软件进行数据分析,实验证明了利用CPLD可以很精确地实现对传感器的分时控制,利用USBXpress提供的API进行USB开发极大地简化了开发流程。
实验只进行了简单的框架搭建,这里只是对CPLD进行时分复用方法采集传感器数据并且使用利用USB总线与计算机进行通信的可行性进行了验证,完善稳定的系统仍需要大量的后期工作去完成。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭