基于重力传感器的电子秤设计_第1页
基于重力传感器的电子秤设计_第2页
基于重力传感器的电子秤设计_第3页
基于重力传感器的电子秤设计_第4页
基于重力传感器的电子秤设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、佳木斯大学测试技术产品说明书姓名: 专业: 机械设计制造及其自动化 班级: 学号: 指导教师: 2014年6月29日目录摘要2Abstract3绪 论41.1引言41.2背景及意义41.3国内外电子称发展及成果51.4电子秤的基本结构61.5电子秤工作原理72系统方案的设定73.硬件选择及功能介绍83.1LM324(TL074)83.2 ICL713593.3 CD4017103.4单片机STC89C52RD+103.5 TL431113.6称重传感器113.7压力传感器及液晶显示器的安装方式114.软件部分124.1程序源码124.2电路原理图385结论396致谢407参考文献41

2、摘要本文设计的电子称是以单片机为主要部件,用C语言进行软件设计。通过传感器测量信号,用信号放大系统放大信号,经过A/D转换系统转换信号输送给CPU控制系统,通过液晶屏显示系统显示数据,键盘输入系统用来输入操作指令,阀值报警系统可以防止超量程损坏电子称。基本上实现了电子秤的基本功能。具备使用方便,直观,测量准确,成本低等特点。适应了现代社会发展的需求。 在本设计中将智能化,人性化,自动化用在了电子秤的控制系统中。系统采用芯片作为单片机STC89C52RD+的主控芯片,外围以称重电路,显示电路,报警电路,键盘电路等构成系统电路板,从而实现了自动称重的各种控制功能。  

3、关键词:电子称 单片机STC89C52RD+ 称重传感器 A/D转换器 LCD显示器 AbstractThis article is based on single chip design, said the main electronic components in assembly language for software design. Measured by the&

4、#160;sensor signal, amplifies thesignal with a signal amplification system, after A / D conversion system control signal transmission to the CPU, LCD display system displays the

5、60;data through the keyboard input system for entering instructions, the threshold alarm system to prevent over-range damage to electronic said. Basically realize the basic functio

6、ns of electronic scales. With easy to use, intuitive, measurement accuracy, and low cost. Adapted to the needs of modern social development.  In this design will be&

7、#160;intelligent, humane, automated electronic scales used in the control system. System uses the STC89C52RD+chip as the microcontroller control chip, the external load assigned to 

8、;the city circuit, display circuit, alarm circuit, the keyboard circuit board constitutes a system, enabling the automatic weighing of the various control functions. Keywords: elec

9、tronic scale  STC89C52RD+  load sensor  A/D converter LCD display 绪 论1.1引言在我们生活中经常都需要测量物体的重量,于是就用到秤,但是随着社会的进步、科学的发展,我们对其要求操作方便、易于识别。随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。电子秤向提高精度和降低成本方向发展的趋势引起了对低成本、高性能模

10、拟信号处理器件需求的增加。通过分析近年来电子衡器产品的发展情况及国内外市场的需求,电子衡器总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性。1.2背景及意义称重技术自古以来就被人们所重视,作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效

11、益的提高。称重装置不仅是提供重量数据的单体仪表,而且作为工业控制系统和商业管理系统的一个组成部分,推进了工业生产的自动化和管理的现代化,它起到了缩短作业时间、改善操作条件、降低能源和材料的消耗、提高产品质量以及加强企业管理、改善经营管理等多方面的作用。称重装置的应用已遍及到国民经济各领域,取得了显著的经济效益。因此,称重技术的研究和衡器工业的发展各国都非常重视。50年代中期电子技术的渗入推动了衡器制造业的发展。60年代初期出现机电结合式电子衡器以来,经过40多年的不断改进与完善,我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。现今电子衡器制造技术及应用得到了新发展。电子称重技术

12、从静态称重向动态称重发展:计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重和动态称重的研究与应用。通过分析近年来电子衡器产品的发展情况及国内外市场的需求,电子衡器总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。1.3国内外电子

