0 Usuarios y 1 Visitante están viendo este tema.
#include "HX711.h"//****************************************************//ÑÓʱº¯Êý//****************************************************void Delay__hx711_us(void){ _nop_(); _nop_();}//****************************************************//¶ÁÈ¡HX711//****************************************************unsigned long HX711_Read(void) //ÔöÒæ128{ unsigned long count; unsigned char i; HX711_DOUT=1; Delay__hx711_us(); HX711_SCK=0; count=0; EA = 1; while(HX711_DOUT); EA = 0; for(i=0;i<24;i++) { HX711_SCK=1; count=count<<1; HX711_SCK=0; if(HX711_DOUT) count++; } HX711_SCK=1; count=count^0x800000;//µÚ25¸öÂö³åϽµÑØÀ´Ê±£¬×ª»»Êý¾Ý Delay__hx711_us(); HX711_SCK=0; return(count);}
#ifndef __HX711_H__#define __HX711_H__#include <reg52.h>#include <intrins.h>//IOÉèÖÃsbit HX711_DOUT=P3^6; sbit HX711_SCK=P3^7; //º¯Êý»òÕß±äÁ¿ÉùÃ÷extern void Delay__hx711_us(void);extern unsigned long HX711_Read(void);#endif
/**********************************************************************----------------1.┐¬Àó╗À¥│:Keil v4 --------------------------------2.╩╣Ë├ÁÑã¼╗·ð═║┼ú║STC89C52RC --------------------------------3.ÁÑã¼╗·╩╣Ë├¥ºı±ú║11.0592M --------------------------------4.ÁÛã╠├¹│ãú║┤¾Ðº╔·ÁþÎË╔╠ã╠/ðíÃ┐ÁþÎË╔Þ╝ã--------------------------------5.╠È▒ª═°ÍÀú║ -------------------------------- 1║┼ÁÛã╠http://Ilovemcu.taobao.com -------------------------------- 2║┼ÁÛã╠http://52dpj.taobao.com -------------------------------- 3║┼ÁÛã╠http://epic-mcu.taobao.com --------------------------------6.θı▀ú║╔±├Ï▓Ï▒ª╩Ê ----------------***********************************************************************/#include "main.h"#include "HX711.h"unsigned long HX711_Buffer = 0;long Weight_Maopi = 0,Weight_Shiwu = 0;unsigned int Temp_Buffer = 0;//code unsigned char table[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0x00}; //0,1,2,3,4,5,6,7,8,9,╚½░Áú¼╚½┴┴ //╣▓жcode unsigned char table[] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0X00,0XFF,0x6f,0x79,0x77,0x3f,0x76,0x38}; //0,1,2,3,4,5,6,7,8,9,╚½░Áú¼╚½┴┴,g,e,r,o,h,l //╣▓ʧunsigned char COM1_DATA = 0,COM2_DATA = 0,COM3_DATA = 0,COM4_DATA = 0,COM5_DATA = 0,COM6_DATA = 0;unsigned char flag = 0;bit Flag_ERROR = 0;//****************************************************//͸║»╩²//****************************************************void main(){ Init_Timer0(); COM1_DATA = 16; //H COM2_DATA = 13; //E COM3_DATA = 17; //L COM4_DATA = 17; //L COM5_DATA = 15; //0 COM6_DATA = 10; //┐ı Delay_ms(3000); //ÐË╩▒,Á╚┤²┤½©ðã¸╬╚¿ Get_Maopi(); //│ã├½ãñÍÏ┴┐ while(1) { EA = 0; Get_Weight(); //│ãÍÏ EA = 1; Scan_Key(); //¤È╩¥Á▒Ã░ÍÏ┴┐ if( Weight_Shiwu > 3000 || Flag_ERROR == 1) { COM1_DATA = 13; //E COM2_DATA = 14; //R COM3_DATA = 14; //R COM4_DATA = 15; //O COM5_DATA = 14; //R COM6_DATA = 10; //┐ı } if( Weight_Shiwu <= 3000 && Flag_ERROR == 0) { COM1_DATA = Weight_Shiwu/1000; COM2_DATA = Weight_Shiwu%1000/100; COM3_DATA = Weight_Shiwu%100/10; COM4_DATA = Weight_Shiwu%10; COM5_DATA = 10; //┐ı COM6_DATA = 12; //g } }}//╔¿├Þ░┤╝³void Scan_Key(){ if(KEY1 == 0) { Delay_ms(5); if(KEY1 == 0) { while(KEY1 == 0); Get_Maopi(); //╚Ñãñ } }}//****************************************************//│ãÍÏ//****************************************************void Get_Weight(){ HX711_Buffer = HX711_Read(); HX711_Buffer = HX711_Buffer/100; if(HX711_Buffer >= Weight_Maopi) { Weight_Shiwu = HX711_Buffer; Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //╗±╚í╩Á╬´Á─AD▓╔Ш╩²ÍÁíú Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/7.41+0.05); //╝ã╦Ò╩Á╬´Á─╩Á╝╩ÍÏ┴┐ //Ê‗╬¬▓╗═¼Á─┤½©ðã¸╠ÏðÈ÷¤▀▓╗Ê╗Шú¼Ê‗┤╦ú¼├┐Ê╗©÷┤½©ðã¸ðÞʬ¢├ı²ıÔ└´Á─7.16ıÔ©÷│²╩²íú //Á▒Àó¤Í▓Ô╩È│÷└┤Á─ÍÏ┴┐ã½┤¾╩▒ú¼È÷╝Ë©├╩²ÍÁíú //╚þ╣¹▓Ô╩È│÷└┤Á─ÍÏ┴┐ã½ðí╩▒ú¼╝§ðí©─╩²ÍÁíú //©├╩²ÍÁÊ╗░ÒÈ┌7.16©¢¢³Á¸ı¹Í«╝õíúÊ‗┤½©ðã¸▓╗═¼Â°Â¿íú //+0.05╩Ã╬¬┴╦╦─╔ß╬Õ╚Ù░┘ÀÍ╬╗ Flag_ERROR = 0; } else if(HX711_Buffer < Weight_Maopi - 30) { Flag_ERROR = 1; //©║ÍÏ┴┐▒¿¥» }}//****************************************************//╗±╚í├½ãñÍÏ┴┐//****************************************************void Get_Maopi(){ unsigned char i = 0; unsigned int Temp_Weight = 0; Weight_Maopi = 0; for( i = 0 ; i < 10 ; i++) { HX711_Buffer = HX711_Read(); Weight_Maopi = HX711_Buffer/100; } }//****************************************************//│§╩╝╗»Â¿╩▒ã¸0//****************************************************void Init_Timer0(){ TMOD = 0X01; //T0, ╣ñθ─ú╩¢1 TH0 = (65536 - 2000)/256; TL0 = (65536 - 2000)%256; TR0 = 1; //┐¬ã¶Â¿╩▒㸠ET0 = 1; //┐¬ã¶Â¿╩▒ã¸Íð¤ EA = 1; //┐¬ã¶Î▄Íð¤ }//Íð¤║»╩²//****************************************************void Timer0() interrupt 1{ TH0 = (65536 - 2000)/256; TL0 = (65536 - 2000)%256; TF0 = 0; flag++; if(flag >= 6) { flag = 0; } switch(flag) { case 0: COM1 = 0; COM2 = 1; COM3 = 1; COM4 = 1; COM5 = 1; COM6 = 1;// if(COM1_DATA < 10)// {// SEG_DATA = table[COM1_DATA]|0x80; ////¤È╩¥Á┌Ê╗╬╗ÍÁ╝Ëðí╩²ÁÒ// }// else// { SEG_DATA = table[COM1_DATA]; // } break; case 1: COM1 = 1; COM2 = 0; COM3 = 1; COM4 = 1; COM5 = 1; COM6 = 1; SEG_DATA = table[COM2_DATA]; //¤È╩¥Á┌Â■╬╗ÍÁ break; case 2: COM1 = 1; COM2 = 1; COM3 = 0; COM4 = 1; COM5 = 1; COM6 = 1; SEG_DATA = table[COM3_DATA]; ////¤È╩¥Á┌╚²╬╗ÍÁ break; case 3: COM1 = 1; COM2 = 1; COM3 = 1; COM4 = 0; COM5 = 1; COM6 = 1; SEG_DATA = table[COM4_DATA]; //¤È╩¥Á┌╦─╬╗ÍÁ break; case 4: COM1 = 1; COM2 = 1; COM3 = 1; COM4 = 1; COM5 = 0; COM6 = 1; SEG_DATA = table[COM5_DATA]; //¤È╩¥Á┌╦─╬╗ÍÁ break; case 5: COM1 = 1; COM2 = 1; COM3 = 1; COM4 = 1; COM5 = 1; COM6 = 0; SEG_DATA = table[COM6_DATA]; //¤È╩¥Á┌╦─╬╗ÍÁ break; default : break; }} //****************************************************//MSÐË╩▒║»╩²(12M¥ºı±¤┬▓Ô╩È)//****************************************************void Delay_ms(unsigned int n){ unsigned int i,j; for(i=0;i<n;i++) for(j=0;j<123;j++);}
Podrías poner lo que has encontrado??De esa forma sera mas fácil ayudarte.