网站大量收购闲置独家精品文档,联系QQ:2885784924

基于串口通信的数据采集系统课程设计.doc

基于串口通信的数据采集系统课程设计.doc

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据采集与实践 基于串口通信的数据采集系统 综合 应用电子技术 物理与电子技术学院 2010年6月28日 电工电子中心2009年5月绘制 基于串口通信的数据采集系统 一.任务解析(老师统一给出) 1、串口通信接口,单片机232接口与PC机232接口通信相关内容 2、单片机控制的ADC,电路,控制程序 3、上位机软件编写,VB基础,MSCOMM控件,代码分析 4、通信协议,为什么要通信协议,如何设计通信协议 5、温度(电压)数据采集系统设计实现 二.总要求(老师统一给出) 对【一】中5点任务,结合授课内容,查阅相关资料,进行实验验证,撰写书面报告(电子版)。考虑到同学们的实际水平,要求你们立足老师提供的现成资料,完成实验验证,同时自己再查阅一些资料后,对所掌握的资料进行合理的整理,完成报告,对创新不作要求。 三.实验内容 3.1串口通信(核心内容) ===================================================== //发送程序 ===================================================== void send_answer(unsigned char n, unsigned char *str) { unsigned char i,temp; temp=n; for(i=0;in;i++) temp += *(str+i); temp=~temp+1; uart_putc(:); uart_putc(hex_to_asc(n,1)); uart_putc(hex_to_asc(n,0)); for(i=0;in;i++) { uart_putc(hex_to_asc(*(str+i),1)); uart_putc(hex_to_asc(*(str+i),0)); } uart_putc(hex_to_asc(temp,1)); uart_putc(hex_to_asc(temp,0)); } ===================================================== //串口接收中断程序 ===================================================== void serial_int(void) interrupt 4 { static unsigned char i=0; static unsigned char num=0; static unsigned char rx_hlf=0; unsigned char rx_dat; if (RI) { rx_dat=SBUF; RI=0; switch (num) { case 0: if(rx_dat==:) num=1; break; case 1: if(rx_hlf){ rx_counter += asc_to_hex(rx_dat); rx_hlf = 0; num=2; } else { rx_counter = asc_to_hex(rx_dat)4; rx_hlf = 1; } break; case 2: if(rx_hlf){ rx_buff[i] += asc_to_hex(rx_dat); rx_hlf = 0; if(++irx_counter) { num=0; i=0; rx_finish_flag=1; } } else { rx_buff[i] = asc_to_hex(rx_dat)4; rx_hlf = 1; } break; default: num=0; break; } } } ===================================================== //接收完毕后指令译码、执行。通过SWITCH及其套用,可以定义很多 //想做的事 ===================================================== void tast() { unsigned char i,temp; unsigned int j=100,k=100; if(rx_finish_flag)

文档评论(0)

qqbbc1234 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档