Keil C51開發系統基本知識3 1. 1. 專用寄存器include文件例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統都必須包括本文件。2. 2. 絕對地址include文件absacc.h該文件中實際只定義了幾個宏,以確定各存儲空間的絕對地址。3. 3. 動態內存分配函數,位于stdlib.h中 4. 4. 緩沖區處理函數位于“string.h”中其中包括拷貝比較移動等函數如:memccpy memchr memcmp memcpy memmove memset這樣很方便地對緩沖區進行處理。5. 5. 輸入輸出流函數,位于“stdio.h”中流函數通8051的串口或用戶定義的I/O口讀寫數據,缺省為8051串口,如要修改,比如改為LCD顯示,可修改lib目錄中的getkey.c及putchar.c源文件,然后在庫中替換它們即可。3. 第三節 Keil C51庫函數原型列表
上傳時間: 2013-11-06
上傳用戶:smallfish
初學單片機必會40個基本實驗.pdf
上傳時間: 2013-11-03
上傳用戶:wangjg
SystemView仿真軟件的應用:利用系統設計、分析和仿真的可視化開發環境—SystemView 軟件平臺進行通信原理課程教學, 對SystemView 仿真軟件進行了簡要的介紹.并以2DPSK的調制解調原理為例分析了仿真過程,結果表明通過用SystemView 軟件仿真,可以很方便地得到所設計電路的輸出結果與分析波形。關鍵詞:SystemView;仿真;2DPSK通信原理是電子信息工程、通信工程等專業的一門重要的專業基礎理論課,能否正確理解其概念和基本理論對后續專業課程的學習非常關鍵。由于該課程公式和理論推導較多,學起來相對乏味,單純依靠課堂講解, 很難理解,只有借助一定的輔助工具,才能讓學生更好的掌握這門課程。為了使學生能從動態上更直觀地形象地理解這些理論, 可以采用動態系統仿真軟件System View以增強課堂教學效果,從而使學生更好地掌握其基礎理論。
標簽: SystemView 仿真軟件
上傳時間: 2013-11-01
上傳用戶:haohaoxuexi
單片機的數學基礎:本章基本要求:單片機是現代電子智能儀器儀表及嵌入式系統的主要組成部分,應用非常廣泛,是現代工程技術人員必須掌握的知識之一。本章要求掌握數的進制及其相互轉換、帶符號數的表示方法、溢出的判別方法、ASCII 碼和BCD 碼等單片機的數學基礎知識;掌握單片機的概念、特點、應用范圍、發展歷程等基礎知識;了解常用單片機系列。為后續章節的學習打下基礎。1.1 單片機的數學基礎1.1.1 數的進位制及其相互轉換(1) 數的幾種常用進制數制是人們利用符號來計數的方法,數制有很多種,人們熟悉的是十進制。但由于數在機器中是以器件的物理狀態來表示的,所以一個具有兩種穩定狀態且能相互轉換的器件,就可以用來表示一位二進制數。二進制數的表示是最簡單而且是最可靠的,另外二進制的運算規則也是最簡單的。因此,迄今為止,所有計算機都是以二進制進行算術運算和邏輯運算的。但是在使用二進制編寫程序時既繁鎖又容易出錯,所以人們在編寫程序時又經常用到十進制、十六進制或八進制。下面分別予以介紹。任何一種數制都有兩個要素,即基數和權。基數為數制中所使用的數碼的個數。當基數為R 時,該數制可使用的數碼為0~(R-1)。例如在二進制中基數為2,可使用0 和1 兩個數碼。在進行運算時按逢R 進一,借1當R的規則進行。權是數制中某一數位上單位數的大小,它是一個指數,底是基數R,冪是數碼的位置號,數碼的位置號從0 開始。將一個數中某一位的數碼與該位的權相乘,即為該位數碼的數值。
標簽: 單片機
上傳時間: 2013-11-16
上傳用戶:mahone
本課程主要介紹ATM的基本原理對于初級水平讀者第5 6 7 8 9章可以不做深入了解課程目標本課程主要目標 掌握VP VC的概念信元的結構 掌握ATM交換的特點 了解ATM協議棧結構 掌握ATM擁塞管理和流量控制與流控算法 掌握ATM的的幾種典型封裝協議
上傳時間: 2013-10-22
上傳用戶:阿四AIR
SOC與單片機應用技術的發展:本文討論SOC和單片機應用技術的發展;介紹SOC的基本技術特點和應用概念;分析作為IP家庭重要成員的單片機在SOC應用設計中的特點。通過討論指出以嵌入技術為基礎,單片機再次成為現代電子應用技術的核心之一,為SOC應用技術提供了堅實的基礎。 關鍵字:SOC;單片機;嵌入式系統 引言 現場電子技術應用中包含了硬件(HW)、硬件加軟件(HW+SW)、固件(FW)3個層次。這3個層次也可以說是現代電子技術應用的3人發展階段。自1997年以來,電子技術應用又增加了一個新的層次??片上系統(SOC)層次。SOC技術概念和應用技術層次的出現,標志著現代電子技術應用進入了SOC階段。 從各個發展階段看,自HW+SW階段開始,電子技術應用就與單片機緊密地聯系在一起。在FW階段,作為固件系統的重要核心技術,單片機又以嵌入式技術為基礎,再次成為現代電子應用技術的核心技術之一,并為SOC應用技術提供了緊實的基礎。 SOC為各種應用提供了一個新的實現技術。這種新的電子系統實現技術促使工業界在近3年中發生了巨大的變化,為信息技術的應用提供堅實的基礎,因此,完全可以稱之為SOC革命。同時,SOC也為單片機技術提供了更廣闊的應用領域,使單片機應用技術發生了革命性的變化。
上傳時間: 2013-10-31
上傳用戶:qb1993225
C51基本結構程序設計1. 掌握if語句來實現選擇結構,能利用if語句編寫相應的分枝結構的程序。在嵌套if語句中,一定要搞清楚else與哪個if結合的問題。2.掌握switch語句來實現多向分枝選擇結構,能利用switch語句編寫相應的分枝結構的程序。 3. 掌握循環語句的即初始化、循環體、循環控制及結束四個部分,并能進行循環語句的程序設計。分別掌握for 語句、while語句以及do-while語句的使用語法及方法,能利用這三種循環結構進行循環程序設計,理解這三種語句的異同。4.理解并掌握continue、break語句在循環結構和選擇結構中的作用。對于goto語句,理解該語句優缺點。C51語言是結構化編程語言。結構化語言的基本元素是模塊,它是程序的一部分.只有一個出口和一個入口.不允許有偶然的中途插入或以模塊的其它路徑退出。結構化編程語言在沒有妥善保護或恢復堆棧和其它相關的寄存器之前,不應隨便跳入或跳出一個模塊。因此使用這種結構化語言進行編程,當要退出中斷時,堆棧不會因為程序使用了任何可以接受的命令而崩潰。 結構化程序由若干模塊組成,每個模塊中包含著若干個基本結構,而每個基本結構中可以有若干條語句。歸納起來,C51程序有順序結構、選擇結構、循環結構共三種結構。
上傳時間: 2013-11-01
上傳用戶:四只眼
單片機接口技術(C51版)課件:單片機接口技術(C51版)課件精品課程,該書由張道德根據多年單片機教學、科研經驗編著,中國水利水電出版社2007年3月出版。 1.掌握數據類型的概念,了解C51語言能夠處理的數據類型。2.掌握常量的概念,掌握各種類型常量的特點及表示形式。3.掌握變量的概念,了解int、float、char型變量的特點,掌握這三種類型變量的定義、賦值和使用方法。理解C51中變量的存儲和編譯模式的關系,掌握單片機片內資源的訪問方法。4.了解C51語言的基本運算符及其特點,掌握運算符的優先級和結合性的概念。5.了解算術運算表達式、關系表達式及邏輯表達式的特點,熟練進行表達式計算,能熟練進行實際問題的表達式描述。6.熟悉自增、自減運算的特點,掌握賦值運算,了解逗號運算符和逗號表達式。7.掌握數據類型轉換的概念,能進行基本的數據類型轉換。
上傳時間: 2013-10-10
上傳用戶:jcljkh
單片機音樂中音調和節拍的確定方法:調號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經過聲學家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標準的音高為每秒鐘振動440周。 升C調:1=#C,也就是降D調:1=BD;277(頻率)升D調:1=#D,也就是降E調:1=BE;311升F調:1=#F,也就是降G調:1=BG;369升G調:1=#G,也就是降A調:1=BA;415升A調:1=#A,也就是降B調:1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所謂1=A,就是說,這首歌曲的“導”要唱得同A一樣高,人們也把這首歌曲叫做A調歌曲,或叫“唱A調”。1=C,就是說,這首歌曲的“導”要唱得同C一樣高,或者說“這歌曲唱C調”。同樣是“導”,不同的調唱起來的高低是不一樣的。各調的對應的標準頻率為: 單片機演奏音樂時音調和節拍的確定方法 經常看到一些剛學單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調”和“節拍”。音調表示一個音符唱多高的頻率,節拍表示一個音符唱多長的時間。 在音樂中所謂“音調”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標準音高,其頻率f=440Hz。當兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度音內,有12個半音。以1—i八音區為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數關系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調的頻率,我們就可根據倍頻程的關系得到其他音符基本音調的頻率。 知道了一個音符的頻率后,怎樣讓單片機發出相應頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發出聲音,為了讓單片機發出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現。那么怎樣確定一個頻率所對應的定時器的定時值呢?以標準音高A為例: A的頻率f = 440 Hz,其對應的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機上對應蜂鳴器的I/O口來回取反的時間應為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應有的中斷觸發時間。一般情況下,單片機奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設振蕩器頻率為f0,則定時器的予置初值由下式來確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數初值。因此定時器的高低計數器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 將t=1136μs代入上面兩式(注意:計算時應將時間和頻率的單位換算一致),即可求出標準音高A在單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據上面的求解方法,我們就可求出其他音調相應的計數器的予置初值。 音符的節拍我們可以舉例來說明。在一張樂譜中,我們經常會看到這樣的表達式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂譜的曲調,和我們前面所談的音調有很大的關聯, 、 就是用來表示節拍的。以 為例加以說明,它表示樂譜中以四分音符為節拍,每一小結有三拍。比如: 其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當以四分音符為節拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機上控制一個音符唱多長可采用循環延時的方法來實現。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調用一次延時程序,如果它為八分音符,則只需調用二次延時程序,如果它為四分音符,則只需調用四次延時程序,依次類推。通過上面關于一個音符音調和節拍的確定方法,我們就可以在單片機上實現演奏音樂了。具體的實現方法為:將樂譜中的每個音符的音調及節拍變換成相應的音調參數和節拍參數,將他們做成數據表格,存放在存儲器中,通過程序取出一個音符的相關參數,播放該音符,該音符唱完后,接著取出下一個音符的相關參數……,如此直到播放完畢最后一個音符,根據需要也可循環不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調參數設為FFH,FFH,其節拍參數與其他音符的節拍參數確定方法一致,樂曲結束用節拍參數為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數器的予置初值 : C調音符 頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上傳時間: 2013-10-20
上傳用戶:哈哈haha
在單片機應用開發中,代碼的使用效率問題、單片機抗干擾性和可靠性等問題仍困擾著 工程師。為幫助工程師解決單片機設計上的難題,《電子工程專輯》網站特邀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