电子开发 | 基础入门 | 电路原理图 | 婵犳鍠栭オ鎾垂娴煎瓨鍤嬪ù鍏兼綑閻愬﹪鏌熼鍡楁噺濠㈡牗绻涢幘瀵稿暡闁瑰嚖鎷� | PLC闂備胶纭堕弲鐐测枍閿濆鈧線鏁撻敓锟�   闂備線娼уΛ妤呮晝閵堝鈧懓顦圭€殿喚枪楗即宕橀埡鍐х钵婵犵數鍋涘Λ搴ㄥ垂閸濆嫸鑰块柟娈垮枤閸楁碍绻涢崱妯兼噮缂佲偓婢舵劖鍋i柛銉墯閺侀亶鎮楃喊澶嬪 Ctrl+D 闂備礁缍婂ḿ褔顢栭崨顔藉弿闁冲搫鎳庣紒鈺呮煙椤栨粌顣兼い銉﹀灴閺屻劌鈽夊Δ鍐ㄥ闂佸憡鏌ㄩ幊鎰板箯椤愶箑顫呴柍銉ュ帠閹查箖姊哄Ч鍥у閻庢凹鍙冨顐︻敋閳ь剟鐛幇顓熷缁剧増锚娴滈箖鏌ㄩ悤鍌涘濠电偞鍨堕幐鎾磻閹剧粯鍋g憸宥夊床閺屻儺鏁嗛柣鏂挎憸閳绘洟鏌eΟ澶稿惈妞ゅ繘浜堕幃纭咁槾闁哄苯顦遍幑銏犖熸笟顖涙〃闂侀潧顦介崹宕囩矆婢舵劖鐓熼柕蹇嬪€栧☉褔鏌i埄鍐噧妞ゆ洩缍侀崺鈧い鎺戝閻鏌熺€电ǹ孝缂佹梻鍋撶换娑㈠幢閹邦剛浼囩紓浣筋嚙椤戝鐛崘顔光偓锕傚箳閺冨偊绱�.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

闁宠棄鎳愰弫鍝ユ崉椤栨艾褰嗙€殿喖绻戞晶婊堝礃瀹€瀣闁哄牃鍋撻柡鍌涘婢ф濡存繝鍕毄閻庢稒鍔楅弫鍝ユ崉椤栨艾褰嗙€殿喖绻楅鍝ョ不濡も偓濞呮帡濡寸€e墎绀夐柣顫祷閻箖宕楅鈧槐锟犲蓟閵夘煈鍤勯柟闈涱儏閸烇拷 闁活澀绲婚惌楣冨礂椤掆偓缁憋紕鎷嬮敍鍕毈闁革絻鍔婇埀顒佸姉閺佸摜鈧稒鍔掔划鐘崇▔濮橆偅鐪介柛娑櫭换鈧璺烘处婢ф粓宕樼仦鐑╁亾閿燂拷
闁宠棄妫楀畷鍕緞閳轰緡鍔呭ù鍏艰壘瀹曠喖鎮ч崶銊︾皻閻庡湱鍋樼欢锟�100 c閻犲浂鍙€閳伙拷 chm闁哄秶鍘х槐锟犲Υ閸屾繄銈柡鍌涚懃閸炲鈧湱顢婇娑氱磼閸☆厾绀夐悷鏇炴濞插﹥绗熺€n亞鎽嶅鑸电啲缁辨繈宕橀崨顓у晣妤犵偠锟ラ埀顒佸姉閺佸摜鈧稒鍔掔划鐘崇▔濮橆偅鐪介柛娑櫭换鈧璺烘处婢ф粓宕樼仦鐑╁亾閿燂拷
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 单片机 >> 正文

逼真的蜡烛,ATtiny单片机电子蜡烛,ATtiny candle

作者:佚名    文章来源:本站原创    点击数:1737    更新时间:2018-02-20

