介紹keil c 使用的實例,文中詳細說明了KEIL C 與PROTEUS的結合使用
標簽: keil
上傳時間: 2013-09-25
上傳用戶:Wwill
為了改變目前電網現場作業管理的變電巡檢、變電檢修試驗、輸電線路巡檢檢修等管理系統各自獨立運行,信息不能共享,功能、效率受限,建設和維護成本高的現狀,提出了采用B/S+C/S構架模式,將各現場作業管理模塊和生產MIS(管理系統)集成為一體的現場作業管理系統的設計方案,做到各子系統和生產MIS軟硬資源共享,做到同一數據唯一入口、一處錄入多處使用。各子系統設備人員等基礎信息來源于生產管理系統,各子系統又是生產管理系統的作業數據、缺陷信息的重要來源。經過研究試用成功和推廣應用,目前該系統已在江西電網220 kV及以上變電站全面應用。 Abstract: In order to improve the status that the substation field inspection system, substation equipments maintenance and testing system, power-line inspection and maintenance system are running independent with each other. They can?蒺t share the resource information which accordingly constrains their functions and efficiency, and their construction and maintenance costs are high. This paper introduces a field standardized work management system based on B/S+C/S mode, integrating all field work management systems based on MIS and share the equipments and employee?蒺s data of MIS,the field work data of the sub systems are the source information of MIS, by which the same single data resouce with one-time input can be utilized in multiple places. After the research and testing, this system is triumphantly using in all 220kV and above substations in Jiangxi grid.
上傳時間: 2013-11-15
上傳用戶:han_zh
找一塊電源仔細看一下,在電源部分中,跨接L-N之間的小方塊(單位是μF)電容就是X電容,通常在是電源入口的第一個;同樣,在電源部分的跨接L-PE和N-PE之間的藍色的安規電容(單位pF)就是Y電容,通常是成對出現的。 或者你可以形象的看,X電容具有2個輸入端,2個輸出端,很象X;Y電容具有一個輸入端,一個輸出端以及一個公共的大地,很象一個Y 沒有什么概念的,一個在差模回路上,一個在共模回路上,X、Y的名稱純粹是一個稱呼,就象是X和Y軸一樣 X電容主要用于流電源線路中,此時當電容失時不致產生線間放電。X電容器的測試條件是:在交流電壓的有效值*1.5的電壓下工作100Hour;再加上1KV的高壓測試。Y電容器在一旦失效會導致放電危險(尤其是對外殼)時是強制使用的。Y類型電容器的測試條件是:在交流電壓的有效值*1.7的電壓下工作100Hour,加上2KV高壓測試。如果電容器用于不接地的II類產品中,則要增加至4KV。
上傳時間: 2013-10-24
上傳用戶:1583264429
附件為:LCD12864顯示漢字和數字的程序與電路 /* 自定義延時子函數 */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判斷LCD忙信號狀態 */ void buys() { int dat; RW=1; RS=0; do { P0=0x00; E=1; dat=P0; E=0; dat=0x80 & dat; } while(!(dat==0x00)); } /* LCD寫指令函數 */ void w_com(uchar com) { //buys(); RW=0; RS=0; E=1; P0=com; E=0; } /* LCD寫數據函數 */ void w_date(uchar date) { //buys(); RW=0; RS=1; E=1; P0=date; E=0; } /* LCD選屏函數 */ void select_screen(uchar screen) { switch(screen) { case 0: //選擇全屏 CS1=0; CS2=0; break; case 1: //選擇左屏 CS1=0; CS2=1; break; case 2: //選擇右屏 CS1=1; CS2=0; break; /* case 3: //選擇右屏 CS1=1; CS2=1; break; */ } } /* LCDx向上滾屏顯示 */ void lcd_rol() { int x; for(x=0;x<64;x++) { select_screen(0); w_com(0xc0+x); delayms(500); } } /* LCD清屏函數:清屏從第一頁的第一列開始,總共8頁,64列 */ void clear_screen(screen) { int x,y; select_screen(screen); //screen:0-選擇全屏,1-選擇左半屏,2-選擇右半屏 for(x=0xb8;x<0xc0;x++) //從0xb8-0xbf,共8頁 { w_com(x); w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) { w_date(0x00); } } } /* LCD顯示漢字字庫函數 */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) { //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-3,mun:顯示第幾個漢字的參數 int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } } /* LCD顯示字符字庫函數 */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) { //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-7,mun:顯示第幾個漢字的參數 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } } /* LCD顯示數字字庫函數 */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) { //screen:選擇屏幕參數,page:選擇頁參數0-3,col:選擇列參數0-7,mun:顯示第幾個漢字的參數 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } } /* LCD初始化函數 */ void lcd_init() { w_com(0x3f); //LCD開顯示 w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD頁初始地址,共8頁 w_com(0x40); //LCD列初始地址,共64列 } /* LCD顯示主函數 */ void main() { //第一行 int x; lcd_init(); //LCD初始化 clear_screen(0); //LCD清屏幕 lcd_display_shuzi(1,0,4,5); //LCD顯示數字 lcd_display_shuzi(1,0,5,1); //LCD顯示數字 lcd_display_hanzi(1,0,3,0); //LCD顯示漢字 lcd_display_hanzi(2,0,0,1); //LCD顯示漢字 //LCD字符漢字 lcd_display_hanzi(2,0,1,2); //LCD顯示漢字 //第二行 lcd_display_zifuk(1,1,2,0); //LCD顯示字符 lcd_display_zifuk(1,1,3,0); //LCD顯示字符 lcd_display_zifuk(1,1,4,0); //LCD顯示字符 lcd_display_zifuk(1,1,5,4); //LCD顯示字符 lcd_display_shuzi(1,1,6,8); //LCD顯示字符 lcd_display_shuzi(1,1,7,9); //LCD顯示字符 lcd_display_shuzi(2,1,0,5); //LCD顯示字符 lcd_display_shuzi(2,1,1,1); //LCD顯示字符 lcd_display_zifuk(2,1,2,4); lcd_display_zifuk(2,1,3,1); lcd_display_zifuk(2,1,4,2); lcd_display_zifuk(2,1,5,3); //第三行 for(x=0;x<4;x++) { lcd_display_hanzi(1,2,x,3+x); //LCD顯示漢字 } for(x=0;x<4;x++) { lcd_display_hanzi(2,2,x,7+x); //LCD顯示漢字 } //第四行 for(x=0;x<4;x++) { lcd_display_zifuk(1,3,x,5+x); //LCD顯示漢字 } lcd_display_shuzi(1,3,4,7); lcd_display_shuzi(1,3,5,5); lcd_display_shuzi(1,3,6,5); lcd_display_zifuk(1,3,7,9); lcd_display_shuzi(2,3,0,8); lcd_display_shuzi(2,3,1,9); lcd_display_shuzi(2,3,2,9); lcd_display_shuzi(2,3,3,5); lcd_display_shuzi(2,3,4,6); lcd_display_shuzi(2,3,5,8); lcd_display_shuzi(2,3,6,9); lcd_display_shuzi(2,3,7,2); while(1); /* while(1) { // LCD向上滾屏顯示 lcd_rol(); } */ }
上傳時間: 2013-11-08
上傳用戶:aeiouetla
實時操作系統μC/OS-II是一種源代碼公開、可移植、可固化、微小內核的嵌入式操作系統。它具有執行效率高、占用空間小、可移植性強、實時性能良好和可擴展性等特點。μC/OS-II非常適合應用在一些小型的嵌入式產品應用場合,在家用電器,機器人,醫療設備,工業控制,航空器等領域有著廣泛的應用。 目前在我國的工業控制領域中,8位單片機依然有著廣泛的應用,占據著非常重要的位置。而作為高性能,集成度高,運行速度快的C8051F系列單片機也越來越受到廣泛的關注,并不斷的應用于各種場合。同時,將μC/OS-II操作系統移植到C8051F系列單片機上,以其兩者的完美結合實現更高性能要求的應用環境中就顯得很有必要。
上傳時間: 2013-10-21
上傳用戶:趙一霞a
摘要:采用單片機C語言作為編程語言,介紹一種基于DEI1016的四發八收智能型ARINC429接rl板的嵌人式實時軟件設計方法;首先,簡單地介紹了單片機C語言和開發流程,再詳細地描述了軟件的各個功能模塊,最后總結了若干提高軟件實時性的編程技巧和要點,這種設計方法,充分發揮了C語言在模塊化、可讀性、可維護性和可移植性上的優勢,同時彌補了C語言執行效率不高的缺點。實踐證明,用單片機C語言編寫出的嵌人式軟件能很好地滿足接口板的高速數據傳輸功能的要求。關鍵詞:DEI1016;單片機;C語言;實時性
上傳時間: 2013-12-26
上傳用戶:CSUSheep
C語言程序與匯編語言程序的相互調用可視為函數的調用,只不過此函數是采用不同語言編寫。在C和匯編程序的相互調用中,要求匯編程序必須服從Keil C51中對函數名的轉換規則,同時也要弄清C函數的參數傳遞規則,通過實例詳細介紹Keil C51中C51程序與匯編程序相互調用以廈匯鳊程序與C51程序相互調用時的接口建立方法,井蛤出在不同的應用中對接口進行簡化的方法
上傳時間: 2013-11-13
上傳用戶:lina2343
基于HT45R37V的低功耗C/R-F型八位OTP單片機 HT45R37V 是一款低功耗C/R-F 型具有8 位高性能精簡指令集的單片機,專門為需要VFD 功能的產品而設計。作為一款C/R-F 型的單片機,它可以連接9 個外部電容型或電阻型傳感器,并把它們的電容值或電阻值轉換成相應的頻率進行處理。此外,單片機帶有內部A/D 轉換器,能夠直接與模擬信號相連接,且它還集成了一個雙通道的脈沖寬度調節器,用于控制外部的馬達和LED 燈等。這款單片機是專門為VFD 產品應用而設計的,它能直接驅動VFD 面板。
上傳時間: 2013-10-16
上傳用戶:packlj
晶振:12M TEMPER_L EQU 36H TEMPER_H EQU 35H TEMPER_NUM EQU 60H FLAG1 BIT 00H DQ BIT P3.3AAA:MOV SP,#70H LCALL GET_TEMPER LCALL TEMPER_COV LJMP AAA NOP ;------------------讀出轉換后的溫度值 GET_TEMPER: SETB DQ ; 定時入口 BCD:LCALL INIT_1820 JB FLAG1,S22 LJMP BCD ; 若DS18B20不存在則返回S22:LCALL DELAY1 MOV A,#0CCH ; 跳過ROM匹配------0CC LCALL WRITE_1820 MOV A,#44H ; 發出溫度轉換命令 LCALL WRITE_1820 NOP LCALL DELAY LCALL DELAY CBA:LCALL INIT_1820 JB FLAG1,ABC LJMP CBA ABC:LCALL DELAY1 MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 ;READ_1820 RET ;------------------讀DS18B20的程序,從DS18B20中讀出一個字節的數據 READ_1820: MOV R2,#8 RE1: CLR C
上傳時間: 2013-10-09
上傳用戶:heart_2007
在單片機應用開發中,代碼的使用效率問題、單片機抗干擾性和可靠性等問題仍困擾著 工程師。為幫助工程師解決單片機設計上的難題,《電子工程專輯》網站特邀Holtek香 港分公司工程部處長鄧宏杰先生擔任《單片機應用編程技巧》專題討論的嘉賓,與廣大 設計工程師交流單片機設計開發經驗。現根據論壇中的討論歸納出單片機開發中應掌握 的幾個基本技巧。一、 如何提高C語言編程代碼的效率鄧宏杰指出,用C語言進行單片機程序設計是單片機開發與應用的必然趨勢。他強調:“ 如果使用C編程時,要達到最高的效率,最好熟悉所使用的C編譯器。先試驗一下每條C語言編譯以后對應的匯編語言的語句行數,這樣就可以很明確的知道效率。在今后編程的 時候,使用編譯效率最高的語句。” 他指出,各家的C編譯器都會有一定的差異,故編譯效率也會有所不同,優秀的嵌入式系統C編譯器代碼長度和執行時間僅比以匯編語言編寫的同樣功能程度長5-20%。他說:“對于復雜而開發時間緊的項目時,可以采用C語言,但前提是要求你對該MCU系統的C語言和C編譯器非常熟悉,特別要注意該C編譯系統所能支持的數據類型和算法。雖然C語言是最普遍的一種高級語言,但由于不同的MCU廠家其C語言編譯系統是有所差別的,特別是在一些特殊功能模塊的操作上。所以如果對這些特性不了解,那么調試起來問題就會很 多,反而導致執行效率低于匯編語言。” 二、 如何減少程序中的bug? 對于如何減少程序的bug,鄧宏杰給出了一些建議,他指出系統運行中應考慮的超范圍管理參數有: 1.物理參數。這些參數主要是系統的輸入參數,它包括激勵參數、采集處理中的運行參 數和處理結束的結果參數。合理設定這些邊界,將超出邊界的參數都視為非正常激勵或 非正常回應進行出錯處理。 2.資源參數。這些參數主要是系統中的電路、器件、功能單元的資源,如記憶體容量、 存儲單元長度、堆疊深度。在程式設計中,對資源參數不允許超范圍使用。 3.應用參數。這些應用參數常表現為一些單片機、功能單元的應用條件。如E2PROM的擦 寫次數與資料存儲時間等應用參數界限。 4.過程參數。指系統運行中的有序變化的參數。
上傳時間: 2013-10-21
上傳用戶:chukeey