|
目前正在研制的系统为大功率光伏阵列特性测试仪,其主要用于对各种规格、容量的光伏阵列进行I-V特性的测试,为光伏系统(并网、发电)的选型提供必要的参 考。该系统需要人员采集光伏阵列的电压、电流、温度、日照等数据,由于该系统多用于野外,因此需要对所测得的数据进行存储以便进行I-V特性曲线的绘制及 光伏阵列在各种不同的日照和温度下特性的推演。数据的采集及存储可由系统控制芯片DSP通过串行接口USB118模块通讯,并辅以大容量USB存储设备来 完成。
在 所设计的系统中采用了西安达泰电子有限责任公司提供的USB118AD模块,其具有标准2.0协议及支持1G以上优盘的优点,这点非常适合于本系统经常在 野外应用的特点,并且随产品所提供的串行通讯程序也可以很方便的移植到所采用的DSP平台上,大大简化了本系统在数据存储方面的程序设计工作。
* USB118a 51汇编测试程序
* U盘文件读写模块以字节为单位进行U盘文件读写。
* MCS-51单片机汇编示例程序
* 硬件连接方式: 4线制串口(电源,地,输入,输出)
view plaincopy to clipboardprint?
- /*--------------------------------
- 初始化程序
- ---------------------------------*/
- ORG 0000H
- AJMP MAIN
- ORG 0100H
- /*--------------------------------
- 主函数
- ---------------------------------*/
- MAIN:
- MOV SP, #60H ;设置堆栈指针
- MOV TMOD,#20H ;计数器1工作在方式2
- MOV TH1, #0F3H ;晶振频率为24MHZ,波特率为9600
- MOV TL1, #0F3H
- ;MOV TH1, #0FAH ;晶振频率为11.0592MHZ,波特率为9600
- ;MOV TL1, #0FAH
- MOV PCON,#80H ;smod为1
- SETB TR1 ;启动计时
- MOV SCON,#40H
- /*---------------------------------------------------------------------
- 延时是由于本人所用的单片机和USB118A是同一电源供电,
- 起初上电复位后由于USB118A要进行U盘检测,延时大约让检测完成即可发送指令
- ----------------------------------------------------------------------*/
- MOV R1,#10H ;闪烁10次
- ML:
- LCALL DELAY
- LCALL DELAY ;延时
- LCALL DELAY
- LCALL DELAY
- DJNZ R1,ML
- //检测U盘是否连接正常
- USB_Detect:
- CLR EA ;关闭中断
- CLR REN ;关闭接收位
- MOV DPTR, #Detect ;检测U盘命令初址
- MOV R7, #66 ;R7定义为将要发送的字节数
- LCALL SEND ;调用发送子程序
- SETB REN ;打开接收位
- JNB RI,$ ;等待接收到数据
- CLR RI
- MOV A,SBUF ;接收应答码
- CJNE A,#04H,OUT1 ;04检测应答码,对则继续执行判断是否成功执行否则转错误处理
- JNB RI,$ ;等待接收到数据
- CLR RI
- MOV A,SBUF ;接收应答信号
- CJNE A,#01H,OUT1 ;01判断是否成功执行,成功则继续执行否则转错误处理
- //create file
- LCALL CRT
- JNB RI,$ ;等待接收到数据
- CLR RI
- MOV A,SBUF ;接收应答码
- CJNE A,#0AH,OUT1 ;0A检测应答码,对则继续执行判断是否成功执行否则转错误处理
- JNB RI,$ ;等待接收到数据
- CLR RI
- MOV A,SBUF ;接收应答信号
- CJNE A,#01H,OUT1 ;01判断是否成功执行,成功则继续执行否则转错误处理
文章来自网络
相关阅读:
嵌入式Linux学习之路 |
|