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
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上传时间: 2013-10-21
上传用户:13788529953
a_bit equ 20h ;个位数存放处 b_bit equ 21h ;十位数存放处 temp equ 22h ;计数器寄存器 star: mov temp,#0 ;初始化计数器 stlop: acall display inc temp mov a,temp cjne a,#100,next ;=100重来 mov temp,#0 next: ljmp stlop ;显示子程序 display: mov a,temp ;将temp中的十六进制数转换成10进制 mov b,#10 ;10进制/10=10进制 div ab mov b_bit,a ;十位在a mov a_bit,b ;个位在b mov dptr,#numtab ;指定查表启始地址 mov r0,#4 dpl1: mov r1,#250 ;显示1000次 dplop: mov a,a_bit ;取个位数 MOVC A,@A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码
上传时间: 2013-11-06
上传用户:lx9076
工作原理 该装置电路原理见图1。由红外线传感器、信号放大电路、电压比较器、延时电路和音响报警电路等组成。红外线探测传感器IC1探测到前方人体辐射出的红外线信号时,由IC1的②脚输出微弱的电信号,经三极管VT1等组成第一级放大电路放大,再通过C2输入到运算放大器IC2中进行高增益、低噪声放大,此时由 IC2①脚输出的信号已足够强。IC3作电压比较器,它的第⑤脚由R10、VD1提供基准电压,当IC2①脚输出的信号电压到达IC3的⑥脚时,两个输入端的电压进行比较, 此时IC3的⑦脚由原来的高电平变为低电平。IC4为报警延时电路,R14和C6组成延时电路,其时间约为1分钟。当IC3的⑦脚变为低电平时,C6通过VD2放电,此时IC4的②脚变为低电平它与IC4的③脚基准电压进行比较,当它低于其基准电压时,IC4的①脚变为高电平,VT2 导通,讯响器BL通电发出报警声。人体的红外线信号消失后,IC3的⑦脚又恢复高电平输出,此时VD2截止。由于C6两端的电压不能突变, 故通过R14向 C6缓慢充电,当C6两端的电压高于其基准电压时,IC4的①脚才变为低电平,时间约为1分钟,即持续1分钟报警。
上传时间: 2013-12-19
上传用户:Breathe0125
第八章 labview的编程技巧 本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。 8.1 局部变量 严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。在labview这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。在一般的代码式语言中,情况不是这样的。例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。前面所介绍的labview内容中,只有移位积存器即可输入又可输出。另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。还有其他需要,因此labview引入了局部变量。
上传时间: 2013-10-27
上传用户:xieguodong1234
Keil C51 V8 专业开发工具(PK51) PK51是为8051系列单片机所设计的开发工具,支持所有8051系列衍生产品,,支持带扩展存储器和扩展指令集(例如Dallas390/5240/400,Philips 51MX,Analog Devices MicroConverters)的新设备,以及支持很多公司的一流的设备和IP内核,比如Analog Devices, Atmel, Cypress Semiconductor, Dallas Semiconductor, Goal, Hynix, Infineon, Intel, NXP(founded by Philips), OKI, Silicon Labs,SMSC, STMicroeleectronics,Synopsis, TDK, Temic, Texas Instruments,Winbond等。 通过PK51专业级开发工具,可以轻松地了解8051的On-chip peripherals与及其它关键特性。 The PK51专业级开发工具包括… l μVision Ø 集成开发环境 Ø 调试器 Ø 软件模拟器 l Keil 8051扩展编译工具 Ø AX51宏汇编程序 Ø ANSI C编译工具 Ø LX51 连接器 Ø OHX51 Object-HEX 转换器 l Keil 8051编译工具 Ø A51宏汇编程序 Ø C51 ANSI C编译工具 Ø BL51 代码库连接器 Ø OHX51 Object-HEX 转换器 Ø OC51 集合目标转换器 l 目标调试器 Ø FlashMON51 目标监控器 Ø MON51目标监控器 Ø MON390 (Dallas 390)目标监控器 Ø MONADI (Analog Devices 812)目标监控器 Ø ISD51 在系统调试 l RTX51微实时内核 你应该考虑PK51开发工具包,如果你… l 需要用8051系列单片机来开发 l 需要开发 Dallas 390 或者 Philips 51MX代码 l 需要用C编写代码 l 需要一个软件模拟器或是没有硬件仿真器 l 需要在单芯片上基于小实时内核创建复杂的应用
上传时间: 2013-10-30
上传用户:yy_cn
为了提高pcb铣刀鱼尾槽切削的精度和效率,设计了一套影像检测系统并研究铣刀刃面的图像处理算法,根据铣刀刃面的特征,设计了专门的照明系统来获取清晰的,变形小的铣刀刃面图像,采用边缘检测算法对图像进行边缘提取,并对所提取的边缘采用基于空间矩的亚像素算法进行图像边缘的亚像素定位,然后采用直线拟合等一系列算法对铣刀刃面图像进行尺寸计算和缺陷检测。、
上传时间: 2013-10-21
上传用户:梧桐
简单介绍了无损检测技术的几种方法,并对激光错位散斑的原理进行了阐述。然后介绍了华工百川公司自行研制的复合材料无损检测仪,以及对缺陷检测效果的进行了分析与改进。
上传时间: 2013-11-09
上传用户:maizezhen
C++完美演绎 经典算法 如 /* 头文件:my_Include.h */ #include <stdio.h> /* 展开C语言的内建函数指令 */ #define PI 3.1415926 /* 宏常量,在稍后章节再详解 */ #define circle(radius) (PI*radius*radius) /* 宏函数,圆的面积 */ /* 将比较数值大小的函数写在自编include文件内 */ int show_big_or_small (int a,int b,int c) { int tmp if (a>b) { tmp = a a = b b = tmp } if (b>c) { tmp = b b = c c = tmp } if (a>b) { tmp = a a = b b = tmp } printf("由小至大排序之后的结果:%d %d %d\n", a, b, c) } 程序执行结果: 由小至大排序之后的结果:1 2 3 可将内建函数的include文件展开在自编的include文件中 圆圈的面积是=201.0619264
标签: my_Include include define 3.141
上传时间: 2014-01-17
上传用户:epson850
数字运算,判断一个数是否接近素数 A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value. Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not. Input Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone. Output For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise. Sample Input 10 111 2 110 10 123 6 1000 8 2314 0 Sample Output yes yes no yes no
上传时间: 2015-05-21
上传用户:daguda