注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計程序設(shè)計綜合AVR單片機(jī)高級語言BASCOM程序設(shè)計與應(yīng)用

AVR單片機(jī)高級語言BASCOM程序設(shè)計與應(yīng)用

AVR單片機(jī)高級語言BASCOM程序設(shè)計與應(yīng)用

定 價:¥22.00

作 者: 張茂青主編;李彥超,張敏,耿德根編著
出版社: 北京航空航天大學(xué)出版社
叢編項:
標(biāo) 簽: 高級程序語言設(shè)計

ISBN: 9787810775663 出版時間: 2005-01-01 包裝: 膠版紙
開本: 27cm 頁數(shù): 245 字?jǐn)?shù):  

內(nèi)容簡介

  內(nèi)容簡介目錄主要介紹類高級程序設(shè)計語言BASIC的AVR單片機(jī)開發(fā)平臺:BASCOMAVR。BASCOMAVR如同BASIC一樣,具有程序設(shè)計簡單易學(xué)、用簡單的語句可實現(xiàn)較復(fù)雜的功能等特點。其開發(fā)平臺的使用簡潔方便,并具有實物圖形化的仿真平臺,可以直觀地仿真程序的運行結(jié)果,是AVR單片機(jī)初學(xué)者快速入門的最佳工具。本書通過大量的典型實例和屏幕截圖進(jìn)行直觀的、由淺入深的論述,可作為單片機(jī)愛好者的自學(xué)讀本,也可作高中、高職、技校、大專院校中自動化、計算機(jī)、電子等專業(yè)的教學(xué)參考書,亦可作為電子應(yīng)用技術(shù)的培訓(xùn)教材。傳統(tǒng)單片機(jī)系統(tǒng)的開發(fā)主要是用匯編語言編寫應(yīng)用程序。由于匯編語言程序的可讀性、可移植性和結(jié)構(gòu)性比較差,因此采用匯編語言編寫單片機(jī)應(yīng)用程序的時間比較長,調(diào)試和排錯也比較困難,產(chǎn)品開發(fā)周期較長。為了提高編寫應(yīng)用程序的效率,改善程序的可讀性和可移植性,縮短產(chǎn)品的開發(fā)周期,采用高級語言的開發(fā)平臺來開發(fā)單片機(jī)系統(tǒng)已經(jīng)成為發(fā)展趨勢。本書主要介紹類高級程序設(shè)計語言BASIC的AVR單片機(jī)開發(fā)平臺:BASCOMAVR。BASCOMAVR如同BASIC一樣,具有程序設(shè)計簡單易學(xué)、用簡單語句可實現(xiàn)較復(fù)雜功能等特點。其開發(fā)平臺使用簡潔方便,并具有實物圖形化的仿真平臺,可以直觀地仿真出運行結(jié)果。配合AVR單片機(jī)程序存儲器具有可多次編程和在線下載的優(yōu)點,使學(xué)習(xí)和使用AVR單片機(jī)變得十分容易和方便。使用BASCOMAVR開發(fā)AVR單片機(jī)系統(tǒng),設(shè)計人員可以在半個小時內(nèi)完成一個功能模塊的設(shè)計編程和調(diào)試;而采用匯編語言,則需要幾天甚至幾個星期。本書不是講述如何設(shè)計和開發(fā)一個復(fù)雜的實際產(chǎn)品,而是指導(dǎo)和幫助初學(xué)者通過自己的親手實踐,來熟悉掌握BASCOMAVR的使用。因而本書中將較少涉及AVR的硬件設(shè)計,以軟件仿真為主,硬件為輔。有關(guān)硬件設(shè)計內(nèi)容可參考其他AVR相關(guān)資料。計算機(jī)開發(fā)語言經(jīng)過幾十年的發(fā)展,涌現(xiàn)出越來越多的開發(fā)語言,但目前BASIC 語言仍然是全球最流行的語言。經(jīng)市場調(diào)查資料顯示,使用BASIC語言的程序員人數(shù)(包括專業(yè)和非專業(yè)的)要遠(yuǎn)遠(yuǎn)多于使用其他語言的程序員人數(shù)。BASCOM語言是由個人計算機(jī)平臺移植到單片機(jī)平臺上的BASIC語言。BASCOM語言繼承了BASIC語言的編程特點:簡單易學(xué)且便于使用,特別適合于具有BASIC語言基礎(chǔ)的人員。BASCOM語言的優(yōu)點如下:1 具有良好的可移植性可移植性的好壞對編程語言來講是非常重要的。BASCOM語言具有良好的可移植性。AVR系列單片機(jī)是具有很多型號的一個單片機(jī)產(chǎn)品系列,如果使用匯編語言開發(fā),由于匯編語言依賴硬件性很強,所以若要將這個系列中某種型號單片機(jī)的代碼移植到另一種型號單片機(jī)上,代碼可能要做很大修改,而使用BASCOM語言就不同了。在其他語言中要做的修改,在BASCOM中僅僅修改一下頭文件即可。下面分別為將用匯編語言和BASCOM語言編寫的ATmega8515芯片的代碼移植到ATmega8535芯片上所需做的修改。匯編語言:.include "m8515def.inc".org $000rjmp main.org $007rjmp tim0_ovfmain:ldi r16,low(ramend)out spl,r16ldi r16,high(ramend)out sph,r16ldi r16,$02out timsk,r16ldi r16,$05out tccr0,r16ldi r17,131out tcnt0,r17ldi r16,$ffout ddrc,r16seihere:rjmp heretim0_ovf: in r1,sregldi r17,131out tcnt0,r17in r18,portccom r18out portc,r18out sreg,r1reti.include "m8535def.inc".org $000rjmp main.org $009rjmp tim0_ovfmain:ldi r16,low(ramend)out spl,r16ldi r16,high(ramend)out sph,r16ldi r16,$01out timsk,r16ldi r16,$05out tccr0,r16ldi r17,131out tcnt0,r17ldi r16,$ffout ddrc,r16seihere:rjmp heretim0_ovf: in r1,sregldi r17,131out tcnt0,r17in r18,portccom r18out portc,r18out sreg,r1retiBASCOM語言:$regfile = "m8515.dat"$crystal = 8000000Config Timer0 = Timer , Prescale = 1024Enable InterruptsEnable Ovf0On Ovf0 Overflow_isrDdrc= &HFFTcnt0 = 131DoLoopEndOverflow_isr:Tcnt0 = 131Portc= Not PortcReturn$regfile = "m8535.dat"$crystal = 8000000Config Timer0 = Timer , Prescale = 1024Enable InterruptsEnable Ovf0On Ovf0 Overflow_isrDdrc = &HFFTcnt0 = 131DoLoopEndOverflow_isr:Tcnt0 = 131Portc= Not PortcReturn注: 上面程序中加粗的內(nèi)容為需要修改的內(nèi)容。2 具有良好的可讀性采用BASCOM語言編程,不像匯編語言那樣,實現(xiàn)某種功能就是對特定的寄存器賦指定的值,而是用很直觀的語句來表示。例如,使定時器/計數(shù)器0上升沿計數(shù)的程序如下:匯編語言:ldi r16,$07out tccr0,r16BASCOM語言:CONFIG TIMER0 = COUNTER,EDGE=RISING通過上面的比較可以很容易地看出,用匯編語言編程,需要了解每一個特殊寄存器的功能;在實現(xiàn)某種功能時,必須了解向某寄存器賦某值。很多情況下,這些寄存器的名稱與其實現(xiàn)的功能沒有意義上的聯(lián)系。例如,對于tccr0,在沒有任何資料的情況下,很難聯(lián)想到它是定時器/計數(shù)器0的控制寄存器;因此,通過寄存器賦的值來聯(lián)想它所實現(xiàn)的功能就更難了。就上例而言,若無資料,很難想象對tccr0賦$07這個命令字實現(xiàn)什么功能。這些都只是規(guī)定,這就要求編程人員對這些名稱和數(shù)值要熟記,手邊還要有單片機(jī)資料備查。而BASCOM就不同了,它替我們屏蔽掉了很多底層的東西。BASCOM的語句就是對實現(xiàn)功能的語言描述。就上例而言,若用BASCOM語句即為:CONFIG TIMER0 = COUNTER,EDGE=RISING一看這個語句,就可以把它要實現(xiàn)的功能猜得差不多了,因為它就是一個語言描述,很多語句就是英文單詞,可以望詞知意。BASIC語言在我國計算機(jī)知識普及過程中發(fā)揮的作用是有目共睹的。在過去的十幾年中,BASIC語言曾經(jīng)引導(dǎo)許多人從一個"計算機(jī)盲"向計算機(jī)應(yīng)用邁出了可貴的第一步。在我國至少有1 000多萬人學(xué)習(xí)過BASIC語言,其中不少人在入門之后繼續(xù)提高,成為計算機(jī)應(yīng)用人才,取得了很大的成績。作者希望通過本書對BASCOMAVR的介紹,能夠為單片機(jī)技術(shù)在我國推廣盡自身的綿薄之力。全書共9章,由張茂青擔(dān)任主編。其中第2章和第9章的部分內(nèi)容由耿德根執(zhí)筆,其余各章均由李彥超、張敏和張茂青共同執(zhí)筆。全書由張茂青統(tǒng)稿。在本書的編寫過程中,得到了雙龍電子公司的大力支持;本書開發(fā)實驗器SLAVRAD由雙龍公司提供,書中程序均在該開發(fā)實驗器上驗證通過。由于作者水平有限,只是為了滿足初學(xué)者的需要而拋磚引玉,利用工作之余寫成本書,可能會有一些缺點或錯誤,希望得到專家和讀者的指正,在適當(dāng)?shù)臅r間再作修訂補充,以便跟上單片機(jī)技術(shù)的發(fā)展需要。讀者在學(xué)習(xí)本書的過程中若有疑問,可以在由雙龍電子贊助的21IC BBS(AVR單片機(jī)論壇)或雙龍公司論壇(WWW. AVR. COM.CN的BASCOM專欄)提出,本書的編者及論壇中其他熱心網(wǎng)友會進(jìn)行解答。作者2004年6月于蘇州大學(xué) 第1章 AVR單片機(jī)與BASIC語言1.1 BASIC語言的特點11.2 AVR單片機(jī)的特點21.3 用BASIC語言開發(fā)單片機(jī)的優(yōu)勢2第2章 BASCOMAVR集成開發(fā)環(huán)境2.1 基于高級語言BASCOMAVR的單片機(jī)開發(fā)平臺52.1.1 實驗硬件系統(tǒng)52.1.2 軟件開發(fā)平臺82.2 BASCOMAVR的安裝與使用92.2.1 BASCOMAVR的安裝92.2.2 啟動BASCOMAVR142.2.3 BASCOMAVR使用快速入門152.2.4 BASCOMAVR界面簡介192.2.5 鍵盤操作232.2.6 BASCOMAVR的參數(shù)設(shè)置242.2.7 軟件仿真41第3章 BASCOM程序設(shè)計基礎(chǔ)3.1 完整的BASCOM例子493.2 BASCOM基本語法介紹493.2.1 BASCOM程序的組成493.2.2 字符集513.3 數(shù)據(jù)類型523.4 常量和變量533.4.1 常量533.4.2 變量543.5 運算符和表達(dá)式573.5.1 算術(shù)運算符573.5.2 關(guān)系運算符583.5.3 邏輯運算符583.5.4 類型轉(zhuǎn)換 593.6 常用標(biāo)準(zhǔn)函數(shù)603.6.1 數(shù)值型函數(shù)603.6.2 字符串函數(shù)653.6.3 數(shù)組相關(guān)函數(shù)743.7 常用語句介紹753.7.1 延時語句763.7.2 加1減1語句783.7.3 交換兩個相同類型變量中的內(nèi)容783.7.4 位運算793.8 浮點數(shù)823.8.1 浮點格式823.8.2 十進(jìn)制和二進(jìn)制833.8.3 整型數(shù)如何在計算機(jī)中表示833.8.4 使用浮點數(shù)的運算誤差833.8.5 浮點數(shù)概念843.8.6 IEEE細(xì)節(jié)843.8.7 浮點數(shù)其他常見誤差86第4章 賦值與輸入/輸出語句4.1 賦值語句874.2 輸入/輸出語句884.2.1 串口輸入語句894.2.2 串口輸出語句904.2.3 LCD輸出語句924.2.4 小鍵盤數(shù)據(jù)輸入934.2.5 讀數(shù)和置數(shù)語句944.3 結(jié)束語句96第5章 BASCOM語言流程控制5.1 選擇語句975.1.1 兩路分支選擇結(jié)構(gòu)975.1.2 多行IF語句995.1.3 無條件轉(zhuǎn)移語句(GOTO語句)1025.1.4 多路分支選擇結(jié)構(gòu)1025.1.5 多分支轉(zhuǎn)移語句(ON VALUE語句)1055.1.6 程序舉例1065.2 循環(huán)語句1095.2.1 WHILE循環(huán)語句1095.2.2 DO循環(huán)語句1105.2.3 FOR循環(huán)語句1115.2.4 循環(huán)嵌套1135.2.5 程序舉例114第6章 BASCOM語言結(jié)構(gòu)化設(shè)計:過程的使用6.1 過程的聲明1176.1.1 SUB過程的聲明1176.1.2 用戶自定義FUNCTION過程的聲明1186.2 過程的定義1186.2.1 SUB過程的定義1186.2.2 FUNCTION過程的定義1196.3 過程的調(diào)用1206.3.1 調(diào)用SUB過程1206.3.2 調(diào)用FUNCTION過程1216.4 參數(shù)傳送1226.4.1 形參與實參1226.4.2 引用和傳值1226.5 變量的作用域1246.5.1局部變量1246.5.2 全局變量1266.6 過程的嵌套1276.6.1 SUB過程嵌套1286.6.2 FUNCTION過程嵌套1296.7 轉(zhuǎn)子與返回129第7章 AVR BASCOM語言應(yīng)用實例7.1 一個程序代碼完整的編寫、調(diào)試和下載過程1347.2 I/O端口輸出的簡單例子1437.3 使用AVRStudio進(jìn)行程序代碼調(diào)試1447.4 模仿CD或MP3播放器液晶屏顯示1537.5 LCD中顯示自定義字符1577.6 貪吃蛇程序1617.7 發(fā)音程序1647.8 控制微型伺服馬達(dá)167第8章 Atmel 單片機(jī)硬件結(jié)構(gòu)8.1 AVR單片機(jī)體系結(jié)構(gòu)概述1718.2 存儲器1728.2.1 Flash程序存儲器1728.2.2 數(shù)據(jù)存儲器1728.2.3 EEPROM存儲器1758.2.4 BASCOM中存儲器操作語句1768.2.5 存儲器部分在仿真環(huán)境中的使用1788.3 并行I/O端口1828.3.1 I/O端口相關(guān)寄存器1828.3.2 I/O端口在仿真環(huán)境中的使用方法1858.4 中斷1898.4.1 中斷的概念1898.4.2 中斷的作用1898.4.3 中斷優(yōu)先級1898.4.4 中斷源1898.4.5 中斷的執(zhí)行過程1918.4.6 中斷仿真1968.5 定時器/計數(shù)器1998.5.1 基本概念1998.5.2 定時器/計數(shù)器0(T/C0)1998.5.3 定時器/計數(shù)器12078.5.4 定時器/計數(shù)器22178.6 USART串口通信2188.6.1 串行通信的基本概念2188.6.2 AVR系列單片機(jī)串行接口2198.6.3 BASCOM中有關(guān)USART操作2198.7 模/數(shù)轉(zhuǎn)換2218.7.1 A/D轉(zhuǎn)換在仿真環(huán)境中使用2228.7.2 A/D 轉(zhuǎn)換應(yīng)用實例2238.8 模擬比較器227第9章 AVR單片機(jī)存儲器的程序下載9.1 概述2289.2 ISP下載器接口2289.3 ISP串行下載操作2299.3.1 啟動SL ISP下載軟件的方法2299.3.2 SL ISP下載軟件介紹230附錄ABASCOM錯誤代碼附錄BASCII碼參 考 文 獻(xiàn)

