專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

51單片機-電腦密碼鎖與系統(tǒng)監(jiān)控

作者:牛三水   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年12月14日   【字體:


    由于最近比較閑,所以沒有什么事情好做,于是想起了去年臺風的一晚上和博記約定要搞個輸入密碼才可以啟動電腦的硬件,不過后來因許多原因而不了了之,今憶起往事,所以才把它做好,到時候回去和同學們在大排檔里吹水也有東西來吹.鑒于這個系統(tǒng)的代碼量較大,在此只給出代碼的下載地址和片上系統(tǒng)(RIOS )的系統(tǒng)架構(gòu)圖,如果你還有什么好的想法的話可以在此基礎(chǔ)上加已改進.現(xiàn)在,監(jiān)控系統(tǒng)不單止是可以支持輸入密碼啟動電腦,還支持接收上位機(RTU )的監(jiān)控系統(tǒng)性能的數(shù)據(jù),當然,也可以在線修改RIOS 啟動密碼..
 
 



圖一  運行效果圖(本來是想弄成動圖的,但是缺少這方面的軟件)
 


 

圖二  RIOS 系統(tǒng)架構(gòu)圖

    在系統(tǒng)的底部,有六個驅(qū)動程序用來控制外圍硬件(之前導師問為什么要把它稱作驅(qū)動而不是實現(xiàn)某些硬件功能的構(gòu)造函數(shù),在我看來,驅(qū)動就是軟件和硬件交流的橋梁[雖然驅(qū)動是用軟件寫的],它還提供一系列應(yīng)用編程接口給上層應(yīng)用程序或者內(nèi)核來調(diào)用.在這里也一樣,每個.C 文件只做屬于它應(yīng)該做的事,并且向上提供編程接口來控制主控芯片的外圍硬件,于是習慣性地把它們稱之為驅(qū)動),內(nèi)核模塊monitor_system_trance_data [這個驅(qū)動是用于和RTU 進行信息交互的,關(guān)于數(shù)據(jù)交互的詳細的數(shù)據(jù)包結(jié)構(gòu)和標志在monitor_system_code_trance.h 里面保存著]是基于驅(qū)動device_52_trance 拓展的;模塊monitor_system_code_password [用于在EEPROM 內(nèi)讀/寫密碼]是基于驅(qū)動device_eeprom 拓展的.最后,monitor_system_chip 把所有接口都匯總起來,構(gòu)建RIOS 的核心代碼,為什么不把它稱作內(nèi)核呢?覺得吧,它只不過是把這么多接口都使用一遍的代碼文件,歸根到底都還只是"使用別人的東西","只不過是這些代碼的用戶罷了".

    最后還要提及的就是RIOS 使用到的引腳定義:
    //  P0 給keyboard 進行數(shù)據(jù)接收用
    //  lcd_1602 控制引腳
    sbit lcdrs=P1^0;
    sbit lcdrw=P1^1;
    sbit lcden=P1^2;
    //  P2 是lcd_1602 用來進行數(shù)據(jù)傳輸?shù)?br />     //  芯片端串行數(shù)據(jù)傳輸引腳
    sbit data_in=P3^0;
    sbit data_out=P3^1;
    //  AT24C02 EEPROM IIC 總線傳輸引腳
    sbit scl=P3^6;
    sbit sda=P3^7;
    //  啟動PC 端電源引腳(注意,它的原理是通過控制繼電器引發(fā)主板PWR 端連)
    sbit io_switch_elect =P3^5;
    //  PC 端運行電壓檢測引腳
    sbit io_interrupt_0=P3^2;

完整的代碼下載地址(包含:RIOS [Keil v4.0 ]和RTU [Microsoft VC++ 6.0 ]): http://www.torrancerestoration.com/f/monitor_system.rar

關(guān)閉窗口

相關(guān)文章