欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
輕觸式開(kāi)關(guān)電路在A(yíng)VR單片機中的應用
輕觸式開(kāi)關(guān)電路在A(yíng)VR單片機中的應用
引 言:
單鍵開(kāi)關(guān)電路已經(jīng)廣泛應用于PDA、手機和電子詞典等數碼產(chǎn)品中,其實(shí)現方式多種多樣。一般可采用RS觸發(fā)器、計數器以及采用555集成電路等等。在單片機的一些實(shí)際應用中,以上的實(shí)現方式會(huì )增加整個(gè)電路的復雜度,不能達到簡(jiǎn)潔、實(shí)用的效果。本文將介紹一種可以在單片機應用中實(shí)現的,簡(jiǎn)易、穩定的輕觸式單鍵開(kāi)關(guān)電路。
1 電路原理

  如圖1所示,DC-DC為一個(gè)帶有關(guān)斷控制端的直流穩壓電源芯片,MCU是一個(gè)單片機。當按下S1時(shí),Q1和D1導通,穩壓芯片工作,為單片機供電。單片機馬上將相應的I/O引腳置為輸出高,這時(shí)Q1和Q2導通,整個(gè)電路進(jìn)入工作狀態(tài)。而后單片機再將這個(gè)I/O引腳設置為輸入,由于上拉電阻R4的存在,Q1和Q2一直導通。單片機一直掃描相應I/O輸入狀態(tài),如果S1沒(méi)有按下去,則這個(gè)I/O將始終為高。當S1再次按下去時(shí),D2導通,單片機檢測到這個(gè)I/O引腳輸入為低,這時(shí)單片機就將這個(gè)I/O設置成輸出為低的狀態(tài)。Q2截止,如果按鍵抬起,Q1也會(huì )截止,穩壓芯片將不會(huì )為單片機提供電壓,整個(gè)電路處于關(guān)斷狀態(tài)。




2 關(guān)于R3和上拉電阻R4的取值

  在一些單片機中,例如AVR系列單片機ATmega8L,帶有內部上拉電阻Rpu,如圖2所示。



可以通過(guò)單片機程序控制電阻上拉與否,從而不需要外接上拉。
一般情況下,R3取值要遠大于R4,否則單片機I/O的輸入電壓Vpin會(huì )有低于標準輸入電壓VIH最低值的可能。從ATmega8L數據手冊中查到 Rpu取值在20kΩ~100kΩ之間,又因為VIH的最小值約為0.6VCC。因此R3/(R3+R4)>0.6,取R4=50kΩ,并取R3/ (R3+R4)=0.8 ,所以R3取值應該在200kΩ左右的范圍,可以根據實(shí)際工作情況來(lái)選擇具體的R4取值。

3 對Vin連接方式的處理

  從圖1上不難看出,采用這種控制方式后,Q1上將會(huì )消耗一定的功率。一種降低功率消耗的方式就是將Vin直接接到電池上去,可以根據電路靈活掌握。

4 電容C1的作用

  對于一般的AVR單片機來(lái)說(shuō),內部都有BOD(Brown-down Detection)電路。這個(gè)電路具有低電壓檢測功能:當輸入電壓由高變低時(shí),單片機就會(huì )自動(dòng)復位。

  如圖1所示,想關(guān)機的時(shí)候,按下S1,單片機輸出低。按鍵抬起后,Q1、Q2截止,單片機掉電。然而單片機的BOD電路檢測到單片機的電壓突然降低后,就會(huì )使單片機復位,并將I/O設置為上拉狀態(tài),Q1、Q2導通,導制電路再次開(kāi)啟。

  加入C1后,使單片機掉電后要對C1進(jìn)行充電,而在C1充電沒(méi)有達到單片機工作最低電壓期間,Q1、Q2已經(jīng)截止了,從而打亂了單片機復位操作。 5 開(kāi)關(guān)機延時(shí)處理

  在一些具體的應用場(chǎng)合,例如手機等數碼產(chǎn)品,開(kāi)關(guān)機都需要延時(shí)操作。一種簡(jiǎn)單的實(shí)現方式就是,單片機在按鍵按下時(shí)開(kāi)始計數,直到按鍵抬起。只有這個(gè)計數值足夠大,才允許開(kāi)機,否則不認為是開(kāi)機操作。同理,關(guān)機也可以做類(lèi)似的處理。

  單片機程序流程如圖3所示。


單鍵開(kāi)關(guān)電路已經(jīng)廣泛應用于PDA、手機和電子詞典等數碼產(chǎn)品中,其實(shí)現方式多種多樣。一般可采用RS觸發(fā)器、計數器以及采用555集成電路等等。在單片機的一些實(shí)際應用中,以上的實(shí)現方式會(huì )增加整個(gè)電路的復雜度,不能達到簡(jiǎn)潔、實(shí)用的效果。本文將介紹一種可以在單片機應用中實(shí)現的,簡(jiǎn)易、穩定的輕觸式單鍵開(kāi)關(guān)電路。

相關(guān)電路如下圖示:

MCU用的是AVR 的ATMEGA16L,電源芯片用的是LM2576-3.3,是低電平開(kāi)啟的,有些電源芯片用的是高電平開(kāi)啟。圖中有標注。

這個(gè)是不能復位的版本。一復位就會(huì )關(guān)機。就是只有上電復位。

說(shuō)明一下第一個(gè)電路工作原理:

S2按下后,D3,Q1,Q3導通,輸出低電平給LM2576的判斷控制端。穩壓芯片工作,為單片機供電。單片機馬上將相應的I/O引腳置為輸出高,這時(shí)Q1和Q2及Q3都導通,整個(gè)電路進(jìn)入工作狀態(tài)。而后單片機再將這個(gè)I/O引腳設置為輸入,由于開(kāi)啟AVR單片機IO的內置上拉電阻,Q1和Q2和Q3一直導通。單片機一直掃描相應I/O輸入狀態(tài),如果S2沒(méi)有按下去,則這個(gè)I/O將始終為高。當S2再次按下去時(shí),D4導通,單片機檢測到這個(gè)I/O引腳輸入為低,此時(shí)作些延時(shí),看延時(shí)合不合預先設定的值,達到則將單片機的這個(gè)I/O設置成輸出為低的狀態(tài)。Q2截止,如果按鍵抬起,Q1也會(huì )截止,穩壓芯片將不會(huì )為單片機提供電壓,整個(gè)電路處于關(guān)斷狀態(tài)。

注意,C10是必不可少的,不然由于單單片機的復位操作會(huì )使系統斷電。

進(jìn)入正常工作后,就將正常工作的代碼寫(xiě)入EEPROM。關(guān)機時(shí)將正常關(guān)機的代碼也寫(xiě)入EEPROM。這樣,還可以檢測是不是正常關(guān)機。

最后,奉上這些boot代碼:

//*****************************GCC for the new lab board ******************************

//****************************** code 02 ***********************************************

#include

#include

#include

#include

#define POWER PB0

#define LED  PD7

#define ON  0x0f

#define OFF  0xf0

//******************************向UART 寫(xiě)一字節**************************************

int usart_putchar(char c)

{

 if(c==
)

 usart_putchar( );

 loop_until_bit_is_set(UCSRA,UDRE);

 UDR=c;

 return 0;

}

//*******************************從UART 讀一字節*************************************

int usart_getchar(void)

{

 loop_until_bit_is_set(UCSRA,RXC);

 return UDR;

}

//************************************初始化i/o**************************************

void Initialuart(void)

{

 //UART 初始化

 UCSRB=_BV(RXEN)|_BV(TXEN);/*(1<<><>

 UBRRL=25; //9600 baud 6MHz:38 4MHz:25

 //i/o 流UART 連接

 fdevopen(usart_putchar,usart_getchar,0);

}

//*********************************to start the power,hehe***************************

void Powerpost(void)

{

 unsigned long i=0;

 unsigned char val;

 DDRB&=~_BV(POWER);

 PORTB|=_BV(POWER);

 eeprom_busy_wait();

 val=eeprom_read_byte(0); //從EEPROM 0 地址處讀取一字節賦給RAM 變量val

 if(val==OFF)

 {

  //if(PIND&_BV(K4)) _delay_ms(500);if(PIND&_BV(K4))

  while(!(PINB&_BV(POWER))) {i++;if(i>300000) break;}

  if(i>=300000)

  {

   DDRB|=_BV(POWER);

   PORTB|=_BV(POWER);

   eeprom_busy_wait(); //等待EEPROM 讀寫(xiě)就緒

   eeprom_write_byte(0,ON); //將0xbb 寫(xiě)入到EEPORM 0 地址處 

   DDRD|=_BV(LED);

   PORTD|=_BV(LED); 

  }

  else

  {

   eeprom_busy_wait(); //等待EEPROM 讀寫(xiě)就緒

   eeprom_write_byte(0,OFF); //將0xbb 寫(xiě)入到EEPORM 0 地址處

   DDRB|=_BV(POWER);

   PORTB&=~_BV(POWER); 

   DDRD|=_BV(LED);

   PORTD&=~_BV(LED);    

  }

    

 }

 else

 {

  DDRD|=_BV(LED);

  PORTD|=_BV(LED);

  DDRB|=_BV(POWER);

  PORTB|=_BV(POWER);

  eeprom_busy_wait(); //等待EEPROM 讀寫(xiě)就緒

  eeprom_write_byte(0,ON); //將0xbb 寫(xiě)入到EEPORM 0 地址處 

 }

}

//************************************Shut Down *************************************

void ShutDown(void)

{

 unsigned long i=0;

 while(!(PINB&_BV(POWER))) {i++;if(i>200000) break;}

 if(i>=200000)

 {

  eeprom_busy_wait(); //等待EEPROM 讀寫(xiě)就緒

  eeprom_write_byte(0,OFF); //將OFF 寫(xiě)入到EEPORM 0 地址處

  PORTD&=~_BV(LED);

  DDRB|=_BV(POWER);

  PORTB&=~_BV(POWER);     

 }

}

//************************************the entrey*************************************

int main()

 Powerpost();

 Initialuart();

 printf("hello,你好嗎?嘿嘿!!
"); 

// PORTB=0x00;

 while(1)

 {

  ShutDown();

 }

}

祝大家成功!!!


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于PIC單片機的逆變電路設計初探
【專(zhuān)業(yè)知識】>>【AVR單片機簡(jiǎn)介】
avr單片機復位電路
兩種方式實(shí)現C語(yǔ)言訪(fǎng)問(wèn)MCU寄存器
12V輕觸開(kāi)關(guān)自鎖電路
avr單片機定時(shí)計數器
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久