電器led驅動與按鍵讀取電路及控制方法
【技術領域】
[0001]本發明涉及一種電器LED驅動與按鍵讀取電路及控制方法。
【背景技術】
[0002]電器產品中,會經常使用LED發光燈和開關按鍵,初期,人們使用直拉式來驅動LED,同時也是用直拉式來讀取開關按鍵,參見圖1所示;這種方式使用MCU主控芯片的1口資源很多,而1 口越多的MCU主控芯片就越貴;在LED較多,按鍵也較多的情況下使用大量的MCU資源,明顯不合適了,于是人們做了改進,用陣列式的掃描顯示方式,并結合按鍵的讀取,電路圖參見附圖2所示,這種方式大大節約了 MCU資源,節約了成本。
【發明內容】
[0003]本發明所要解決的第一個技術問題是針對上述現有技術提供一種能結構更為合理、使用MCU主控芯片資源更少的電器LED驅動與按鍵讀取電路。
[0004]本發明所要解決的第二個技術問題是提供一種具有上述結構的電器LED驅動與按鍵讀取電路的控制方法。
[0005]本發明解決上述第一技術問題所采用的技術方案為:一種電器LED驅動與按鍵讀取電路,其特征在于:包括M個開關按鍵,X*Y顆LED發光管,Μ、X、Y均為自然數,且M小于等于X ;Μ+Χ個電阻,以及MCU控制芯片,其中:
[0006]第一開關按鍵的第一端均接地,第一開關按鍵的第二端連接第一電阻后引出第一個SEG連接端;第二開關按鍵的第一端均接地,第二開關按鍵的第二端連接第二電阻后引出第二個SEG連接端;……第M開關按鍵的第一端均接地,第M開關按鍵的第二端連接第M電阻后引出第M個SEG連接端;
[0007]而Χ*Υ顆LED發光管排列成X行Y列的陣列;如果Y為偶數,將第一列LED發光管的負極和第二列LED發光管的正極連接在一起引出第一個COM連接端;將第三列LED發光管的負極和第四列LED發光管的正極連接在一起引出第二個COM連接端;……將第Y-1列LED發光管的負極和第Y列LED發光管的正極連接在一起引出第Υ/2個COM連接端;如果Y為奇數,將第一列LED發光管的負極和第二列LED發光管的正極連接在一起引出第一個COM連接端;將第三列LED發光管的負極和第四列LED發光管的正極連接在一起引出第二個COM連接端;……將第Υ-2列LED發光管的負極和第Y-1列LED發光管的正極連接在一起引出第(Y-1)/2個COM連接端,將第Y列LED發光管的負極連接在一起引出第(Y+l)/2個COM連接端;
[0008]Y為偶數時,第一行第一列LED發光管的正極、第一行第二列LED發光管的負極、第一行第三列LED發光管的正極、第一行第四列LED發光管的負極、……第一行第Y-1列LED發光管的正極、第一行第Y列LED發光管的負極連接在一起后連接第Μ+1電阻后與第一個SEG連接端連接;Υ為奇數時,第一行第一列LED發光管的正極、第一行第二列LED發光管的負極、第一行第三列LED發光管的正極、第一行第四列LED發光管的負極、……第一行第Y-2列LED發光管的正極、第一行第Y-1列LED發光管的負極、第一行第Y列LED發光管的正極連接在一起后連接第M+1電阻后與第一個SEG連接端連接;
[0009]Y為偶數時,第二行第一列LED發光管的正極、第二行第二列LED發光管的負極、第二行第三列LED發光管的正極、第二行第四列LED發光管的負極、……第二行第Y-1列LED發光管的正極、第二行第Y列LED發光管的負極連接在一起后連接第M+2電阻后與第二個SEG連接端連接;Y為奇數時,第二行第一列LED發光管的正極、第二行第二列LED發光管的負極、第二行第三列LED發光管的正極、第二行第四列LED發光管的負極、……第二行第Υ-2列LED發光管的正極、第二行第Y-1列LED發光管的負極、第二行第Y列LED發光管的正極連接在一起后連接第Μ+2電阻后與第二個SEG連接端連接;
[0010]......
[0011]Y為偶數時,第X行第一列LED發光管的正極、第X行第二列LED發光管的負極、第X行第三列LED發光管的正極、第X行第四列LED發光管的負極、……第X行第Y_1列LED發光管的正極、第X行第Y列LED發光管的負極連接在一起后連接第M+X電阻后與第X個SEG連接端連接;Y為奇數時,第X行第一列LED發光管的正極、第X行第二列LED發光管的負極、第X行第三列LED發光管的正極、第X行第四列LED發光管的負極、……第X行第Υ-2列LED發光管的正極、第X行第Y-1列LED發光管的負極、第X行第Y列LED發光管的正極連接在一起后連接第Μ+Χ電阻后與第X個SEG連接端連接;
[0012]X個SEG連接端分別與MCU控制芯片的X個1引腳連接;
[0013][(Y+l)/2]個COM連接端分別與MCU控制芯片的[(Υ+1)/2]個1引腳連接,[]為向上取整符號。
[0014]作為其中的一種方案,當所述M = 7,所述X = 8,所述Y = 4。
[0015]本發明解決上述第二個技術問題采用的技術方案為:上述電器LED驅動與按鍵讀取電路的控制方法,其特征在于:MCU控制芯片采用的中斷間隔時間為2ms,MCU控制芯片對7個開關按鍵的讀取和對32顆LED發光管的驅動在上述中斷時間內中完成,MCU控制芯片在上述中斷時間內的操作流程包括:
[0016]步驟(I)、MCU控制芯片啟動2ms中斷后,立即將與8個SEG連接端連接的8個1引腳連接及與2個COM連接端連接的2個1引腳連接轉成高阻態;
[0017]步驟⑵、設置事件參數led_com,令led_com++ ;
[0018]步驟(3)、判斷led_com是否大于8,若是,令led_com = 0,然后執行步驟⑷,若否,直接轉步驟(4);
[0019]步驟(4)、判斷led_com的值,然后根據不同led_com值,執行不同操作:
[0020]名稱解釋:有效的SEG 口輸出——當COM 口開啟低電平的情況下,如果SEG 口為高電平時,能點亮連接在相應SEG 口與COM 口之間的LED燈,而且需要點亮這顆LED時,稱為有效的SEG 口輸出高電平,如果不需要點亮這顆LED燈時,該SEG 口為無效狀態,即維持高阻態;當COM 口開啟高電平的情況下,如果SEG 口為低電平時,能點亮連接在相應SEG 口與COM 口之間的LED燈,而且需要點亮這顆LED時,稱為有效的SEG 口輸出低電平,如果不需要點亮這顆LED燈時,SEG 口為無效狀態,即維持高阻態;
[0021]若led_com = 0,將與第一個SEG連接端至第4個SEG連接端連接的4個1引腳有效的SEGO?SEG3輸出低電平;將與第一個COM連接端1引腳COMO輸出高電平;
[0022]若led_com = I,將與第5個SEG連接端至第8個SEG連接端連接的4個1引腳有效的SEG4?SEG7輸出低電平;將與第一個COM連接端1引腳COMO輸出高電平;
[0023]若led_com = 2,將與第一個SEG連接端至第4個SEG連接端連接的4個1引腳有效的SEGO?SEG3輸出高電平;將與第一個COM連接端1引腳COMO輸出低電平;
[0024]若led_com = 3,將與第5個SEG連接端至第8個SEG連接端連接的4個1引腳有效的SEG4?SEG7輸出高電平;將與第一個COM連接端1引腳COMO輸出低電平;
[0025]若led_com = 4,將與第一個SEG連接端至第4個SEG連接端連接的4個1引腳有效的SEGO?SEG3輸出低電平;將與第2個COM連接端1引腳COMl輸出高電平;
[0026]若led_com = 5,將與第5個SEG連接端至第8個SEG連接端連接的4個1引腳有效的SEG4?SEG7輸出低電平;將與第二個COM連接端1引腳COMl輸出高電平;
[0027]若led_com = 6,將與第一個SEG連接端至第4個SEG連接端連接的4個1引腳有效的SEGO?SEG3輸出高電平;將與第二個COM連接端1引腳COMl輸出低電平;
[0028]若led_com = 7,將與第5個SEG連接端至第8個SEG連接端連接的4個1引腳有效的SEG4?SEG7輸出高電平;將與第二個COM連接端1引腳COMl輸出低電平;
[0029]若led_com = 8,轉至按鍵讀取子程序;
[0030]按鍵讀取子程序包括:
[0031]步驟(a)、將與第一個SEG連接端連接的1引腳SEGO輸出高電平后直接轉成輸入模式;然后使用兩個空指令一一NOP指令;然后讀取SEG0,判斷SEGO是否等于0,若是,則判斷第一開關按鍵的狀態為“按下”狀態,否則判斷第一開關按鍵的狀態為“彈起”狀態;隨即將與第一個SEG連接端連接的1引腳SEGO轉成高阻態;
[0032]步驟(b)、將與第二個SEG連接端連接的1引腳SEGl輸出高電平后直接轉成輸入模式;然后使用兩個空指令一一NOP指令;然后讀取SEGl,判斷SEGl是否等于0,若是,則判斷第二開關按鍵的狀態為“按下”狀態,否則判斷第二開關按鍵的狀態為“彈起”狀態;隨即將與第二個SEG連接端連接的1引腳SEGl轉成高阻態;
[0033]步驟(c)、將與第三個SEG連接端連接的1引腳SEG2輸出高電平后直接轉成輸入模式;然后使用兩個空指令一一NOP指令;然后讀取SEG2,判斷SEG2是否等于0,若是,則判斷第三開關按鍵的狀態為“按下”狀態,否則判斷第三開關按鍵的狀態為“彈起”狀態;隨即將與第三個