本文介绍了基于单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用。本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机AT89S52来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块,和串行接口部分。该系统从机负责数据采集并应答主机的命令。8路被测电压通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据通过串行口MAX232传输到上位机,由上位机负责数据的接受、处理和显示,并用LED数码显示器来显示所采集的结果。软件部分应用VC++编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计。
上传时间: 2013-10-28
上传用户:18707733937
C函数速查手册 出版社:人民邮电出版社 《C函数速查手册》中所讲的C语言函数按照功能顺序和字母顺序进行排序,读者既可以按照功能顺序查找,也可以按照字母顺序学习。《C函数速查手册》不仅适合于C语言初学者学习使用,而且也可以作为中、高级C语言开发人员的参考手册。 目录 第1章 数学函数 1.1 _clear87函数:清除浮点状态字 1.2 _status87函数:取浮点状态字 1.3 abs函数:求整数的绝对值 1.4 acos、acosl函数:反余弦函数 1.5 asin、asinl函数:反正弦函数 1.6 atan函数:反正切函数 1.7 atan2、atan2l函数:计算Y/X的反正切值 1.8 cabs函数:计算复数的模 1.9 ceil函数:向上取整 1.10 cos函数:余弦函数 1.11 cosh函数:双曲余弦函数 1.12 div函数:求两个整数相除的商和余数 1.13 exp函数:指数函数 1.14 fabs函数:求浮点数的绝对值 1.15 floor函数:向下取整 1.16 fmod函数:计算x对y的模 1.17 frexp函数:将浮点数分为底数与指数 1.18 hypot函数:计算直角三角形的斜边 1.19 labs函数:取长整数的绝对值 1.20 ldexp、ldexpl函数:幂计算 1.21 ldiv函数:两个长整型数相除 1.22 log、logl函数:计算自然对数 1.23 log10、log10l函数:计算常用对数 1.24 max函数:求两个数中的最大者 1.25 min函数:求两个数中的最小者 1.26 modf、modfl函数:分割数为整数部分和小数部分 1.27 poly函数:计算多项式 1.28 pow函数:指数函数 1.29 pow10函数:指数函数 1.30 rand函数:随机数发生器 1.31 random函数:随机数发生器 1.32 randomize函数:初始化随机数发生器 1.33 sin函数:正弦函数 1.34 sinh函数:双曲正弦函数 1.35 sqrt函数:计算平方根 1.36 srand函数:初始化随机数发生器 1.37 tan、tanl函数:正切函数 1.38 tanh、tanhl函数:双曲正切函数 第2章 字符串函数 2.1 atof函数:把字符串转换成浮点数 2.2 atoi函数:将字符串转换成整型数 2.3 atol函数:将字符串转换成长整型数 2.4 ecvt函数:将浮点数转换为字符串 2.5 fcvt函数:将浮点数转换为字符串 2.6 gcvt函数:将浮点数转换成字符串 2.7 itoa函数:将整数值转换为字符串 2.8 isalnum函数:字母、数字判断函数 2.9 isalpha函数:字母判断函数 2.10 isascii函数:整数值的字符分类 2.11 iscntrl函数:控制字符判断函数 2.12 isdigit函数:数字判断函数 2.13 isgraph函数:打印字符判断 2.14 islower函数:小写字母判断函数 2.15 isprint函数:可打印字符判断函数 2.16 isptmct函数:标点符号判断函数 2.17 isspace函数:空格等判断函数 2.18 isupper函数:大写字母判断函数 2.19 isxdigit函数:十六进制数字判断函数 2.20 ltoa函数:将长整值转换为字符串 2.21 mbstowcs函数:将多字节字符序列转换成相应的宽字符序列 2.22 mbtowc函数:将多字节字符转换成相应的宽字符 2.23 stpcpy函数:复制字符串 2.24 strcat函数:拼接字符串 2.25 strchr函数:查找给定字符 2.26 strcmp函数:比较字符串 2.27 strcmpi函数:比较字符串 2.28 strcpy函数:复制字符串 2.29 strcspn函数:查找不包含指定字符集子串的段 2.30 strdup函数:将字符串复制到新建的位置 2.31 stricmp函数:比较字符串 2.32 strlen函数:获取字符长度
上传时间: 2014-12-25
上传用户:水口鸿胜电器
四位数码管从一数到F,LED就向下移一位c语言代码
上传时间: 2014-12-25
上传用户:1214209695
12864取模程序2
上传时间: 2013-11-10
上传用户:tou15837271233
12864取模程序
上传时间: 2014-12-25
上传用户:z1191176801
用单片机制作的高精度数显计数器 单片机C51计数器 要求:编写一个计数器程序,将T0作为计数器来使用,对外部信号计数,将所计数字显示在数码管上。 该部分的硬件电路如图所示,U1的P0口和P2口的部份引脚构成了6位LED数码管驱动电路,数码管采用共阳型,使用PNP型三极管作为片选端的驱动,所有三极管的发射极连在一起,接到正电源端,它们的基极则分别连到P2.0…P2.5,当P2.0…P2.5中某引脚输是低电平时,三极管导通,给相应的数码管供电,该位数码管点亮哪些笔段,则取决于笔段引脚是高或低电平。图中看出,所有6位数码管的笔段连在一起,通过限流电阻后接到P0口,因此,哪些笔段亮就取决于P0口的8根线的状态。 里面包含了:单片机C51计数器、计算器流程图、工作原理,
上传时间: 2013-11-16
上传用户:myworkpost
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
对大学物理实验中放电法测高阻的传统实验,采用单片机-计算机接口技术和模数变换技术,用计算机对数据进行处理得出结果。它既可以作为自动化测量设备,也可以作为高年级大学生课程设计或毕业设计题目,对于拓宽大学生知识面,提高实际动手能力和解决问题能力有一定的价值。
上传时间: 2013-11-03
上传用户:jichenxi0730
单片机软件,3D8光立方取模软件。
上传时间: 2013-11-21
上传用户:jyycc
lcd汉字取模软件
上传时间: 2013-10-09
上传用户:18752787361