作者簡介

暫缺《AVR單片機(jī)高級語言BASCOM程序設(shè)計與應(yīng)用》作者簡介

圖書目錄

第1章 AVR單片機(jī)與BASIC語言
1.1 BASIC語言的特點1
1.2 AVR單片機(jī)的特點2
1.3 用BASIC語言開發(fā)單片機(jī)的優(yōu)勢2
第2章 BASCOMAVR集成開發(fā)環(huán)境
2.1 基于高級語言BASCOMAVR的單片機(jī)開發(fā)平臺5
2.1.1 實驗硬件系統(tǒng)5
2.1.2 軟件開發(fā)平臺8
2.2 BASCOMAVR的安裝與使用9
2.2.1 BASCOMAVR的安裝9
2.2.2 啟動BASCOMAVR14
2.2.3 BASCOMAVR使用快速入門15
2.2.4 BASCOMAVR界面簡介19
2.2.5 鍵盤操作23
2.2.6 BASCOMAVR的參數(shù)設(shè)置24
2.2.7 軟件仿真41
第3章 BASCOM程序設(shè)計基礎(chǔ)
3.1 完整的BASCOM例子49
3.2 BASCOM基本語法介紹49
3.2.1 BASCOM程序的組成49
3.2.2 字符集51
3.3 數(shù)據(jù)類型52
3.4 常量和變量53
3.4.1 常量53
3.4.2 變量54
3.5 運算符和表達(dá)式57
3.5.1 算術(shù)運算符57
3.5.2 關(guān)系運算符58
3.5.3 邏輯運算符58
3.5.4 類型轉(zhuǎn)換 59
3.6 常用標(biāo)準(zhǔn)函數(shù)60
3.6.1 數(shù)值型函數(shù)60
3.6.2 字符串函數(shù)65
3.6.3 數(shù)組相關(guān)函數(shù)74
3.7 常用語句介紹75
3.7.1 延時語句76
3.7.2 加1減1語句78
3.7.3 交換兩個相同類型變量中的內(nèi)容78
3.7.4 位運算79
3.8 浮點數(shù)82
3.8.1 浮點格式82
3.8.2 十進(jìn)制和二進(jìn)制83
3.8.3 整型數(shù)如何在計算機(jī)中表示83
3.8.4 使用浮點數(shù)的運算誤差83
3.8.5 浮點數(shù)概念84
3.8.6 IEEE細(xì)節(jié)84
3.8.7 浮點數(shù)其他常見誤差86
第4章 賦值與輸入/輸出語句
4.1 賦值語句87
4.2 輸入/輸出語句88
4.2.1 串口輸入語句89
4.2.2 串口輸出語句90
4.2.3 LCD輸出語句92
4.2.4 小鍵盤數(shù)據(jù)輸入93
4.2.5 讀數(shù)和置數(shù)語句94
4.3 結(jié)束語句96
第5章 BASCOM語言流程控制
5.1 選擇語句97
5.1.1 兩路分支選擇結(jié)構(gòu)97
5.1.2 多行IF語句99
5.1.3 無條件轉(zhuǎn)移語句(GOTO語句)102
5.1.4 多路分支選擇結(jié)構(gòu)102
5.1.5 多分支轉(zhuǎn)移語句(ON VALUE語句)105
5.1.6 程序舉例106
5.2 循環(huán)語句109
5.2.1 WHILE循環(huán)語句109
5.2.2 DO循環(huán)語句110
5.2.3 FOR循環(huán)語句111
5.2.4 循環(huán)嵌套113
5.2.5 程序舉例114
第6章 BASCOM語言結(jié)構(gòu)化設(shè)計——過程的使用
6.1 過程的聲明117
6.1.1 SUB過程的聲明117
6.1.2 用戶自定義FUNCTION過程的聲明118
6.2 過程的定義118
6.2.1 SUB過程的定義118
6.2.2 FUNCTION過程的定義119
6.3 過程的調(diào)用120
6.3.1 調(diào)用SUB過程120
6.3.2 調(diào)用FUNCTION過程121
6.4 參數(shù)傳送122
6.4.1 形參與實參122
6.4.2 引用和傳值122
6.5 變量的作用域124
6.5.1  局部變量124
6.5.2 全局變量126
6.6 過程的嵌套127
6.6.1 SUB過程嵌套128
6.6.2 FUNCTION過程嵌套129
6.7 轉(zhuǎn)子與返回129
第7章 AVR BASCOM語言應(yīng)用實例
7.1 一個程序代碼完整的編寫、調(diào)試和下載過程134
7.2 I/O端口輸出的簡單例子143
7.3 使用AVRStudio進(jìn)行程序代碼調(diào)試144
7.4 模仿CD或MP3播放器液晶屏顯示153
7.5 LCD中顯示自定義字符157
7.6 貪吃蛇程序161
7.7 發(fā)音程序164
7.8 控制微型伺服馬達(dá)167
第8章 Atmel 單片機(jī)硬件結(jié)構(gòu)
8.1 AVR單片機(jī)體系結(jié)構(gòu)概述171
8.2 存儲器172
8.2.1 Flash程序存儲器172
8.2.2 數(shù)據(jù)存儲器172
8.2.3 EEPROM存儲器175
8.2.4 BASCOM中存儲器操作語句176
8.2.5 存儲器部分在仿真環(huán)境中的使用178
8.3 并行I/O端口182
8.3.1 I/O端口相關(guān)寄存器182
8.3.2 I/O端口在仿真環(huán)境中的使用方法185
8.4 中斷189
8.4.1 中斷的概念189
8.4.2 中斷的作用189
8.4.3 中斷優(yōu)先級189
8.4.4 中斷源189
8.4.5 中斷的執(zhí)行過程191
8.4.6 中斷仿真196
8.5 定時器/計數(shù)器199
8.5.1 基本概念199
8.5.2 定時器/計數(shù)器0(T/C0)199
8.5.3 定時器/計數(shù)器1207
8.5.4 定時器/計數(shù)器2217
8.6 USART串口通信218
8.6.1 串行通信的基本概念218
8.6.2 AVR系列單片機(jī)串行接口219
8.6.3 BASCOM中有關(guān)USART操作219
8.7 模/數(shù)轉(zhuǎn)換221
8.7.1 A/D轉(zhuǎn)換在仿真環(huán)境中使用222
8.7.2 A/D 轉(zhuǎn)換應(yīng)用實例223
8.8 模擬比較器227
第9章 AVR單片機(jī)存儲器的程序下載
9.1 概述228
9.2 ISP下載器接口228
9.3 ISP串行下載操作229
9.3.1 啟動SL ISP下載軟件的方法229
9.3.2 SL ISP下載軟件介紹230
附錄ABASCOM錯誤代碼
附錄BASCII碼
參 考 文 獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號