13、称发展及成果随着第二次世界大战后的经济繁荣,为了把称重技术引入到生产工艺过程中去,对称重技术提出了心动要求,希望称重过程自动化,为此电子技术渗入衡器制造业。在1954年使用了带新式打印机的倾斜式秤,其输出信号能控制商用结算器,并且用电磁铁机构与人工操作的按键与办公机器联用。在1960年开发出了与衡器相联的专门称重值打印机。当时带电子装置的衡器其称量工作是机械式的,但与称量有关的显示、记录、远传式控制器等功能是电子方式的。电子称的发展过程与其他事物一样,也经历了由简单到复杂、又粗糙到精密、由机械到机电结合再到全电子化、由单一功能到多功能的过程。特别是近30年以来,工艺流程中的现场称重、配料定量称

14、重、以及产品质量的监测等工作,都离不开能输出信号的电子衡器。这是由于电子衡器不仅给出质量或重量信号,而且也能作为总系统中的一个单元承担着控制和检验功能,从而推进工业生产和贸易交往的自动化和合理化。近年来电子称已愈来愈多地参与到数据的处理和控制过程中。现代称重技术和数据系统已经成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可或缺的组成部分。随着称重传感器各项性能的不断突破,为电子称的发展奠定了基础,国外如美国、西欧等一些国家在20世纪60年代就出现了0.1%称量准确度的电子称,并在70年代中期约对75%的机械称进行了机电结合式改造。 我国的衡器在20世纪40年代以前还全

15、是机械式的,40年代开始发展了机电结合式的衡器。50年代开始出现了以称重传感器为主的电子衡器。80年代以来,我国通过自行研究引进消化吸收和技术改造。已由传统的机械式衡器步入集传感器、微电子技术、计算机技术与一体化的电子衡器发展阶段。目前,由于电子衡器具有称量快、读数方便、能在恶劣条件下工作、便于与计算机技术相结合而实现称重技术和过程控制的自动化特点,已被广泛应用于工矿企业、能源交通、商业贸易和科学技术等各个部门、随着称重传感器技术以及超大规模集成电路和微处理器的进一步发展,电子称重技术及其应用范围将更进一步的发展,并被人们越来越重视。电子衡器产品量大面广、种类繁多,从通用的各种规格的电子称到大

16、型的电子称重系统,从单纯的称重、计价到生产过程检测系统的一个测量控制单元,其应用领域不断地扩大。根据近些年来电子称重技术和电子衡器的发展情况及电子衡器市场的需求,电子称的发展动向为:小型化、模块化、智能化、集成化;其技术性能趋向于速率高、准确度高、可靠性高;其应用性趋向综合性、组合性。1.4电子秤的基本结构电子秤是利用物体的重力作用来确定物体质量(重量)的测量仪器,也可用来确定与质量相关的其它量大小、参数、或特性。不管根据什么原理制成的电了秤均由以下三部分组成: (1)承重、传力复位系统 它是被称物体与转换元件之间的机械、传力复位系统,又称电子秤的秤体,一般包括接受被称物体

17、载荷的承载器、秤桥结构、吊挂连接部件和限位减振机构等。 (2)称重传感器 即由非电量(质量或重量)转换成电量的转换元件,它是把支承力变换成电的或其它形式的适合于计量求值的信号所用的一种辅助手段。 按照称重传感器的结构型式不同,可以分直接位移传感器(电容式、电感式、电位计式、振弦式、空腔谐振器式等)和应变传感器(电阻应变式、卢表面谐振式)或是利用磁弹性、压电和压阻等物理效应的传感器。 对称重传感器的基本要求是:输出电量与输入重量保持单值对应,并有良好的线性关系;有较高的灵敏度;对被称物体的状态的影响要小;能在较差的工作条件下工作;有较好的频响特性;稳定可靠

18、。 (3) 测量显示和数据输出的载荷测量装置 即处理称重传感器信号的电子线路(包括放人器、模数转换、电流源或电压源、调节器、补尝元件、保护线路等)和指示部件(如显示、打印、数据传输和存贮器件等)。这部分习惯上称载荷测量装置或二次仪表。在数字式的测量电路中,通常包括前置放大、滤滤、运算、变换、计数、寄存、控制和驱动显示等环节。1.5电子秤工作原理当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力一电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。此信号由放大电路进行放大、经滤波后再由模数

