普通io口識別輸入狀態的方法及裝置制造方法
【專利摘要】本發明公開一種普通IO口識別輸入狀態的方法及裝置,所述方法包括:將待讀取輸入狀態的普通IO口設置為輸入功能,讀取普通IO口的初始電平狀態;根據初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對普通IO口進行檢測;基于檢測的結果識別普通IO口的輸入狀態。本發明由于所述內部配置模塊能配置出內部強、弱上拉模式、內部強、弱下拉模式等多種模式,因此,可通過單片機的普通IO口來對多種狀態的輸入進行識別判斷,十分靈活,且無需增加AD轉換功能,降低了成本。
【專利說明】普通IO 口識別輸入狀態的方法及裝置
【技術領域】
[0001]本發明涉及單片機【技術領域】,尤其涉及一種普通IO 口識別輸入狀態的方法。
【背景技術】
[0002]目前,普通的輸入輸出口如單片機的IO口只能實現識別判斷兩種狀態的輸入:高電平輸入和低電平輸入,當應用于PCB板版本管理時,只能對應識別判斷兩種PCB板的版本,但是,一般的情況下,PCB板會超出兩個版本,這樣就需要利用單片機的IO 口識別多種狀態的輸入來解決這個問題。現有技術中,要識別多種狀態的輸入,通常需要利用單片機的AD轉換功能接口,成本較高,單片機的普通IO 口由于不具有AD轉換功能,因此,按目前常用的方法則無法對多種狀態的輸入進行識別,然而,有時為了控制成本或設計的需要,必須通過單片機的普通IO 口來實現對多種狀態的輸入進行識別判斷,則無法通過現有技術來實現。
【發明內容】
[0003]本發明的主要目的在于提供一種普通IO 口識別輸入狀態的方法及裝置,旨在提高普通IO 口的功能及降低成本。
[0004]為了達到上述目的,本發明提出一種普通IO 口識別輸入狀態的方法,包括:
[0005]將待讀取輸入狀態的普通IO 口設置為輸入功能,讀取所述普通IO 口的初始電平狀態;
[0006]根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測;
[0007]基于檢測的結果識別所述普通IO 口的輸入狀態。
[0008]優選地,所述根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測的步驟具體為:
[0009]根據所述初始電平狀態進行所述內部配置模塊的模式配置,基于配置的所述內部配置模塊及所述外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,獲取檢測結果。
[0010]優選地,當所述初始電平狀態為高電平狀態時,所述根據所述初始電平狀態對單片機的內部配置模塊進行配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測的步驟具體包括:
[0011]將所述內部配置模塊配置成強下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態A ;
[0012]基于所述狀態A將所述內部配置模塊配置成弱下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態B ;
[0013]所述基于檢測的結果識別所述普通IO 口的輸入狀態的步驟具體為:
[0014]根據所述狀態A、狀態B識別所述普通IO 口的輸入狀態。[0015]優選地,當所述初始電平狀態為低電平狀態時,所述根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO口進行檢測的步驟具體包括:
[0016]將所述內部配置模塊配置成強上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態C ;
[0017]基于所述狀態C將所述內部配置模塊配置成弱上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態D ;
[0018]所述基于檢測的結果識別所述普通IO 口的輸入狀態的步驟具體為:
[0019]根據所述狀態C、狀態D識別所述普通IO 口的輸入狀態。
[0020]優選地,所述基于檢測的結果識別所述普通IO 口的輸入狀態的步驟還包括:
[0021]根據預先設定的所述普通IO 口不同的輸入狀態與其代表的不同標示制定一查詢表,識別出所述普通IO 口的不同輸入狀態后,在所述查詢表中進行查找比對,識別出與之對應的標示。
[0022]本發明還提出一種普通IO 口識別輸入狀態的裝置,包括:
[0023]讀取模塊,用于將待讀取輸入狀態的普通IO 口設置為輸入功能,讀取所述普通IO口的初始電平狀態;
[0024]配置檢測模塊,用于根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測;
[0025]識別模塊,用于基于檢測的結果識別所述普通IO 口的輸入狀態。
[0026]優選地,所述配置檢測模塊用于:
[0027]根據所述初始電平狀態進行所述內部配置模塊的模式配置,基于配置的所述內部配置模塊及所述外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,獲取檢測結果。
[0028]優選地,所述外部電阻模塊為外部上拉電阻,所述外部上拉電阻的一端與單片機的供電電源連接,所述外部上拉電阻的另一端與所述普通IO 口連接;所述內部配置模塊用于配置強下拉模式、弱下拉模式。
[0029]優選地,所述外部電阻模塊為外部下拉電阻,所述外部下拉電阻的一端與所述普通IO 口連接,所述外部下拉電阻的另一端接地;所述內部配置模塊用于配置強上拉模式、弱上拉模式。
[0030]優選地,所述識別模塊用于:
[0031]根據預先設定的所述普通IO 口不同的輸入狀態與其代表的不同標示制定一查詢表,識別出所述普通IO 口的不同輸入狀態后,在所述查詢表中進行查找比對,識別出與之對應的標示。
[0032]本發明提出的一種普通IO 口識別輸入狀態的方法及裝置,根據讀取的所述普通IO 口的初始電平狀態對單片機的內部配置模塊進行模式配置,再通過配置的所述內部配置模塊及外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,根據檢測的結果識別所述普通IO 口的輸入狀態,由于所述內部配置模塊能配置出內部強、弱上拉模式、內部強、弱下拉模式等多種模式,因此,即可通過單片機的普通IO 口來對多種狀態的輸入進行識別判斷,十分靈活,且無需增加AD轉換功能,降低了成本。【專利附圖】
【附圖說明】
[0033]圖1是本發明普通IO 口識別輸入狀態的方法較佳實施例的流程示意圖;
[0034]圖2是本發明普通IO 口識別輸入狀態的裝置較佳實施例的結構示意圖。
[0035]為了使本發明的技術方案更加清楚、明了,下面將結合附圖作進一步詳述。
【具體實施方式】
[0036]本發明實施例的解決方案主要是:根據讀取的所述普通IO 口的初始電平狀態對單片機的內部配置模塊進行模式配置,再通過配置的所述內部配置模塊及外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,根據檢測的結果識別所述普通IO 口的輸入狀態。
[0037]如圖1所示,本發明較佳實施例提出一種普通IO 口識別輸入狀態的方法,包括:
[0038]步驟SlOl,將待讀取輸入狀態的普通IO 口設置為輸入功能,讀取所述普通IO 口的初始電平狀態;
[0039]單片機的普通10(Input/0utput,輸入/輸出)口具有輸入輸出功能,單片機可根據不用應用選擇IO 口相應的輸入輸出狀態,對于待讀取輸入狀態的普通IO 口,首先由單片機將該普通IO 口設置為輸入功能,即該普通IO 口作為輸入口接收輸入信號。
[0040]單片機外與所述普通IO 口接有一外部電阻模塊,所述外部電阻模塊可為一外部上拉電阻或外部下拉電阻,當所述外部電阻模塊為外部上拉電阻時,所述外部上拉電阻的一端與單片機的供電電源連接,所述外部上拉電阻的另一端與所述普通IO 口連接;當所述外置分壓模塊為外部下拉電阻時,所述外部下拉電阻的一端與所述普通IO 口連接,所述外部下拉電阻的另一端接地。進一步地,根據取值大小的不同,外部上拉電阻還可分為外部強上拉電阻和外部弱上拉電阻,外部下拉電阻可分為外部強下拉電阻和外部弱下拉電阻,且在一種情況下,所述外部電阻模塊中還可既無外部上拉電阻,也無外部下拉電阻。所述普通IO 口連接的所述外部電阻模塊中電阻的連接位置及大小不同時,對應的輸入狀態也會不同,因此,本實施例中即可通過判斷所述普通IO 口連接的所述外部電阻模塊中電阻的連接位置及大小的不同來對不同的輸入狀態進行識別。
[0041]根據所述外部電阻模塊中電阻的連接位置及大小的不同,所述普通IO 口初始的輸入狀態也會不同,檢測待讀取輸入狀態的普通IO 口的高低電平狀態,獲取所述普通IO 口的初始電平狀態。
[0042]步驟S102,根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測;
[0043]根據獲取的所述普通IO 口的初始電平狀態判斷所述外部電阻模塊中電阻的連接位置,當所述初始電平狀態為高電平狀態時,則判斷與所述普通IO 口連接的所述外部電阻模塊中的電阻為外部上拉電阻;當所述初始電平狀態為低電平狀態時,則判斷與所述普通IO 口連接的所述外部電阻模塊中的電阻為外部下拉電阻。因此,根據獲取到的所述普通IO口的初始電平狀態即可判斷出所述普通IO 口連接的所述外部電阻模塊中的電阻是外部上拉電阻還是外部下拉電阻,從而對單片機的內部配置模塊進行模式配置。
[0044]根據所述初始電平狀態判斷出所述外部電阻模塊中的電阻是外部上拉電阻還是外部下拉電阻后,單片機通過內部寄存器進行所述內部配置模塊的模式配置,所述內部配置模塊可根據所述外部電阻模塊中的電阻是外部上拉電阻還是外部下拉電阻而相應的配置為下拉模式或上拉模式,具體地,本實施例中,所述內部配置模塊可配置為強上拉模式、強下拉模式、弱上拉模式及弱下拉模式。
[0045]需要說明的是,不同型號的單片機其內部配置模塊配置的模式種類也會有所不同,如有的單片機內部配置模塊可配置成強、弱上拉模式及強、弱下拉模式,進一步地,有的單片機內部配置模塊還可更加細化配置成強強上拉、強上拉模式,弱弱上拉、弱上拉模式,強強下拉、強下拉模式,弱弱下拉、弱下拉模式,其工作原理均相同,都是基于所述外部電阻模塊及配置的所述內部配置模塊對所述供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,為了便于說明,本實施例中以單片機內部配置模塊配置成強、弱上拉模式及強、弱下拉模式為例進行說明,當然,也不限定單片機內部配置模塊配置成其他更多種類的模式,其工作原理可參照單片機內部配置模塊配置成強、弱上拉模式及強、弱下拉模式的工作原理,在此不再贅述。
[0046]具體地,本實施例中,當判斷所述外部電阻模塊中的電阻為外部上拉電阻時,則將單片機的內部配置模塊配置成下拉模式,如可配置成強下拉模式、弱下拉模式后對所述普通IO 口的高低電平狀態進行檢測,對配置成強下拉模式、弱下拉模式來進行檢測的順序不作進一步地限定,如可先配置成強下拉模式、再配置成弱下拉模式,也可先配置成弱下拉模式、再配置成強下拉模式,為了便于說明,在此僅以先配置成強下拉模式、再配置成弱下拉模式為例進行詳細說明。先將單片機的內部配置模塊配置成強下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態A ;并基于狀態A將單片機的內部配置模塊配置成弱下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態B。
[0047]當判斷所述外部電阻模塊中的電阻為外部下拉電阻時,則將單片機的內部配置模塊配置成上拉模式,如可配置成強上拉模式、弱上拉模式后對所述普通IO 口的高低電平狀態進行檢測,對配置成強上拉模式、弱上拉模式來進行檢測的順序不作進一步地限定,如可先配置成強上拉模式、再配置成弱上拉模式,也可先配置成弱上拉模式、再配置成強上拉模式,為了便于說明,在此僅以先配置成強上拉模式、再配置成弱上拉模式為例進行詳細說明。先將單片機的內部配置模塊配置成強上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態C ;并基于狀態C將單片機的內部配置模塊配置成弱上拉模式,對所述普通IO口的高低電平狀態進行檢測得到狀態D。
[0048]步驟S103,基于檢測的結果識別所述普通IO 口的輸入狀態。
[0049]根據獲取的狀態A、B或狀態C、D對所述普通IO 口的輸入狀態進行識別,具體地,當判斷所述外部電阻模塊中的電阻為外部上拉電阻時,先將單片機的內部配置模塊配置成強下拉模式,對此時所述普通IO 口的高低電平狀態進行檢測得到狀態A,若狀態A為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為強上拉電源正輸入狀態;若狀態A為低電平狀態,則繼續將單片機的內部配置模塊配置成弱下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態B,若狀態B為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為弱上拉電源正輸入狀態,若狀態B為低電平狀態,則識別出此時所述普通IO 口的輸入狀態為高阻輸入狀態。
[0050]當判斷所述外部電阻模塊中的電阻為外部下拉電阻時,先將單片機的內部配置模塊配置成強上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態C ;若狀態C為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為強下拉電源負輸入狀態;若狀態C為低電平狀態,則繼續將單片機的內部配置模塊配置成弱上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態D,若狀態D為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為弱下拉電源負輸入狀態,若狀態D為低電平狀態,則識別出此時所述普通IO 口的輸入狀態為高阻輸入狀態。
[0051]由此,本實施例中由于所述內部配置模塊能配置出強、弱上拉模式、強、弱下拉模式等多種模式,因此,即可通過單片機的普通IO 口來對多種狀態的輸入進行識別判斷,十分靈活,且無需增加AD轉換功能,降低了成本。具體在本實施例中,根據所述初始電平狀態將所述內部配置模塊配置成強、弱上拉模式或強、弱下拉模式后對所述普通IO 口的高低電平狀態進行檢測,基于檢測結果普通IO 口可至少識別出強上拉電源正輸入狀態、弱上拉電源正輸入狀態、強下拉電源負輸入狀態、弱下拉電源負輸入狀態及高阻輸入狀態這5種狀態,比現有技術中普通IO 口只能識別出高電平輸入狀態及低電平輸入狀態多出3種,能基本滿足實際應用中需普通IO 口識別多種狀態的要求,且不同單片機的內部配置模塊中可配置的模式種類可能更多,則相應的可識別出的輸入狀態種類也更多。可利用本實施例中普通IO 口能對多種輸入狀態進行識別來通過普通IO 口標示不同的版本號,如PCB版本號等,本實施例中的普通IO 口即能對5個不同的PCB版本號進行標示,進一步地,還可通過若干普通IO 口輸入狀態的組合來對版本號進行標示,則能標示的版本號數目也大大增加,如通過2個普通IO 口的組合來對PCB版本號進行標示時,則可標示25個不同的PCB版本號,在實際應用中可為產品的開發、設計帶來很大的方便。
[0052]在本實施例的一個可選實施方式中,還可在需識別不同標示如PCB版本號時,預先設定所述普通IO 口不同的輸入狀態與其代表的不同標示即對應的PCB版本號,并根據預先設定所述普通IO 口不同的輸入狀態與其代表的不同標示制定一查詢表,在識別出所述普通IO 口的不同輸入狀態后,在所述查詢表中進行查找比對,識別出與之對應的標示,能更加方便、快捷的應用在識別PCB版本號等不同標示上。
[0053]如圖2所示,本發明較佳實施例提出一種普通IO 口識別輸入狀態的裝置,包括:讀取模塊201、配置檢測模塊202以及識別模塊203,其中:
[0054]讀取模塊201,用于將待讀取輸入狀態的普通IO 口設置為輸入功能,讀取所述普通IO 口的初始電平狀態;
[0055]單片機的普通10(Input/0utput,輸入/輸出)口具有輸入輸出功能,單片機可根據不用應用選擇IO 口相應的輸入輸出狀態,對于待讀取輸入狀態的普通IO 口,首先由單片機將該普通IO 口設置為輸入功能,即該普通IO 口作為輸入口接收輸入信號。
[0056]單片機外與所述普通IO 口接有一外部電阻模塊,所述外部電阻模塊可為一外部上拉電阻或外部下拉電阻,當所述外部電阻模塊為外部上拉電阻時,所述外部上拉電阻的一端與單片機的供電電源連接,所述外部上拉電阻的另一端與所述普通IO 口連接;當所述外置分壓模塊為外部下拉電阻時,所述外部下拉電阻的一端與所述普通IO 口連接,所述外部下拉電阻的另一端接地。進一步地,根據取值大小的不同,外部上拉電阻還可分為外部強上拉電阻和外部弱上拉電阻,外部下拉電阻可分為外部強下拉電阻和外部弱下拉電阻,且在一種情況下,所述外部電阻模塊中還可既無外部上拉電阻,也無外部下拉電阻。所述普通IO 口連接的所述外部電阻模塊中電阻的連接位置及大小不同時,對應的輸入狀態也會不同,因此,本實施例中即可通過判斷所述普通IO 口連接的所述外部電阻模塊中電阻的連接位置及大小的不同來對不同的輸入狀態進行識別。
[0057]根據所述外部電阻模塊中電阻的連接位置及大小的不同,所述普通IO 口初始的輸入狀態也會不同,檢測待讀取輸入狀態的普通IO 口的高低電平狀態,獲取所述普通IO 口的初始電平狀態。
[0058]配置檢測模塊202,用于根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測;
[0059]根據獲取的所述普通IO 口的初始電平狀態判斷所述外部電阻模塊中電阻的連接位置,當所述初始電平狀態為高電平狀態時,則判斷與所述普通IO 口連接的所述外部電阻模塊中的電阻為外部上拉電阻;當所述初始電平狀態為低電平狀態時,則判斷與所述普通IO 口連接的所述外部電阻模塊中的電阻為外部下拉電阻。因此,根據獲取到的所述普通IO口的初始電平狀態即可判斷出所述普通IO 口連接的所述外部電阻模塊中的電阻是外部上拉電阻還是外部下拉電阻,從而對單片機的內部配置模塊進行模式配置。
[0060]根據所述初始電平狀態判斷出所述外部電阻模塊中的電阻是外部上拉電阻還是外部下拉電阻后,單片機通過內部寄存器進行所述內部配置模塊的模式配置,所述內部配置模塊可根據所述外部電阻模塊中的電阻是外部上拉電阻還是外部下拉電阻而相應的配置為下拉模式或上拉模式,具體地,本實施例中,所述內部配置模塊可配置為強上拉模式、強下拉模式、弱上拉模式及弱下拉模式。
[0061]需要說明的是,不同型號的單片機其內部配置模塊配置的模式種類也會有所不同,如有的單片機內部配置模塊可配置成強、弱上拉模式及強、弱下拉模式,進一步地,有的單片機內部配置模塊還可更加細化配置成強強上拉、強上拉模式,弱弱上拉、弱上拉模式,強強下拉、強下拉模式,弱弱下拉、弱下拉模式,其工作原理均相同,都是基于所述外部電阻模塊及配置的所述內部配置模塊對所述供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,為了便于說明,本實施例中以單片機內部配置模塊配置成強、弱上拉模式及強、弱下拉模式為例進行說明,當然,也不限定單片機內部配置模塊配置成其他更多種類的模式,其工作原理可參照單片機內部配置模塊配置成強、弱上拉模式及強、弱下拉模式的工作原理,在此不再贅述。
[0062]具體地,本實施例中,當判斷所述外部電阻模塊中的電阻為外部上拉電阻時,則將單片機的內部配置模塊配置成下拉模式,如可配置成強下拉模式、弱下拉模式后對所述普通IO 口的高低電平狀態進行檢測,對配置成強下拉模式、弱下拉模式來進行檢測的順序不作進一步地限定,如可先配置成強下拉模式、再配置成弱下拉模式,也可先配置成弱下拉模式、再配置成強下拉模式,為了便于說明,在此僅以先配置成強下拉模式、再配置成弱下拉模式為例進行詳細說明。先將單片機的內部配置模塊配置成強下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態A ;并基于狀態A將單片機的內部配置模塊配置成弱下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態B。
[0063]當判斷所述外部電阻模塊中的電阻為外部下拉電阻時,則將單片機的內部配置模塊配置成上拉模式,如可配置成強上拉模式、弱上拉模式后對所述普通IO 口的高低電平狀態進行檢測,對配置成強上拉模式、弱上拉模式來進行檢測的順序不作進一步地限定,如可先配置成強上拉模式、再配置成弱上拉模式,也可先配置成弱上拉模式、再配置成強上拉模式,為了便于說明,在此僅以先配置成強上拉模式、再配置成弱上拉模式為例進行詳細說明。先將單片機的內部配置模塊配置成強上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態C ;并基于狀態C將單片機的內部配置模塊配置成弱上拉模式,對所述普通IO口的高低電平狀態進行檢測得到狀態D。
[0064]識別模塊203,用于基于檢測的結果識別所述普通IO 口的輸入狀態。
[0065]根據獲取的狀態A、B或狀態C、D對所述普通IO 口的輸入狀態進行識別,具體地,當判斷所述外部電阻模塊中的電阻為外部上拉電阻時,先將單片機的內部配置模塊配置成強下拉模式,對此時所述普通IO 口的高低電平狀態進行檢測得到狀態A,若狀態A為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為強上拉電源正輸入狀態;若狀態A為低電平狀態,則繼續將單片機的內部配置模塊配置成弱下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態B,若狀態B為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為弱上拉電源正輸入狀態,若狀態B為低電平狀態,則識別出此時所述普通IO 口的輸入狀態為高阻輸入狀態。
[0066]當判斷所述外部電阻模塊中的電阻為外部下拉電阻時,先將單片機的內部配置模塊配置成強上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態C ;若狀態C為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為強下拉電源負輸入狀態;若狀態C為低電平狀態,則繼續將單片機的內部配置模塊配置成弱上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態D,若狀態D為高電平狀態,則識別出此時所述普通IO 口的輸入狀態為弱下拉電源負輸入狀態,若狀態D為低電平狀態,則識別出此時所述普通IO 口的輸入狀態為高阻輸入狀態。
[0067]由此,本實施例中由于所述內部配置模塊能配置出強、弱上拉模式、強、弱下拉模式等多種模式,因此,即可通過單片機的普通IO 口來對多種狀態的輸入進行識別判斷,十分靈活,且無需增加AD轉換功能,降低了成本。具體在本實施例中,根據所述初始電平狀態將所述內部配置模塊配置成強、弱上拉模式或強、弱下拉模式后對所述普通IO 口的高低電平狀態進行檢測,基于檢測結果普通IO 口可至少識別出強上拉電源正輸入狀態、弱上拉電源正輸入狀態、強下拉電源負輸入狀態、弱下拉電源負輸入狀態及高阻輸入狀態這5種狀態,比現有技術中普通IO 口只能識別出高電平輸入狀態及低電平輸入狀態多出3種,能基本滿足實際應用中需普通IO 口識別多種狀態的要求,且不同單片機的內部配置模塊中可配置的模式種類可能更多,則相應的可識別出的輸入狀態種類也更多。可利用本實施例中普通IO 口能對多種輸入狀態進行識別來通過普通IO 口標示不同的版本號,如PCB版本號等,本實施例中的普通IO 口即能對5個不同的PCB版本號進行標示,進一步地,還可通過若干普通IO 口輸入狀態的組合來對版本號進行標示,則能標示的版本號數目也大大增加,如通過2個普通IO 口的組合來對PCB版本號進行標示時,則可標示25個不同的PCB版本號,在實際應用中可為產品的開發、設計帶來很大的方便。
[0068]在本實施例的一個可選實施方式中,還可在需識別不同標示如PCB版本號時,預先設定所述普通IO 口不同的輸入狀態與其代表的不同標示即對應的PCB版本號,并根據預先設定所述普通IO 口不同的輸入狀態與其代表的不同標示制定一查詢表,在識別出所述普通IO 口的不同輸入狀態后,在所述查詢表中進行查找比對,識別出與之對應的標示,能更加方便、快捷的應用在識別PCB版本號等不同標示上。
[0069]上述普通IO 口識別輸入狀態的方法及裝置,根據讀取的所述普通IO 口的初始電平狀態對單片機的內部配置模塊進行模式配置,再通過配置的所述內部配置模塊及外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,根據檢測的結果識別所述普通IO 口的輸入狀態,由于所述內部配置模塊能配置出內部強、弱上拉模式、內部強、弱下拉模式等多種模式,因此,即可通過單片機的普通IO 口來對多種狀態的輸入進行識別判斷,十分靈活,且無需增加AD轉換功能,降低了成本。
[0070]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能單元或模塊完成,即將裝置的內部結構劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。另外,各功能單元、模塊的具體名稱也只是為了便于相互區分,并不用于限制本申請的保護范圍。上述裝置中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0071]以上所述僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或流程變換,或直接或間接運用在其它相關的【技術領域】,均同理包括在本發明的專利保護范圍內。
【權利要求】
1.一種普通IO 口識別輸入狀態的方法,其特征在于,包括: 將待讀取輸入狀態的普通IO 口設置為輸入功能,讀取所述普通IO 口的初始電平狀態; 根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測; 基于檢測的結果識別所述普通IO 口的輸入狀態。
2.根據權利要求1所述的方法,其特征在于,所述根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測的步驟具體為: 根據所述初始電平狀態進行所述內部配置模塊的模式配置,基于配置的所述內部配置模塊及所述外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,獲取檢測結果。
3.根據權利要求2所述的方法,其特征在于,當所述初始電平狀態為高電平狀態時,所述根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測的步驟具體包括: 將所述內部配置模塊配置成強下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態A ; 基于所述狀態A將所述內部配置模塊配置成弱下拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態B ; 所述基于檢測的結果識別所述普通IO 口的輸入狀態的步驟具體為: 根據所述狀態A、狀態B識別所述普通IO 口的輸入狀態。
4.根據權利要求2所述的方法,其特征在于,當所述初始電平狀態為低電平狀態時,所述根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測的步驟具體包括: 將所述內部配置模塊配置成強上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態C ; 基于所述狀態C將所述內部配置模塊配置成弱上拉模式,對所述普通IO 口的高低電平狀態進行檢測得到狀態D ; 所述基于檢測的結果識別所述普通IO 口的輸入狀態的步驟具體為: 根據所述狀態C、狀態D識別所述普通IO 口的輸入狀態。
5.根據權利要求1至4中任一項所述的方法,其特征在于,所述基于檢測的結果識別所述普通IO 口的輸入狀態的步驟還包括: 根據預先設定的所述普通IO 口不同的輸入狀態與其代表的不同標示制定一查詢表,識別出所述普通IO 口的不同輸入狀態后,在所述查詢表中進行查找比對,識別出與之對應的標示。
6.一種普通IO 口識別輸入狀態的裝置,其特征在于,包括: 讀取模塊,用于將待讀取輸入狀態的普通IO 口設置為輸入功能,讀取所述普通IO 口的初始電平狀態; 配置檢測模塊,用于根據所述初始電平狀態對單片機的內部配置模塊進行模式配置,并基于外部電阻模塊及內部配置模塊對所述普通IO 口進行檢測; 識別模塊,用于基于檢測的結果識別所述普通IO 口的輸入狀態。
7.根據權利要求6所述的裝置,其特征在于,所述配置檢測模塊用于: 根據所述初始電平狀態進行所述內部配置模塊的模式配置,基于配置的所述內部配置模塊及所述外部電阻模塊對供電電源的電壓進行分壓,并對所述普通IO 口的高低電平狀態進行檢測,獲取檢測結果。
8.根據權利要求7所述的裝置,其特征在于,所述外部電阻模塊為外部上拉電阻,所述外部上拉電阻的一端與單片機的供電電源連接,所述外部上拉電阻的另一端與所述普通IO口連接;所述內部配置模塊用于配置強下拉模式、弱下拉模式。
9.根據權利要求7所述的裝置,其特征在于,所述外部電阻模塊為外部下拉電阻,所述外部下拉電阻的一端與所述普通IO 口連接,所述外部下拉電阻的另一端接地;所述內部配置模塊用于配置強上拉模式、弱上拉模式。
10.根據權利要求6至9中任一項所述的裝置,其特征在于,所述識別模塊用于: 根據預先設定的所述普通IO 口不同的輸入狀態與其代表的不同標示制定一查詢表,識別出所述普通IO 口的不同輸入狀態后,在所述查詢表中進行查找比對,識別出與之對應的標示。
【文檔編號】G05B19/042GK103543682SQ201310548110
【公開日】2014年1月29日 申請日期:2013年11月6日 優先權日:2013年11月6日
【發明者】吳新祥 申請人:深圳市邦彥信息技術有限公司