ATtiny单片机电子蜡烛,ATtiny candle

关键字:ATTINY85,电子蜡烛电路

想想当你好不容易跟女朋友共度烛光晚餐,却因为蜡烛点没了或打翻着火了,那是一件多么坑爹的事啊!今天为你分享一款自己diy的超自然的烛光蜡烛。
WP_000356.jpg
ATtiny 电子蜡烛,皮特•米尔斯开发这个伟大的蜡烛,正如我们图片所见到的一样,但怎样让这蜡烛的光芒像传统的蜡烛一样闪烁呢。
WP_000370.jpg
皮特使用一个高亮的LED和一些模拟的辅助软件,这样就使得ATtiny 电子蜡烛的烛光和传统蜡烛拥有一样的闪烁的烛光,并且优于传统蜡烛,因为它不伴有明火的危险。
WP_000376.jpg
ATtiny 电子蜡烛最难的部分就闪烁神态逼真,所以皮特做了一个蜡烛光检测电阻( LDR )和固定电阻作为一个分压器。这是作为ATTINY85 ADC之中的一个输入端,并离散时间间隔的进行采样。采样速率为100毫秒。然后将采集的8bit的电频值存储到EEPROM中,以便记录蜡烛的闪烁图谱,驱动将其连接的LED、PWM形成通路。在用三节干电池供电。最后您只需编程程序,然后通过开关进行控制。
WP_000345.jpg
下面是ATtiny 电子蜡烛的电路图
ATTiny Candle Sch.jpg
下面是程序的代码以及写入EEPROM的数据
 
