1 C 語語語言言言 簡簡簡介介介 5 1.1 C 語言 歷史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 程 式 語言 分類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 程 式 撰 寫步 驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 vi 編編編 輯輯輯 器器器 9 2.1 vi 與 vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 vi 的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 vim 的額外功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 vi 實 機練習 題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3 程程程 式式式開開開發發發環環環 境境境 23 3.1 編譯器 gcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 撰 寫第一 支程 式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
上傳時間: 2015-03-16
上傳用戶:十字騎士
附件為: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
PLC 以 其 可靠性高、抗干擾能力強、配套齊全、功能完善、適應性強等特點,廣泛應用于各種控制領域。PLC作為通用工業控制計算機,是面向工礦企業的工控設備,使用梯形圖符號進行編程,與繼電器電路相當接近,被廣大工程技術人員接受。但是在實際應用中,如何編程能夠提高PLC程序運行速度是一個值得我們思考研究的問題。1 PLC工作原理PLC 與 計 算機的工作原理基本相同,即在系統程序的管理下,通過運行應用程序完成用戶任務。但兩者的工作方式有所不同。計算機一般采用等待命令的工作方式,而PLC在確定了工作任務并裝人了專用程序后成為一種專用機,它采用循環掃描工作方式,系統工作任務管理及應用程序執行都是用循環掃描方式完成的。PLC 有 兩 種基本的工作狀態,即運行(RUN)與停止(STOP)狀態。在這兩種狀態下,PLC的掃描過程及所要完成的任務是不盡相同的,如圖1所示。 PLC在RUN工作狀態時,執行一次掃描操作所的時間稱為掃描周期,其典型值通常為1一100nis,不同PLC廠家的產品則略有不同。掃描周期由內部處理時間、輸A/ 輸出處理執行時間、指令執行時間等三部分組成。通常在一個掃描過程中,執行指令的時間占了絕大部分,而執行指令的時間與用戶程序的長短有關。用戶 程 序 是根據控制要求由用戶編制,由許多條PLC指令所組成。不同的指令所對應的程序步不同,以三菱FX2N系列的PLC為例,PLC對每一個程序步操作處理時間為:基本指令占0.741s/步,功能指令占幾百微米/步。完成一個控制任務可以有多種編制程序的方法,因此,選擇合理、巧妙的編程方法既可以大大提高程序運行速度,又可以保證可靠性。 提高PLC程序運行速度的幾種編程方法2.1 用數據傳送給位元件組合的方法來控制輸出在 PL C應 用編程中,最后都會有一段輸出控制程序,一般都是用邏輯取及輸出指令來編寫,如圖2所示。在圖2所示的程序中,邏輯取的程序步為1,輸出的程序步為2,執行上述程序共需3個程序步。通常情況下,PLC要控制的輸出都不會是少量的,比如,有8個輸出,在條件滿足時要同時輸出。此時,執行圖2所示的程序共需17個程序步。若我們通過位元件的組合并采用數據傳送的方法來完成圖2所示的程序,就會大大減少程序步驟。在三 菱 PLC中,只處理ON/OFF狀態的元件(如X,Y,M和S),稱為位元件。但將位元件組合起來也可以處理數據。位元件組合由Kn加首元件號來表示。位元件每4bit為一組組合成單元。如KYO中的n是組數,當n=1時,K,Yo 對應的是Y3一Yo。當n二2時,KZYo對應的是Y7一Yo。通過位元件組合,就可以用處理數據的方式來處理位元件,圖2程序所示的功能可用圖3所示的傳送數據的方式來完成。
上傳時間: 2013-11-11
上傳用戶:幾何公差
買的開發板上帶的52個應用于實物的程序,希望對大家有幫助
上傳時間: 2013-11-04
上傳用戶:xymbian
虛擬警視器驅動程序免費視頻
上傳時間: 2013-11-12
上傳用戶:ArmKing88
這是一個可以實用的通用破解軟件時間限制的程序源碼,基本原理是在軟件運行的前幾秒鐘里將系統時間設置為軟件容許你使用的可用時間,使用時將編譯的可執行文件和ExeInfo.ini文件放到要運行的軟件的目錄里,運行編譯的可執行文件就可用啟動要運行的軟件。運行前需要設置ExeInfo.ini文件,說明如下: EXENAME 為要破解的軟件的執行程序名 GAP=5000 為設置成可用時間的時間長度,毫秒為單位 INCTIME=Y 是否每次運行都增大可用時間(有些軟件會檢測可用時間必須大于上次運行時間) DATETIME=2002-5-31 16:55:12 可用時間,為軟件容許你使用的最初日期時間
上傳時間: 2015-01-13
上傳用戶:偷心的海盜
4.asm…… 響鈴程序,輸入一個數字字符N,響鈴N次。(完成)ysk3.asm ……顯示一個星型倒三角。m1.asm ………編程將鍵盤輸入的8位無符號二進制數轉化為十六進制數和十進制數,并輸出結果form.asm ……采用子程序編程按以下三種格式(██,◣,◥)打印九九乘法表:(完成)char.asm ……小寫字母a b c d ……x y z的ASCII碼分別為61H 62H 63H 64H……78H 79H 7AH, 而大寫字母A B C D ….X Y Z的ASCII碼分別為41H 42H 43H 44H …58H 59H 5AH, 使用串處理指令編程從鍵盤輸入16個字符(大小寫字母及其它字母均有), 存入以BUF1開始的一片存儲區中,并將其傳送到以BUF2開始的一片存儲區中, 在傳送是將其中的小寫字母均改為大寫字母,并將第一個小寫字母在串中的位置 (距串頭BUF1的相對位移量)以十六進制形式輸出。(完成)
上傳時間: 2013-12-22
上傳用戶:zhyiroy
192*64顯示lcd程序,功能:根據參數x_add,y_add往LCD中寫1個字 輸入:1: 寫到LCD的X、Y坐標;2:數據地址 輸出:無
上傳時間: 2015-03-15
上傳用戶:yzhl1988
詞法分析器:源程序的運行方式: 運行程序 輸入一個已存在的文本文檔的文件名。如:input.txt 如果要對整個程序進行語法分析,則按‘y’鍵,否則按‘n’鍵 如果要對程序進行語法分析,則按‘y’鍵,否則按‘n’鍵 程序結束
上傳時間: 2014-01-22
上傳用戶:zhaiyanzhong
本程序是對一幅圖像進行變灰度、旋轉、銳化、在圖像上畫圓或橢圓、直線等操作的程序。 說明:要實現相應功能的操作,需要在輸入框內輸入正確的表達式。舉例如下: 畫直線:x1=20,y1=15,x2=150,y2=100 畫圓:x=100,y=100,r=20 畫橢圓:x=100,y=100,r=20,a=16,b=9 旋轉:x=30(度數),ax=100,ay=90 銳化:x=80
上傳時間: 2013-12-24
上傳用戶:songrui