新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于CPLD的電器定時開關控制系統設計

        基于CPLD的電器定時開關控制系統設計

        作者: 時間:2008-09-17 來源:網絡 收藏
          隨著當今社會工作和生活節奏的加快,人們對許多、儀器、設備的自動化要求也越來越高,但現有的許多還不具備定時開啟和關閉功能,許多需要在固定時間的裝置,還需人工值守和操作,因此設計帶有時鐘顯示功能的多個定時系統,具有實際意義。

          2系統功能及操作

          系統上電時復位,時鐘顯示為0時0分0秒,按下時間設置鍵設定時間,數字鐘開始工作,數碼管顯示當前時間;按下開啟電器編號設置鍵,再按下要定時開啟的電器編號,對應發光二極管亮,表示設置有效;按下電器開啟時間設置按鍵;再依次輸入4位十進制的小時和分鐘,作為開啟時間;按下電器關閉時間設置按鍵,再依次輸入4位十進制的小時和分鐘,作為關閉時間。至此定時設置完成,對于電飯鍋等具有保持功能的電器,則不用設置定時關閉。使用Verilog HDL編寫程序,理論上可同時設置多個電器的定時自動開啟,本設計可同時設置3個電器。

          3硬件設計

          硬件設計采用Altera公司的 EPM7128SLC84-6,簡化了外圍電路,穩定性和可靠性高,成本低。220 V、50 Hz工頻電源經變壓器、電橋整流后通過三端穩壓器,提供工作電壓,其電源電路如圖1所示。

        本文引用地址:http://www.104case.com/article/258622.htm  外接4×4鍵盤,使用較少的I/O端口線就可實現對較多按鍵的。當有鍵按下時,kb為低電平,的按鍵掃描部分采用動態掃描方式進行識別。設置14個按鍵,分別為0~9十個數字鍵和設定時間、開啟電器編號、電器開啟時間、電器關閉時間4個功能鍵,其余兩個留作功能擴展。4×4鍵盤電路如圖2所示。

          本系統設計使用6個數碼管顯示時間,3個發光二極管標志是否定時。電器開啟信號經三極管放大后接繼電器,通過繼電器吸合導通電源線,開啟電器。

          4軟件設計

          Verilog HDL是硬件設計人員和QuartusⅡ界面之間的交互手段,其具體物理建模能力強,設計方便,可讀性好,語法類似C語言,與VHDL相比,更容易學習和掌握,與原理圖設計法相比,設計和分析更容易,可避免考慮畫面的布局及美觀,修改也方便。本設計CPLD部分完全使用Verilog HDL編寫。

          4.1按鍵掃描及鍵值讀取

          CPLD檢測到kb下降沿時,表示有鍵按下時,為防止按鍵抖動,延時一段時間再檢測,若確有鍵按下,CPLD采用低電平逐行掃描,待找到按鍵時,根據掃捕得到的數值,確定按鍵值。對于無效按鍵,設按鍵值為15。輸入信號kb的下降沿觸發對鍵值的讀取,可保證對于每一次按鍵,僅作一次處理。主要程序如下:

          

          4.2功能鍵的判斷

          程序初始化時為設定時間、開啟電器編號、電器開啟時間、電器關閉時間4個功能鍵設置對應按鍵值。定義功能標志寄存器fun,并使用格雷碼標志各個功能,相鄰兩個功能的編碼僅有一位不同,可避免狀態跳變,比目前常用的獨熱碼節省CPLD邏輯單元。由于本設計中寄存器fun只有5個狀態,選用3位格雷碼,并對編碼方式進行改進。根據上一步得到的按鍵值判斷具體要實現哪個功能,并依此設置fun的值,如下所示:

          

          4.3數字鍵的判斷和處理

          先根據鍵值判斷是哪一個數字鍵,再根據功能標志寄存器fun判斷進行哪項設置。若正在進行的是時間設置,則將時間寄存器左移4位,將數字值存入低位;若為設定需要開啟電器的編號狀態,則電器編號數組num對應位置1,并通過電阻使相應發光二極管點亮,否則為0;若為設定電器開啟時間狀態,相應電器的開啟時間寄存器timeon左移4位,將數字值存入低位;若為設定電器關閉時間狀態,相應電器的關閉時間寄存器timeoff左移4位,將數字值存人低位。若為無效按鍵,則不進行任何操作。

          4.4數字鐘的工作

          本系統設計作為數字鐘和定時器,對計時準確性要求較高.由有源晶體振蕩器提供系統時鐘,可保證其穩定度。在頂層模塊中對系統時鐘分頻,得到1 Hz時鐘,作為數字鐘部分行波時鐘。這樣減少了片內各觸發器之間的時鐘偏移,事實證明,對設計時序無不良影響。 先將沒定的時間送人小時、分鐘對應的寄存器hour和min,為了顯示和用戶操作方便,用6位二進制寄存器,以8421BCD碼表示時間。如果秒為8'h59則秒寄存器sec清零,分鐘值加1,若秒值末位為9,則秒值末位清零,秒值十位加1。

          4.5判斷電器的開啟和關閉

          若當前時間與某個已定時的電器的開啟時間相同,則開啟寄存器數組on對應位輸出高電平,開啟對應電器;若與某個已定時的電器的關閉時間相同,則開啟寄存器數組on對應位輸出低電平,關閉對應電器。

          4.6顯示

          對應不同的狀態,數碼管顯示不同值。時鐘設置狀態,顯示當前時間;開啟電器編號設置狀態,顯示欲開啟的電器編號;電器開啟時間設置狀態,屁示電器應開啟的時間;電器關閉時間設置狀態,顯示電器應關閉的時間。

          具體實現時,由系統時鐘,分時點亮各個數碼管,可節約能源。由于時間很快,而人眼存在視覺暫留,看上去6個數碼管均同時顯示。在CPLD中編程實現數碼管的七段譯碼,可節省外同電路。

          5 結語

          本設備設定開啟、關閉時間為一天之內的任意時間,滿足一般使用要求,亦可作為數字時鐘使用。由晶體振蕩器提供時鐘,計時精準,使用常見器件設計,實現方便,成本低,耗電少,體積小,重量輕,工作可靠。可用于定時開啟家用電器,如通過提前設置,下班回家時電飯鍋已經把飯做熟??照{已經開啟,飲水機已經燒好開水,熱水器已經燒好洗澡水等。也可用于辦公樓里上下班自動響鈴裝置,工廠里需要定時開關的設備,以及一些手動操作開關不安全的地方,具有實用價值。



        關鍵詞: 電器 開關 CPLD 控制

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 五家渠市| 大港区| 治多县| 丹江口市| 珠海市| 新泰市| 康定县| 望江县| 白玉县| 柯坪县| 格尔木市| 阿荣旗| 商城县| 凭祥市| 竹北市| 沁水县| 全州县| 蛟河市| 洪泽县| 霸州市| 安徽省| 通渭县| 康保县| 南阳市| 始兴县| 池州市| 漾濞| 图片| 承德县| 余江县| 西乡县| 囊谦县| 抚松县| 达州市| 贡山| 荆州市| 舒兰市| 峨山| 黑水县| 金乡县| 汉中市|