资源描述:
《【精品】单片机与pc通讯程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电子信息系统综合设计实验报告姓名:兰建学号:20082289班级:电0804-2分院:电气与电子工程分院2011年7月10曰一、实验目的:1.学习利用ADC0809实现模数转换的方法2.学习C语言编写单片机串口通讯程序3.学习用VB编写与PC通讯的程序二、实验环境:1.一台装有伟福6000的计算机。2.伟福Lab2000p实验箱3.两条USB转串口的串口线三、实验内容:实验题冃1:查询方式判别转换完成的模数转换实验实验题冃2:中断方式判别转换完成的模数转换实验实验题目3:采样周期由变量赋值设査的数据采集实验实验题目4:采样频率由键
2、盘输入设置的数据采集实验(选作)实验题冃5:采样频率由另一MCS-51通过串行通信设置的数据采集实验实验题冃6:采样频率由基于VisualBasic6.0开发的上位机程序(运行于PC机)通过串行通信设置的数据采集实验,有能力的学牛再实现数据的动态曲线显示和Access数据库存储四•实验结果1.采样频率由键盘输入设置的数据采集实验实验步骤:编写源程序并编译、连接,程序运行示:调节电位器输出的幅值,观察LED显示情况;观察指示灯闪烁频率(即采样频率),并与键盘输入的采样频率作对比,验证定吋/计数器T0的设置是否正确。实验现象:数据采集
3、结果(OO'FFH)在最右边2位LED显示小灯跟随设置的频率闪烁程序流程图如下:实验源程序代码如下:/*写操作启动A/D转换,读操作得到转换结果由键盘输入采样频率(2位十进制数0~99Hz,各个位的数值分别送6字节显示缓冲区buff低两位)根据键盘输入的采样频率换算采样周期并初始化定时/计数器T0(方式1)定时时间到启动A/D转换,为了直观感受釆样频率同时切换指示灯亮灭状态A/D转换结束后在ADC0809芯片的EOC引脚上产生下降沿跳变*/#ineludewhile(CNT—!二0)#inelude4、・h>for(j=100;j!=0;j—);#include}#defineucharunsignedchar/*定时器中断服务程序*/^defineLEDLen6voidtimerO()interrupt;1xdataucharcon_0809_at_0x9000;{//AD控读入口m二100;xdataucharOUTBTT_at_0x8002;THO=(65536-5000)/256;//位控制口TLO=(655365000)%256;〃装载计数器初值xdataucharOUTSEG_at_0x8004
5、;10ms//段控制口m=m/feq;//改变频率xdataucharINat0x8001;if(n++==m)//键盘读入口{ucharRcvBuf;//接收缓冲con_0809二0;//启动AD转换uchardatan;//定时计数while(EOC);//等待转换完成uchardatam;Flag_Read=l;uchardatafeq;//10ms的倍数n二0;uchardatakey[]={0x00,0x00};}uchardata}LEDbuff[6]={0x00,0x00,0x00,0x00,0x00,0x00};/
6、*数码管显示函数*/codeucharLEDMAP[]J—voidDisplayLEDO/I0x3f,0x06,0x5b,0x4f,Iuchari;0x66,0x6d,0x7d,0x07,ucharPos;0x7f,0x6f,0x77,0x7c,ucharLED;0x39,0x5e,0x79,0x71Pos=0x20;//从左边开始显示};//八段管显示码for(i=0;i7、ff[i];0x13,0x12,0x11,0x10,OUTSEG=LED;OxOd,0x0c,0x0b,0x0a,OUTBIT=Pos;//显示一位八段管OxOe,0x03,0x06,0x09,Pos»=1;//显示下一位OxOf,0x02,0x05,0x0&}0x00,0x01,0x04,0x07}};//键码定义/*扫描按键按下悄况*/sbitFlag_Road=Pl0■9//定时器中断标志ucharTestKey()sbitHasRcv=P11;//接收标志{sbitHasTxd=P12;//发送标志OUTBTT=0;//输
8、出线置为0sbitEOOP「3;return(~IN&OxOf);//读入键状态(高四位/*延时函数*/不用)voidDelay(ucharCNT)}{/*获得按下按键键值*/ucharj;unsignedcharGetKey()ucharPos;