單片機體積小,重量輕,具有很強的靈活性,而且價格不高,越來越得到廣泛的應用。而C語言是一種編譯型設計語言。它兼顧了多種高級語言的特點,并具備匯編語言的功能。用C語言來編寫目標系統軟件,會大大縮短開發周期,且明顯的增加軟件的可讀性,便于改進和擴充,以研制出規模更大、性能更完備的系統。用C語言進行8051單片機程序設計是單片機開發與應用的必然趨勢。單片機的程序設計應該以C語言為主,以匯編語言為輔。而且采用C語言也不必對單片機和硬件接口的結構有很深入的了解,編譯器可以自動完成變量的存儲單元的分配,編程者就可以專注于應用軟件部分的設計,大大加快軟件的開發速度。采用C語言可以很容易地進行單片機的程序移植工作,有利于產品中單片機的重新選型。為此,特開設了單片機的C語言應用程序設計這門選修課。
上傳時間: 2013-10-19
上傳用戶:851197153
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
51 單片機C 語言學習雜記學習單片機實在不是件易事,一來要購買高價格的編程器,仿真器,二來要學習編程語言,還有眾多種類的單片機選擇真是件讓人頭痛的事。在眾多單片機中51 架構的芯片風行很久,學習資料也相對很多,是初學的較好的選擇之一。51 的編程語言常用的有二種,一種是匯編語言,一種是C 語言。匯編語言的機器代碼生成效率很高但可讀性卻并不強,復雜一點的程序就更是難讀懂,而C 語言在大多數情況下其機器代碼生成效率和匯編語言相當,但可讀性和可移植性卻遠遠超過匯編語言,而且C 語言還可以嵌入匯編來解決高時效性的代碼編寫問題。對于開發周期來說,中大型的軟件編寫用C 語言的開發周期通常要小于匯編語言很多。綜合以上C 語言的優點,我在學習時選擇了C 語言。以后的教程也只是我在學習過程中的一些學習筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學習,一起進步。*注:可以肯定的說這個教程只是為初學或入門者準備的,筆者本人也只是菜鳥一只,第一課 建立您的第一個C 項目使用C 語言肯定要使用到C 編譯器,以便把寫好的C 程序編譯為機器碼,這樣單片機才能執行編寫好的程序。KEIL uVISION2 是眾多單片機應用開發軟件中優秀的軟件之一,它支持眾多不同公司的MCS51 架構的芯片,它集編輯,編譯,仿真等于一體,同時還支持,PLM,匯編和C 語言的程序設計,它的界面和常用的微軟VC++的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。因此很多開發51 應用的工程師或普通的單片機愛好者,都對它十分喜歡。以上簡單介紹了KEIL51 軟件,要使用KEIL51 軟件,必需先要安裝它。KEIL51 是一個商業的軟件,對于我們這些普通愛好者可以到KEIL 中國代理周立功公司的網站上下載一份能編譯2K 的DEMO 版軟件,基本可以滿足一般的個人學習和小型應用的開發。(安裝的方法和普通軟件相當這里就不做介紹了)安裝好后,您是不是迫不及待的想建立自己的第一個C 程序項目呢?下面就讓我們一起來建立一個小程序項目吧?;蛟S您手中還沒有一塊實驗板,甚至沒有一塊單片機,不過沒有關系我們可以通過KEIL 軟件仿真看到程序運行的結果。首先當然是運行KEIL51 軟件。怎么打開?噢,天!那您要從頭學電腦了。呵呵,開個玩笑,這個問題我想讀者們也不會提的了:P。運行幾秒后,出現如圖1-1 的屏幕。
上傳時間: 2014-01-23
上傳用戶:yyyyyyyyyy
非常實用的單片機c語言程序設計
上傳時間: 2013-12-22
上傳用戶:tian126vip
《C程序設計語言》是由C語言的設計者Brian W. Kernighan和Dennis M. Ritchie編寫的一部介紹標準C語言及其程序設計方法的權威性經典著作。全面、系統地講述了C語言的各個特性及程序設計的基本方法,包括基本概念、類型和表達式、控制流、函數與程序結構、指針與數組、結構、輸入與輸出、UNIX系統接口、標準庫等內容?!禖程序設計語言》的講述深入淺出,配合典型例證,通俗易懂,實用性強,適合作為大專院校計算機專業或非計算機專業的C語言教材,也可以作為從事計算機相關軟硬件開發的技術人員的參考書。 在計算機發展的歷史上,沒有哪一種程序設計語言像C語言這樣應用如此廣泛。
上傳時間: 2013-11-20
上傳用戶:2728460838
PCB LAYOUT 術語解釋(TERMS)1. COMPONENT SIDE(零件面、正面)︰大多數零件放置之面。2. SOLDER SIDE(焊錫面、反面)。3. SOLDER MASK(止焊膜面)︰通常指Solder Mask Open 之意。4. TOP PAD︰在零件面上所設計之零件腳PAD,不管是否鑽孔、電鍍。5. BOTTOM PAD:在銲錫面上所設計之零件腳PAD,不管是否鑽孔、電鍍。6. POSITIVE LAYER:單、雙層板之各層線路;多層板之上、下兩層線路及內層走線皆屬之。7. NEGATIVE LAYER:通常指多層板之電源層。8. INNER PAD:多層板之POSITIVE LAYER 內層PAD。9. ANTI-PAD:多層板之NEGATIVE LAYER 上所使用之絕緣範圍,不與零件腳相接。10. THERMAL PAD:多層板內NEGATIVE LAYER 上必須零件腳時所使用之PAD,一般稱為散熱孔或導通孔。11. PAD (銲墊):除了SMD PAD 外,其他PAD 之TOP PAD、BOTTOM PAD 及INNER PAD 之形狀大小皆應相同。12. Moat : 不同信號的 Power& GND plane 之間的分隔線13. Grid : 佈線時的走線格點2. Test Point : ATE 測試點供工廠ICT 測試治具使用ICT 測試點 LAYOUT 注意事項:PCB 的每條TRACE 都要有一個作為測試用之TEST PAD(測試點),其原則如下:1. 一般測試點大小均為30-35mil,元件分布較密時,測試點最小可至30mil.測試點與元件PAD 的距離最小為40mil。2. 測試點與測試點間的間距最小為50-75mil,一般使用75mil。密度高時可使用50mil,3. 測試點必須均勻分佈於PCB 上,避免測試時造成板面受力不均。4. 多層板必須透過貫穿孔(VIA)將測試點留於錫爐著錫面上(Solder Side)。5. 測試點必需放至於Bottom Layer6. 輸出test point report(.asc 檔案powerpcb v3.5)供廠商分析可測率7. 測試點設置處:Setuppadsstacks
上傳時間: 2013-11-17
上傳用戶:cjf0304
編寫一個C語言的子集的詞法分析程序,對C語言源代碼程序進行掃描,識別簡單語言的基本字、標識符、無符號整數、運算符和界符等單詞符號,產生的單詞轉換成特別碼表示,形成word文件(單詞序列)保存。
上傳時間: 2015-03-29
上傳用戶:xlcky
使用 ManWrap 庫在本機 C++ 代碼中調用.NET。該程序將向你展示如何以本機方式包裝框架類,以便你能不借助 /clr 而在任何 C++/MFC 應用程序中使用它們。在我們的測試案例中,將在一個DLL中包裝.NET框架中的 Regex 類,并實現三個使用該包裝類的 MFC 程序。你可以用 RegexWrap.dll 在自己的 C++/MFC 應用程序中添加正則表達式支持,或者用 ManWrap 工具來包裝自己喜愛的框架類。
上傳時間: 2015-04-14
上傳用戶:songrui
本書第二版和第三版之間的變化非常大其中最值得注意的是C++已經通過了國際標 準化這不但為語言增加了新的特性比如異常處理運行時刻類型識別RTTI 名字空 間內置布爾數據類型新的強制轉換方式而且還大量修改并擴展了現有的特性比如模 板template 支持面向對象object-oriented 和基于對象object-based 程序設計所需 要的類class 機制嵌套類型以及重載函數的解析機制也許更重要的是一個覆蓋面非 常廣闊的庫現在成了標準C++的一部分其中包括以前稱為STL 標準模板庫的內容新 的string 類型一組順序和關聯容器類型比如vector list map 和set 以及在這些類型 上進行操作的一組可擴展的泛型算法generic algorithm 都是這個新標準庫的特性本書 不但包括了許多新的資料而且還闡述了怎樣在C++中進行程序設計的新的思考方法簡而 言之實際上不但C++已經被重新創造本書第三版也是如此
上傳時間: 2014-01-18
上傳用戶:784533221
C語言程序設計_pdf C語言是目前流行的通用程序設計語言,是許多計算機專業人員和計算機的愛好者學習程序設計語言的首選。 本書共10章,分別介紹了C語言的算法基礎、基本概念和如何利用C語言進行程序設計。通過大量的實例介紹了C語言的精華,特別針對目前C語言的發展,精心策劃了C語言的綜合應用、圖形與動畫的設計、音樂的演奏等。 從結構化程序設計到面向對象的程序設計,其發展前景是不以人的意志為轉移的。為了使學生盡快地掌握并順利地過渡面向對象的程序設計方法,我們專門編寫了介紹C++入門知識的一章,以使本教材更加完美。 本書的作者都是長期在高校從事計算機基礎教育的一線教師,有豐富的教學經驗和寫作經驗,書中文字流暢、通俗易懂、概念清楚、深入淺出、例題豐富,書后的附錄專門配有每章的練習供讀者選用。 此書可作為普通高校本、專科學生的教學用書,也可供一般工程技術人員自學使用。
上傳時間: 2013-11-30
上傳用戶:myworkpost