19、( A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示。一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成。2系统方案的设定按照本设计功能的要求,系统由5个部分组成:控制器部分、测量部分、数据显示部分、键盘部分、和电路电源部分,总体设计框图如图2-1所示。图2-1测量部分是利用称重传感器检测压力信号,得到微弱的电信号(本设计为电压信号),而后经处理电路(如滤波电路,差

20、动放大电路,)处理后,送单片机中的A/D转换器,将模拟量转化为数字量输出,控制器接受来自A/D转换器输出的数字信号,经过复杂的运算,将数宁信号转换为物体的实际重量信号,并将其送到显示单元中。3.硬件选择及功能介绍3.1LM324(TL074)此芯片图如下图3-1所示,其功能如下。图3-1 LM324功能说明: 运算放大器 V-(11脚):负电源端。V+(4脚): 正电源端。3.2 ICL7135此芯片图如下图3-2所示,其功能如下。图3-2 ICL7135功能说明:4位半A/D转换器 V-(1脚):负电源端-5V。REFERENCE(2脚):基准电压输入端。ANALOGY GND(3脚):模拟

21、地。INT/OUT(4脚):积分器输入端,接积分电容。AZ(5脚):积分器和比较器反相输入端,接自零电容。BUF(6脚):输出缓冲端,接积分电阻。CREF-(7脚):基准电容负。CREF+(8脚):基准电容正。IN-(9脚):被测信号负输入端。IN+(10脚):被测信号正输入端。V+(11脚): 电源正端,接+5V。D5D1(12,1720脚): 位扫描输出端。B1B4(1316脚): BCD码输出端。BUSY(21脚): 忙状态输出端,指示正在进行A/D转换。CLK(22脚): 时钟信号输入端。POL(23脚): 负极性信号输出端。DGND(24脚): 数字地。R/H(25脚): 运行/读数

22、操作控制端。STROBE(26脚): 数据选通输出端。OR(27脚): 超量程状态输出端。UR(28脚): 欠量程状态输出端。3.3 CD4017此芯片图如下图3-3所示,其功能如下。图3-3 CD4017功能说明:Y0-Y9(17,911脚):为计数输出端。 VSS(8脚):接地。 CO(12脚):进位输出端。 EN(13脚):使能端。 CP(14脚):时钟输入端。 CR(15脚):清零端。 VDD(16脚):电源端。3.4单片机STC89C52RD+单片机如下图3-4所示,其功能如下。图3-4 STC89C52RD+引脚功能说明:(1)输入/输出引脚(I/O口线):P0.0P0.7:P0口

23、8位双向I/O口,占3932脚;P1.0P1.7:P1口8位准双向I/O口,占18脚;P2.0P2.7:P2口8位准双向I/O口,占2128脚;P3.0P3.7:P3口8位准双向I/O口,占1017脚;(2)控制口线:(29脚):外部程序存储器读选通信号。ALE/(30脚):地址锁存允许/编程信号。/VP(31脚):外部程序存储器地址允许/固化编程电压输入端。RST/VPD(9脚):RST是复位信号输入端,VPD是备用电源输入端。3.5 TL431此芯片图如下图3-5所示,其功能如下。图3-5 TL431功能说明:1:2.500V参考电压输出。 2:阳极。3:阴极。3.6 称重传感器称重传感器

24、结构图如下图3-6所示,其功能如下。图3-6 称重传感器结构图功能说明: 红色线:电源正极(VCZ) 黑色线:接地端(GND) 绿色线:正输出端(IN+) 白色线:负输出端(IN -)3.7压力传感器及液晶显示器的安装方式电子秤模型图如下图3-7所示。1.圆盘 2.液晶显示器3.螺丝(3*6mm)4.螺丝(3*6mm)5.PCB线路板6.铜柱(3*30mm)7.铜柱(3*10mm)8.压力传感器 图3-7 模型图9.螺丝(含垫片)4.软件部分4.1程序源码#include <reg52.h>#include <intrins.h>#include<DS1302.h

25、>#include <hongwai.h>#include<AD7705.h>#include<shujuchuli.h>#define SENDCOMM 0XF8 /0XF1000 #define READCOMM 0XFC /0XF1100#define SENDDATA 0XFA /0XF1010#define READDATA 0XFE /0XF1110 11111ab0uchar hao8;uchar temp,num,num1; void LCD_send_byte(unsigned char a);unsigned char LCD_re

26、ad_byte(void);unsigned char LCD_bf(void);void LCD_comm(unsigned char comm);void LCD_setxy(unsigned char x,unsigned char y);void LCD_PORTInit(void);void LCD_WriteStr(unsigned char dis_addr_x,unsigned char dis_addr_y,char* str);void LCD_WriteDBC(unsigned char dis_addr_x,unsigned char dis_addr_y,unsign

27、ed char dis_dat);sbit E_CLK =P26; /clock inputsbit RW_SID=P25; /data input/outputsbit RS_CS =P24; /chip select sbit P23=P00;void LCD_PORTInit(void)E_CLK=0;RS_CS=0;void LCD_send_byte(unsigned char a)unsigned char i;for(i=8;i>0;i-) if(a&(0x01<<(i-1) RW_SID=1; else RW_SID=0; delay(1); E_CL

28、K=1; / delay(1); E_CLK=0; / delay(1); unsigned char LCD_read_byte(void)unsigned char i,dat=0;for(i=8;i>0;i-) E_CLK=1; delay(1); if(RW_SID=1) dat|=(0x01<<(i-1); E_CLK=0; delay(1); return dat;unsigned char LCD_bf(void)unsigned char readh,readl,bf;RS_CS=1;delay(1);LCD_send_byte(READCOMM);readh

29、=LCD_read_byte();readl=LCD_read_byte();delay(1);RS_CS=0;readl=(readl>>4);bf=(readh&0xf0)|(readl&0x0f);return bf;void LCD_comm(unsigned char comm)unsigned char temp;do temp=LCD_bf();while(temp&0X80);RS_CS=1;delay(1);LCD_send_byte(SENDCOMM);temp=comm&0XF0;LCD_send_byte(temp);temp

30、=(comm&0X0F)<<4)&0XF0;LCD_send_byte(temp);delay(1);RS_CS=0;void LCD_data(unsigned char lcd_data)unsigned char temp;RS_CS=1;delay(0);LCD_send_byte(SENDDATA);temp=lcd_data&0xf0;LCD_send_byte(temp);temp=(lcd_data&0X0F)<<4;LCD_send_byte(temp);delay(0);RS_CS=0;/*/ 设置显示位置 X(116

31、),Y(14)/*/void LCD_setxy(unsigned char x,unsigned char y)switch(y) case 1: LCD_comm(0X7F+x);break; case 2: LCD_comm(0X8F+x);break; case 3: LCD_comm(0X87+x);break; case 4: LCD_comm(0X97+x);break; default:break;/*/ 在指定位置显示一半角字符/*/void LCD_WriteDBC(unsigned char dis_addr_x,unsigned char dis_addr_y,unsi

32、gned char dis_dat) LCD_setxy(dis_addr_x,dis_addr_y); LCD_data(dis_dat);/*/ 在指定位置显示字符串/*/void LCD_WriteStr(unsigned char dis_addr_x,unsigned char dis_addr_y,char* str) unsigned char LCD_temp; LCD_setxy(dis_addr_x,dis_addr_y); LCD_temp=*str; while(LCD_temp != 0x00) LCD_data(LCD_temp); LCD_temp=*(+str)

33、; void LCD_init(void) unsigned char i;LCD_PORTInit();i=LCD_bf();while(i=0x80) delay(1); i=LCD_bf();RS_CS=0;delay(1);LCD_comm(0x30);/功能设置,一次送8位数据,基本指令集LCD_comm(0x0C);/0000,1100 整体显示,游标off,游标位置offLCD_comm(0x01);/0000,0001 清DDRAMLCD_comm(0x02);/0000,0010 DDRAM地址归位LCD_comm(0x80);/1000,0000 设定DDRAM 7位地址0

34、00,0000到地址计数器AC void haoma() uchar i,num=6; for(i=0;i<6;i+) while(flag2=0); haoi=key+0x30; LCD_WriteStr(4,2,hao); flag2=0; queren=0; while(queren=0); queren=0; flag=0; void main()LCD_init();init_hongwai();init_ds1302();AD7705_Start();/qupi();LCD_WriteStr; /delay(1000);LCD_WriteStr; delay(1000);LC

35、D_WriteStr;delay(1000);LCD_WriteStr;delay(1000);LCD_comm(0x01);LCD_comm(0x01);LCD_comm(0x01); LCD_WriteStr(1,1,"输入编号:"); delay(1000); LCD_WriteStr; delay(1000);LCD_WriteStr;haoma(); /delay(2000) ;LCD_comm(0x01) ; /LCD_WriteStr(1,1,"单价");delay(1000); /LCD_WriteStr(1,2,"累计&quo

36、t;);delay(1000); LCD_WriteStr(1,3,"重量");delay(1000);while(1)keyscan();LCD_WriteStr(3,1,danjia);jin_e();LCD_WriteStr(3,2,zongjia); P23=P23; display(); /读取时间、日历 LCD_WriteStr(1,4,shijian); ad7705(); LCD_WriteStr(3,3,aa); #define uchar unsigned char#define uint unsigned intsbit CLK=P22; /7sbit

37、 IO=P21; /6sbit RST=P20;/5uchar clock7;uchar shijian16;uchar code init_time7=0x40,0x30,0x19,0x20,0x08,0x06,0x10; void delay(uint x)uchar j;for(;x>0;x-) for(j=0;j<125;j+);void input( uchar d)uchar i; for(i=8;i>0;i-) IO = d&0x01; CLK=1; CLK=0; d = d >> 1; uchar output(void) uchar i,

38、val; for(i=8;i>0;i-) val = val>>1; if(IO)val=val|0x80; CLK=1; CLK=0; return(val);void write(uchar ucaddr,uchar ucda) RST = 0; CLK = 0; RST = 1; input(ucaddr); input(ucda); CLK=1; RST=0;uchar read(uchar ucaddr)uchar ucdata; RST = 0; CLK = 0; RST = 1; input(ucaddr); ucdata=output(); CLK=1; RS

39、T=0; return(ucdata);void set(uchar *pClock) uchar i; uchar ucAddr = 0x80; /起使地址 write(0x8e,0x00); /* 控制命令,WP=0,允许写操作*/ for(i=0;i<7;i+) write(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 7字节 */ pClock+; ucAddr+=2; /写地址加2 write(0x8e,0x80); void time(void)uchar i;uchar ucAddr = 0x81; for(i=0;i<7;i+) clocki

40、=read(ucAddr); ucAddr+=2; void display() uchar i; time(); for(i=0;i<7;i+) /clocki=clocki/16*10+clocki%16;/转换为十六进制 clocki=(clocki&0x70)>>4)*10 + (clocki&0x0f); shijian1=clock6%10+0x30; /取个位 shijian0=clock6%100/10+0x30; /取十位 年 shijian2='/' shijian4=clock4%10+0x30; /取个位 shijian

41、3=clock4%100/10+0x30; shijian5='/' /取十位 月 shijian7=clock3%10+0x30; /取个位 shijian6=clock3%100/10+0x30; /取十位 日 shijian9=clock2%10+0x30; /取个位 shijian8=clock2%100/10+0x30; /取十位 时 shijian10=':' shijian12=clock1%10+0x30; /取个位 shijian11=clock1%100/10+0x30; /取十位 分 shijian13=':' shijia

42、n15=clock0%10+0x30; /取个位 shijian14=clock0%100/10+0x30; /取十位 秒void init_ds1302() set(init_time);#define uchar unsigned char#define uint unsigned intuchar flag2=0;uchar flag=0;uchar key,queren;/*函数申明*void delay882us(void); /精确延时882usvoid delay4740us(void); /精确延时4740usvoid delay1000us(void); /精确延时1000u

43、s/*用到的I/O口定义*sbit P32=P32; /INT0,红外信号输入sbit P36=P36;sbit P37=P37;void delay882us(void) uchar i; for(i=0;i<202;i+) _nop_(); void delay4740us(void) uint j; for(j=0;j<670;j+) _nop_(); void delay1000us(void) uchar k; for(k=0;k<230;k+) _nop_(); /*/*主程序*void init_hongwai(void) EA=1; EX0=1; / 设定接受

44、INT0的中断 IT0=1; PX0=1;static void decode(void) interrupt 0 using 2 unsigned char IRCode4=0,0,0,0; unsigned char count0,count1,count2; EX0 = 0; /外部中断0关闭 for(count0=0;count0<10;count0+) /起始码前9ms的低电平 delay882us(); if(P32) goto exit; /9ms没完就出来高电平则为干扰信号,跳出中断(退出解码) if(!P32) /低电平没完 delay4740us(); /9ms没结束

45、再延时4740us,加上前面的8820us,已跳过起始码的13.5ms for(count1=0;count1<4;count1+) /开始读数据,4个字节,32位 for(count2=0;count2<8;count2+) /每个字节8位 while(!P32); /等待高电平到来 delay882us(); if(P32) /延时882us后,若P32还是高电平,则为 位1 IRCodecount1=IRCodecount1>>1; IRCodecount1=IRCodecount1|0x80; delay1000us(); /延时1000us,结束高电平 els

46、e /延时882us后,若P32为低电平,则为 位0 IRCodecount1=IRCodecount1>>1; IRCodecount1=IRCodecount1|0x00; /到这里已读完所有32位数据 switch(IRCode3) case 0x2B: queren=1; break; case 0x07: key=16; flag=1; break; / do / / danjianum1=' ' / while(num1-); / shu=0;num=0;dot=0;num1=0;break; case 0x47: key=1; flag2=1;flag

47、=1; break; case 0x4B: key=2; flag2=1; flag=1;break; case 0x4F: key=3; flag2=1; flag=1; break; case 0x53: key=4; flag2=1;flag=1; break; case 0x57: key=5; flag2=1;flag=1;break; case 0x5B: key=6; flag2=1;flag=1; break; case 0x5F: key=7; flag2=1;flag=1; break; case 0x63: key=8; flag2=1;flag=1; break; ca

48、se 0x67: key=9; flag2=1; flag=1;break; case 0x43: key=0; flag2=1;flag=1; break; case 0x6B: key=10; flag=1;break; case 0x6F: key=11; flag=1;break; case 0x3B: key=12; break; case 0x0B: key=13; break; case 0x0F: key=14; break; case 0x73: key=15; break; default : break; exit: EX0 = 1; sbit AD7705_IN=P10

49、; sbit AD7705_OUT=P11; / AD7705 input & output datasbit AD7705_CLK=P13; / AD7705 CLKsbit AD7705_DRDY=P12; / AD7705 data readysbit AD7705_CS =P14; / AD7705 CS sbit p30=P23;long int T_VoltageTotal=0;uint T_VoltageDel=0,T_VoltageQP=0;/现在值、中间处理值与最大值uchar MSB_Data,LSB_Data;long T_Voltage=0;uchar aa6;

50、 long shizhong;void Delayms(unsigned char ms);void AD7705_Start(); / 通道的初始化void AD7705_Read (); /对转换数据进行处理void AD7705_Write_Reg(unsigned char Data_byte); /对芯片写数据unsigned char AD7705_Read_Reg(); /读取AD转换的数据void ad7705() /uint Counter=0; uchar i;for(i=0;i<5;i+) / /AD7705_Read(); T_VoltageTotal+=T_VoltageDel; T_Voltage=(uint)(T_VoltageTotal/5); T_Voltage-=T_VoltageQP; if(T_Voltage>63000) T_Voltage=0; T_Voltage=4444; T_Voltage=T_Voltage*10000/66635; shizhong=T_Voltage; aa0 =(uchar)(T_Voltage/1000); aa1='.' aa2 =(T_Voltage-aa0*1000)/100); aa3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论