view plainprint?
/* 
Program Description: This program reads a light detecting resistor thru an internal ADC and stores the value,  
after scaling it, to eeprom.  This ADC value is sent to a PWM channel with attached led.  This is essentially a data logger 
for light and replay by LED.  If, if you aim the LDR at a flickering candle during its recording phase, you have a flickering  
led candle.   
A circuit description and other details can be found at http://petemills.blogspot.com 
Filename: ATTiny_Candle_v1.0.c 
Author: Pete Mills 
Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms 
*/  
//********** Includes **********  
#include        
#include      
#include   
//********** Definitions **********  
// LED for flame simulation  
#define LED   PB0    
#define LED_PORT PORTB  
#define LED_DDR  DDRB  
// Light Detecting Resistor for recording a live flame  
#define LDR   PINB3   
#define LDR_PORT PINB  
#define LDR_DDR  DDRB  
// Tactile Switch Input  
#define SW1   PINB4  
#define SW1_PORT PINB  
#define SW1_DDR  DDRB  
#define ARRAY_SIZE 500  // size of the flicker array  
#define SAMPLE_RATE 100  // ms delay for collecting and reproducing the flicker  
//********** Function Prototypes **********  
void setup(void);  
void toggle_led(void);  
void program_flicker(void);  
void led_alert(void);  
void eeprom_save_array(void);  
void eeprom_read_array(void);  
void scale_array(void);  
uint8_t get_adc(void);  
uint8_t scale( uint8_t input, uint8_t inp_low, uint8_t inp_hi, uint8_t outp_low, uint8_t outp_hi);  
uint8_t is_input_low(char port, char channel, uint8_t debounce_time, int input_block);  
//********** Global Variables **********  
uint8_t flicker_array[ ARRAY_SIZE ] = { 0 };  
uint8_t EEMEM ee_flicker_array[ ARRAY_SIZE ] = { 0 };  
int main(void)  
{  
uint16_t replay = 0;  
setup();  
eeprom_read_array();  
 while(1)  
 {   
  if( is_input_low( SW1_PORT, SW1, 25, 250 ) )  
  {  
   // program the flicker  
   // after entering and upon completion, a predetermined flash pattern will occur as described in led_alert()    
   // aim the ldr at a flickering candle or any other light source ( like a laser ) you want to record during this time  
   // and upon completion the values are stored to eeprom.  They are played back immediately as well   
   // as being recalled from eeprom upon first start up  
   led_alert();  
   program_flicker();  
   scale_array();  
   eeprom_save_array();  
   led_alert();  
  }  
  // replay the recorded flicker pattern   
  OCR0A = flicker_array[ replay ];  
  ++replay;  
  if( replay >= ( ARRAY_SIZE - 13 ) ) // if the end of the stored array has been reached  
  {   
   replay = 0;          // start again from the beginning  
   //led_alert();  
  }  
  _delay_ms( SAMPLE_RATE );  
  _delay_ms( 3 );    // ADC Conversion time  
 }  
}  
//********** Functions **********  
void setup(void)  
{  
 //********* Port Config *********  
 LED_DDR |= ( 1 << LED);   // set PB0 to "1" for output   
 LED_PORT &= ~( 1 << LED );   // turn the led off  
 LDR_DDR &= ~( 1 << LDR );   // set LDR pin to 0 for input  
 LDR_PORT |= ( 1 << LDR );   // write 1 to enable internal pullup  
 SW1_DDR &= ~( 1 << SW1 );   // set sw1 pin to 0 for input  
 SW1_PORT |= ( 1 << SW1 );   // write a 1 to sw1 to enable the internal pullup  
 //********** PWM Config *********  
 TCCR0A |= ( ( 1 << COM0A1 ) | ( 1 << WGM01 ) | ( 1 << WGM00 ) ); // non inverting fast pwm  
 TCCR0B |= ( 1 << CS00 ); // start the timer  
 //********** ADC Config **********  
 ADMUX |= ( ( 1 << ADLAR ) | ( 1 << MUX1 ) | ( 1 << MUX0 ) );  // left adjust and select ADC3  
 ADCSRA |= ( ( 1 << ADEN ) | ( 1 << ADPS2 ) | ( 1 << ADPS1 ) ); // ADC enable and clock divide 8MHz by 64 for 125khz sample rate  
 DIDR0 |= ( 1 << ADC3D ); // disable digital input on analog input channel to conserve power  
}  
void toggle_led()  
{  
    LED_PORT ^= ( 1 << LED );  
}  
uint8_t is_input_low( char port, char channel, uint8_t debounce_time, int input_block )  
{  
/*  
This function is for debouncing a switch input  
Debounce time is a blocking interval to wait until the input is tested again.  
If the input tests low again, a delay equal to input_block is executed and the function returns ( 1 )  
*/  
 if ( bit_is_clear( port, channel ) )  
 {  
  _delay_ms( debounce_time );  
   if ( bit_is_clear( port, channel ) )   
   {  
    _delay_ms( input_block );  
    return 1;  
   }  
 }  
 return 0;  
}  
uint8_t get_adc()  
{  
 ADCSRA |= ( 1 << ADSC );   // start the ADC Conversion  
 while( ADCSRA & ( 1 << ADSC ));  // wait for the conversion to be complete  
 return ~ADCH; // return the inverted 8-bit left adjusted adc val  
}  
void program_flicker()  
{   
 // build the flicker array  
 for( int i = 0; i < ARRAY_SIZE; i++ )  
 {  
  flicker_array[ i ] = get_adc();    
  _delay_ms( SAMPLE_RATE );  
 }  
}  
void led_alert()  
{  
 // this is a function to create a visual alert that an event has occured within the program  
 // it toggles the led 10 times.  
 for( int i = 0; i < 10; i++ )  
 {  
  OCR0A = 0;  
  _delay_ms( 40 );  
  OCR0A = 255;  
  _delay_ms( 40 );  
 }  
}  
void eeprom_save_array()  
{   
 for( int i = 0; i < ARRAY_SIZE; i++ )  
 {  
  eeprom_write_byte( &ee_flicker_array[ i ], flicker_array[ i ] );  
 }  
}  
void eeprom_read_array()  
{  
 for( int i = 0; i < ARRAY_SIZE; i++ )  
 {  
  flicker_array[ i ] = eeprom_read_byte( &ee_flicker_array[ i ] );  
 }  
}  
uint8_t scale( uint8_t input, uint8_t inp_low, uint8_t inp_hi, uint8_t outp_low, uint8_t outp_hi)  
{  
return ( ( ( input - inp_low ) * ( outp_hi - outp_low ) ) / ( ( inp_hi - inp_low ) + outp_low ) );  
}  
void scale_array()  
{  
 uint8_t arr_min = 255;  
 uint8_t arr_max = 0;  
 uint8_t out_low = 20;  
 uint8_t out_high = 255;  
 // find the min and max values  
 for( int i = 0; i < ARRAY_SIZE; i++ )  
 {  
  if( flicker_array[ i ] < arr_min )  
   arr_min = flicker_array[ i ];  
  if( flicker_array[ i ] > arr_max )  
   arr_max = flicker_array[ i ];  
 }  
 // now that we know the range, scale it  
 for( int i = 0; i < ARRAY_SIZE; i++ )  
 {  
  flicker_array[ i ] = scale( flicker_array[ i ], arr_min, arr_max, out_low, out_high );  
 }  
}   igh );  
 }  
}   igh );  
 }  
}    
 }  
}    
 }  
}    
 }  
}    }  
}    }  
}    }  
}       
 
 
EEPROM的数据
rom.rar

