51單片機(jī)-電腦密碼鎖與系統(tǒng)監(jiān)控
圖一 運(yùn)行效果圖(本來是想弄成動(dòng)圖的,但是缺少這方面的軟件)
圖二 RIOS 系統(tǒng)架構(gòu)圖
在系統(tǒng)的底部,有六個(gè)驅(qū)動(dòng)程序用來控制外圍硬件(之前導(dǎo)師問為什么要把它稱作驅(qū)動(dòng)而不是實(shí)現(xiàn)某些硬件功能的構(gòu)造函數(shù),在我看來,驅(qū)動(dòng)就是軟件和硬件交流的橋梁[雖然驅(qū)動(dòng)是用軟件寫的],它還提供一系列應(yīng)用編程接口給上層應(yīng)用程序或者內(nèi)核來調(diào)用.在這里也一樣,每個(gè).C 文件只做屬于它應(yīng)該做的事,并且向上提供編程接口來控制主控芯片的外圍硬件,于是習(xí)慣性地把它們稱之為驅(qū)動(dòng)),內(nèi)核模塊monitor_system_trance_data [這個(gè)驅(qū)動(dòng)是用于和RTU 進(jìn)行信息交互的,關(guān)于數(shù)據(jù)交互的詳細(xì)的數(shù)據(jù)包結(jié)構(gòu)和標(biāo)志在monitor_system_code_trance.h 里面保存著]是基于驅(qū)動(dòng)device_52_trance 拓展的;模塊monitor_system_code_password [用于在EEPROM 內(nèi)讀/寫密碼]是基于驅(qū)動(dòng)device_eeprom 拓展的.最后,monitor_system_chip 把所有接口都匯總起來,構(gòu)建RIOS 的核心代碼,為什么不把它稱作內(nèi)核呢?覺得吧,它只不過是把這么多接口都使用一遍的代碼文件,歸根到底都還只是"使用別人的東西","只不過是這些代碼的用戶罷了".
最后還要提及的就是RIOS 使用到的引腳定義:
// P0 給keyboard 進(jìn)行數(shù)據(jù)接收用
// lcd_1602 控制引腳
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P1^2;
// P2 是lcd_1602 用來進(jìn)行數(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;
// 啟動(dòng)PC 端電源引腳(注意,它的原理是通過控制繼電器引發(fā)主板PWR 端連)
sbit io_switch_elect =P3^5;
// PC 端運(yùn)行電壓檢測(cè)引腳
sbit io_interrupt_0=P3^2;
完整的代碼下載地址(包含:RIOS [Keil v4.0 ]和RTU [Microsoft VC++ 6.0 ]):http://www.51hei.com/f/monitor_system.rar
評(píng)論