Tags:电子蜡烛  
责任编辑:admin
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
        没有任何评论
    闁汇垽娼ч悺娆忣嚕閳ь剟宕i幋鐘电Ч闁挎稒纰嶉惇褰掓⒖閸℃瑦鍋呴柛姘墕閹洨鐚鹃懡銈嗘毄閻庢稒鍔曢崺妤佹媴濠娾偓缁楀矂鎮芥担鍐唴闁搞儱澧藉▓鎴犵磾閹寸姷褰查柨娑橆唹lc鐎规悶鍎茬敮鍫曞箮閳ь剟寮甸敓锟�,婵☆垽绱曢弫鎼佸极閹殿喗鏆╅柣顓滃劥閻︼拷,闁告娲滄晶鏍嫉缁″膊A缂佹稑顦遍悺鎴︽晬娴h棄鐤柦鈧崘顏呮毄閻犱警鍨板ù妯肩磾閹寸姷褰茬紒顔藉劤瀹曟洟鏁嶇仦鑹扮鐎规悶鍎抽埢鑲╂暜閸繂鐏¢梺顐ゅС閻滎垶宕愮粭琛″亾閸屾侗鍋ㄩ弶鈺侀閸櫻冣枖閵娿儰绨冲ǎ鍥b偓鍐插絾濞村吋顨呰ぐ鍧楁晬濮樿鲸鏆╅悗娑欏姇缁辨垿宕i幋鐘电Ч闁挎冻鎷�
    最新推荐
    閻犙冨閺嬶繝宕犻崨顒傜憮閺夌儑鎷�
     [闂傚倸鍊风粈渚€骞夐敓鐘偓鍐幢濡炴洖鎼オ浼村礋椤掍胶褰块梻浣告惈缁嬩線宕㈤懖鈹惧亾濮橆剦妲搁摶鏍煥閺囨氨鍔嶇痪顓炵埣閺屾洟宕奸顫枈闂佸搫鐭夌换婵嗙暦閹烘鏅滈柦妯侯樈娴硷拷]闂傚倸鍊风粈渚€骞夐敓鐘参﹂柣鎰暩閻棗銆掑锝呬壕婵犵鈧磭浠涚€垫澘瀚禒锔剧矙婢剁ǹ顥氭繝鐢靛仦閸ㄧ數澹曢鐘愁潟闁规鍠氱壕濂告煕濞嗘兎顏勭暤閸℃瑢鍋撶憴鍕┛缂佺粯绻傞锝夊箻椤旇棄浜归悗鐟板閸犳袙閸儲鈷掑ù锝呮啞閹牓鏌eΔ鈧Λ婵嬬嵁閺嶎収鏁冮柨鏃囨娴犻箖姊洪崨濠冨闁告挻鐩幃鐤亹閹烘挾鍙嗛梺缁樻礀閸婂湱鈧熬鎷�100 c闂傚倷娴囧畷鍨叏閺夋嚚褰掑礋椤栨氨顔嗛梺璺ㄥ櫐閹凤拷
     [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]濠电姷鏁搁崑鐐哄垂閸洖绠伴柟闂寸蹈閸モ斁鍋撻崷顓炐炲ù婊冩贡缁辨帡鍩€椤掑嫭鍊婚柣顐ゅ█濮婅櫣鎷犻幓鎺濆妷闂佸憡鍔樺畷鐢垫閹炬剚娼╅柛妤冨仜琚i梻浣告啞濞诧箓宕滃☉鈧偓鍛存倻閼恒儱浠梺璇″幗鐢帗淇婃禒瀣厱闁宠桨绀侀埀顒€鐏濋锝夊醇閺囩喎鈧鏌涢埄鍐炬畼濞寸姍鍐f斀闁绘劕寮堕敍宥夋煛娓氬洨鍘�-TR
     [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]LM324闂傚倷绀侀幖顐λ囬锕€鐤炬繝濠傜墕缁€澶愭煛瀹ュ骸骞栨俊顐o耿閺屻劑鎮ら崒娑橆伓4~20mA闂傚倷绀侀幖顐λ囬柆宥呯?闁硅揪绠戠粻顖炴煥閻曞倹瀚�1~5V闂傚倸鍊烽悞锕傛儑瑜版帒鍨傜憸鐗堝笚閸婅埖鎱ㄥΟ澶稿惈闁活厼鐗撻弻銊╂偆閸屾稑顏�
     [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]LM386濠电姷顣槐鏇㈠磻濞戞﹫鑰块弶鍫氭櫅閸ㄦ繃銇勯弽顐沪闁稿﹤鐏氶妵鍕箳瀹ュ洤濡芥繝娈垮灡閹告娊寮婚悢鐓庣闁逛即娼у▓顓烆渻閵堝棙鐓ラ柨鏇ㄤ邯瀵鈽夊⿰鍛澑闂佺懓鐏濋崯顐﹀礈鐠轰警娓婚柕鍫濆暙閸旀粓鏌熼悷鐗堟悙妞ゆ洩缍佹俊鎼佸煛娴h櫣鏆伴柣鐔哥矊椤戝棛绮嬪澶嬫櫜濠㈣泛顑囬崢閬嶆⒑閹稿海绠撻柛鐕佸亝娣囧﹥绺介崨濠備缓濡炪倖鐗撻崐鏍偓姘炬嫹
     [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]936闂傚倸鍊烽懗鍓佸垝椤栨粍鏆滈柟鐑橆殕閺呮繈鏌曢崼婵堝濞存粌缍婇弻鐔虹磼閵忕姵鐏嶉梺绋款儍閸斿矂婀侀梺鎸庣箓閹冲酣寮抽悢鍏肩厽闁哄倹瀵ч崵鍥煛鐏炲墽鈽夐摶锝夋煟閹惧啿顒㈤柣蹇庣窔濮婅櫣鎷犻垾铏亪闂佹寧娲︽禍婊堟偩閻戣棄閱囬柡鍥╁枑濞呫垽姊虹捄銊ユ珢闁瑰嚖鎷�
     [闂傚倸鍊风粈渚€骞夐敓鐘偓鍐幢濡炴洖鎼オ浼村礋椤掍胶褰块梻浣告惈缁嬩線宕㈤懖鈹惧亾濮橆剦妲搁摶鏍煥閺囨氨鍔嶇痪顓炵埣閺屾洟宕奸顫枈闂佸搫鐭夌换婵嗙暦閹烘鏅滈柦妯侯樈娴硷拷]闂傚倷鑳堕崕鐢稿礈濠靛牊鏆滈柟鐑橆殔缁犵娀骞栧ǎ顒€濡介柡鍜佸墴閺岀喖鏌囬敃鈧崢鎾煛鐎n偆澧甸柡灞炬礉缁犳盯濡疯閿涚喖姊洪棃娑氬闁瑰憡濞婇獮鍐亹閹烘挸浠忛柣搴㈢⊕閿氭い蹇ユ嫹+婵犵數濮烽弫鎼佸磻閻愬搫绠伴柟缁㈠枛閻ょ偓绻涢幋鐐茬劰闁稿鎹囬幆鍌炲川婵犲偆浼�+闂傚倸鍊烽懗鍫曘€佹繝鍕濞村吋娼欑壕鍧楁煙缂併垹娅橀柡浣告閺岋綁寮崹顔藉€梺绋块缁夊綊寮诲☉銏犲嵆闁靛ǹ鍎扮花鑽ょ磽娴f彃浜鹃梺璺ㄥ櫐閹凤拷
     [闂傚倸鍊搁崐椋庢閿熺姴纾婚柛娑卞弾濞尖晠鏌曟繛鐐珔闁哄绶氶弻鏇㈠醇濠垫劖效闂佺ǹ顑冮崝鎴濐潖婵犳艾閱囬柣鏃€浜介埀顒佸浮閺岀喖鎸婃径灞澭囨煙椤旀娼愰柟宄版嚇閹兘骞嶉鍛炲┑锛勫亼閸婃牠骞愰幖浣哥疅闁炽儳绻€缂傛碍銇勮箛鎾跺⒈闁轰礁绉电换娑㈠幢濡搫袝闂佺ǹ顑戦幏锟�]S7-200PLC闂傚倸鍊烽悞锕傛儑瑜版帒绀夌€光偓閳ь剟鍩€椤掍礁鍤ù婊呭仱楠炴劙骞掑Δ鈧~鍛存煏閸繃顥滈柛鎾村▕濮婅櫣绱掑Ο鐑╂嫻濠碘€冲级鐢繝鐛箛娑辨晝闁抽攱鑹剧紞濠囧箖椤忓牆宸濇い鏃傗拡娴硷拷 S7_2
     [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]S7-200闂傚倷绀佸﹢閬嶅储瑜旈幃娲Ω閳轰胶顔囨繝鐢靛У閼归箖宕欓悩缁樼厱闁硅埇鍔嶅▍鍥ㄣ亜閳哄啫鍘撮柟顔款潐閹峰懘宕ㄦ繝鍛攨缂傚倷璁查崑鎾绘煕閺囥劌鐏¢柣鎾存礋閻擃偊宕舵搴㈠仹闂佸憡蓱缁海妲愰幒妤€绠熼悗锝庡亜椤忥拷,STEP7
     [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]ModbusPoll闂傚倸鍊风粈渚€骞夐敍鍕灊鐎光偓閸曞灚鏅㈤梺缁樼墪閻涙矚usSalve闂傚倸鍊烽懗鑸电仚婵°倗濮寸换姗€鐛箛娑欐櫢闁跨噦鎷�
     [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]STEP7婵犵數濮烽。钘壩i崨鏉戝瀭妞ゅ繐鐗嗙粈鍫熺節闂堟稓澧愰柛瀣尭椤繈顢橀悩鍐叉珰闂備礁鎼懟顖炴儗娴h櫣涓嶆繛鎴欏灩濡﹢鎮归幁鎺戝闁宠鑻埞鎴︽倷瀹割喖娈舵繝娈垮枙閸楀啿鐣烽幇鏉垮嵆闁绘ê鎼皬闂備浇娉曢崳锕傚箯閿燂拷 Smart_
     [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]Modbus闂傚倷娴囧畷鍨叏閹绢噮鏁勯柛娑欐綑閻ゎ噣鏌熼幆鏉啃撻柛搴★攻閵囧嫰寮介妸褏鐓€闂佹悶鍔嶇换鍫ュ蓟濞戙垹绠绘俊銈傚亾闁稿﹨宕甸幉鎾晸閿燂拷 v1.024 缂傚倸鍊搁崐鎼佸磹妞嬪孩顐介柕鍫濐槸缁狀垶鏌ㄩ悤鍌涘
     [闂傚倷绀侀幖顐λ囬柆宥呯?闁圭増婢橀崹鍌涖亜閺嶃劌鐒归柡瀣叄閺屾洝绠涚€n亞浼勯柣蹇撶箳閺佸寮婚妸鈺傚亞闁稿本绋戦锟�]Modscan32闂傚倸鍊风粈渚€骞夐敍鍕灊鐎光偓閸曞灚鏅㈤梺缁樼墪閻涙硞im32,modb
     [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]89c51闂傚倸鍊烽懗鑸电仚缂備胶绮崝娆掓闂備緡鍓欑粔鐢稿磻閻斿摜绠鹃柟瀛樼懃閻忊晜淇婇锝忚€挎慨濠冩そ椤㈡洟鏁愰崶鍓佷紘闂傚倸鍊稿Λ妤冪礊婵犲洤钃熼柨婵嗩樈閺佸倿鏌涢埄鍐炬畷闁绘縿鍨荤槐鎾存媴娴犲鎽甸梺缁樹緱濡叉籍tues
     [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]濠电姷鏁搁崑鐐哄垂閸洖绠扮紒瀣紩濞差亜围濠㈣泛锕﹂ˇ鐗堜繆閵堝繒鍒伴柛鐕佸亰瀹曟帡濡搁埡鍌滃幈闂佺粯鍔栧ḿ娆掆叿otues濠电姷鏁搁崑娑㈩敋椤撶喐鍙忛柟顖嗏偓閺嬫牠鏌¢崶鈺佸壋闁兼澘娼¢弻銊モ槈濡警浼€闂佹椿鍘介悷鈺呭箖濡ゅ懏鏅查幖瀛樼箘閺佹牜绱掗悙顒佺凡缂佸鏁搁幑銏犫攽婵犲孩歇闂備礁鎲″褰掋€冩繝鍥х畺闁靛鏅滈弲鎼佹煥閻曞倹瀚�
     [闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑闂佽鍨伴惌鍌炲箖濞嗘搩鏁嗛柛灞诲€栫粊顐︽⒑閼姐倕校濞存粈绮欏畷婵嗩吋婢跺﹥妲梺绋跨灱閸嬬偤宕戦敐鍚ゅ綊鏁愰崶銊ユ畬缂備讲鍋撻柛鎰ㄦ杺娴滄粓鏌熼崹顔碱仾閻庢熬鎷�]51闂傚倸鍊风粈渚€骞夐敓鐘偓鍐幢濡炴洖鎼オ浼村礋椤掍胶褰块梻浣告惈缁嬩線宕㈤懖鈹惧亾濮橆剦妯€闁哄本绋戦埞鎴﹀幢濡ゅ﹣鎮i梻浣侯潒閸愬灝濮涚紓浣介哺鐢偤鍩€椤掑﹦绉柛鈺傜墱閳ь剚鐔幏锟� protues濠电姷鏁搁崑娑㈩敋椤撶喐鍙忛柟顖嗏偓閺嬫牠鏌¢崶鈺佸壋闁兼澘娼¢弻銊╂偆閸屾稑顏�
    闁哄牃鍋撻柡鍌滃閺嬪啰绮╅敓锟�
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询