




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、簡單跑馬燈的設(shè)計AVR單片機的C言語編程Embedded C Programming 1. C言語體系構(gòu)造2. 變量和常量3. AVR單片機I/O端口特性簡單跑馬燈的設(shè)計Flash LED Design設(shè)計內(nèi)容:共有8個LED需求每隔500MS同時點亮或熄滅,LED接在PORTA口,輸出高電平燈亮 ,輸出低電平常燈滅。要求1:自行編程。要求2:采用自動引導(dǎo)程序進展配置生成軟件初始化代碼框架,然后填入本人的程序代碼。經(jīng)過CodeVision編譯,留意時鐘頻率。分組輪番閃爍的跑馬燈實訓(xùn)1:要求按照如下所示的方式1點亮,間隔500ms后,再換成方式2點亮,依此類推,周而復(fù)始。 方式1: 方式2:要求
2、:采用自動引導(dǎo)程序進展配置生成軟件初始化代碼框架,然后填入本人的程序代碼。要求設(shè)置時鐘頻率為2M。下載程序時要求采用內(nèi)部RC振蕩器的熔絲配置。AVR的IO端口特性 Input & Output Port設(shè)置數(shù)據(jù)方向部分電路數(shù)據(jù)并行輸出部分電路數(shù)據(jù)并行輸入部分電路 8位的并行輸入、輸出接口。并行輸入:經(jīng)過一條輸入指令可以一次讀出8個引腳的形狀,組成一個字節(jié)的數(shù)據(jù)。普通用來采集外部數(shù)據(jù)。并行輸出:經(jīng)過一條輸出指令可以將一個字節(jié)的數(shù)據(jù)送到8個引腳上。普通用來輸出控制信息。 AVR的I/O口是真正的I/O口,能正確反映I/O口的真實情況。I/O口有輸入/輸出, 三態(tài)高阻輸入,也可設(shè)定內(nèi)部拉高電阻作輸入
3、端的功能,便于作各種運用特性所需(多功能I/O口)。但是運用時,必需進展方向設(shè)置,是作為輸入,還是作為輸出接口運用。I/O接口及其運用AVR的IO端口特性 Input & Output Port每個端口為具有可選上拉電阻的雙向I/O端口。每個并行端口有三個相關(guān)的I/O存放器:數(shù)據(jù)方向存放器DDRx數(shù)據(jù)存放器PORTx端口輸入引腳存放器PINx其中x對應(yīng)A、B、C、D四個端口 當端口的某位DDRxn=1 時,那么此位定義為輸出方式。且輸出值等于PORTxn。其中n代表位的序號當端口的某位DDRxn=0 時,那么此位定義為輸入方式。 不論如何配置DDRxn,都可以經(jīng)過讀取PINxn存放器來獲得引腳
4、電平。為可讀/寫的存放器為只讀存放器AVR的IO端口特性 Input & Output Port 一切AVR I/O端口都具有真正的讀修正寫的功能:可以經(jīng)過軟件恣意設(shè)置任何一位的輸入、輸出方式。并且輸出緩沖器具有對稱的驅(qū)動才干,可以輸出或吸收大電流,直接驅(qū)動LED。 一切的端口引腳都具有與電壓無關(guān)的上拉電阻。并有維護二極管與VCC 和地相連。 假設(shè)有引腳未被運用,建議這些引腳賦予一個確定電平,使能內(nèi)部上拉電阻。 復(fù)位后即缺省配置方向:輸入 PIN為物理引腳上拉:封鎖 此時引腳的形狀不確定上拉轉(zhuǎn)換DDxPORTxPINx物理引腳上拉方向:輸入 PIN可輸出電流上拉:ON 此時引腳的形狀可正確讀入
5、?0111口線輸出DDxPORTxPINx物理引腳上拉方向:輸出 PIN反映輸出真實情況上拉:OFF11111111AVR單片機I/O口是真正的I/口仿真器編程下載與熔絲配置的運用Program Download& Fuse Config JTAGICE 可以對支持的器件的FLASH、EEPROM、熔絲位和加密位編程,可以執(zhí)行芯片擦除、編程、校驗、加密的操作 AVRStudio中點擊命令: TOOLS-Program AVR/CONNECT 或TOOLS-Program AVR/AUTO CONNECT 留意:假設(shè)正在調(diào)試,那么也必需點擊DEBUG-Stop Debugging 來退出仿真調(diào)試
6、程序?qū)TAGICE 的占用。 仿真器編程下載與熔絲配置的運用Program Download& Fuse Config Program 選項卡留意,只需帶JTAG口功能的AVR才支持JTAGICE 編程 FLASH緩沖區(qū)和EEPROM緩沖區(qū)可以支持的文件格式:Atmel .rom和.eepIntel HEX二進制.bin仿真器編程下載與熔絲配置的運用Program Download& Fuse Config Fuse 選項卡:功能熔絲位的配置:BOOT區(qū)熔絲位的配置:支持引導(dǎo)加載程序的芯片有更多的平安位,可以鎖定存儲器中的引導(dǎo)加載區(qū)。FLASH鎖定位:選擇芯片編程運用的平安級別。留意,請保證
7、“JTAG Interface Enable一項一直有效,否那么目的芯片就將失去與JTAGICE 的通訊才干,只需經(jīng)過并行編程的方法才干重新激活該熔絲位 4. Lock&Bits 選項卡加密鎖定位的設(shè)置留意,假設(shè)想要將加密位刪除,那么只能對芯片做擦除操作。仿真器編程下載與熔絲配置的運用Program Download& Fuse Config 實戰(zhàn)演練實訓(xùn)2:如下圖電路,要求按照如下所示的方式1點亮,間隔0.2s后,再換成方式2點亮,依此類推,周而復(fù)始。 方式1: 方式2:設(shè)計要求:采用自動引導(dǎo)程序進展配置生成軟件初始化代碼框架,然后填入本人的程序代碼。經(jīng)過CodeVision編譯,要求下載程
8、序時要求采用外部時鐘的熔絲配置。 led2.c運用延時函數(shù)的詳細引見Delay Function運用延時函數(shù)前要用#include預(yù)處置命令。下面延時函數(shù)運用程序循環(huán)產(chǎn)生延時,調(diào)用它們之前要封鎖中斷,否那么會比預(yù)期的延時要長。要在CodeVisionAVR軟件的ProjectConfigureC Compiler菜單中設(shè)定準確的時鐘頻率。并同程序下載時設(shè)置的熔絲位一致。本目的板的時鐘只能設(shè)置成內(nèi)部RC和外部晶振兩種方式。主要的延時函數(shù):void delay_us(unsigned int n) 實現(xiàn)n個微秒的延時,其中n必需是常數(shù)表達式。void delay_ms(unsigned int n
9、) 實現(xiàn)n個毫秒的延時,其中n必需是常數(shù)表達式。此函數(shù)會每毫秒清一次看門狗。實戰(zhàn)演練實訓(xùn)3:如下圖電路,要求按照如下所示的方式1點亮,每次點亮兩只燈,間隔0.2s后,再換成方式2點亮相鄰的兩只,依此類推,四次后,再回到第一次,周而復(fù)始循環(huán)50次。要求分別用while,do-while, 語句完成 方式1: 方式2: 方式3: 方式4:C言語體系構(gòu)造是函數(shù)構(gòu)造 Embedded C Structure/*This program was produced by theCodeWizardAVR V1.24.7e StandardChip type : ATmega16Program type :
10、 ApplicationClock frequency : 8.000000 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 256*/ LED controller program注釋部分:由“/* */配對括起來的部分內(nèi)容,可以包括多行。注釋部分:由“/引導(dǎo)的一行內(nèi)容。C言語體系構(gòu)造是函數(shù)構(gòu)造 Embedded C Structure#include #include/ Declare your global variables herevoid main(void).void function(void).預(yù)編
11、譯命令:文件包含指令函數(shù)頭函數(shù)體主函數(shù)main( ):C程序總是從main( )函數(shù)開場執(zhí)行。而不論其在程序中的位置如何。當主函數(shù)執(zhí)行終了時,亦即程序執(zhí)行終了。定義了一些與I/0接口有關(guān)的特定變量,他們對應(yīng)單片機呢部的特殊功能存放器,用大寫字母書寫。C言語構(gòu)造風(fēng)格特點 Embedded C Structure Character1.習(xí)慣用小寫字母,大小寫敏感2.一行上可以寫幾條語句,一條語句也可以寫在幾行上??蛇\用空行和空格3.C程序由語句組成,用“;作為語句終止符4. 書寫上留意運用縮進格式。5.程序由一個或多個函數(shù)組成,必需有且只能有一個主函數(shù)main()6.程序執(zhí)行從main開場,在ma
12、in中終了,其它函數(shù)經(jīng)過嵌套調(diào)用得以執(zhí)行。7. 允許運用注釋。 C言語的注釋格式為: /* */技巧:為防止脫漏必需配對運用的符號,例如注釋符號/* */ 、函數(shù)體的起止標識符花括號 、圓括號等等。void main(void)/ Port A initialization. DDRA=0 xFF; PORTA=0 xFF; . while (1) / Place your code here PORTA=0 xFF; delay_ms(500); ;變量與變量名 Variable Concept and Variable Identifier變量:程序運轉(zhuǎn)過程中其值可以改動的量,系統(tǒng)為程序中
13、的每一個變量開辟一個存儲單元。變量的兩個要素:變量名和變量值變量命名遵照標識符命名規(guī)那么,在程序中,經(jīng)過變量名來援用變量的值。標識符:用來標識變量名、符號常量名、數(shù)組名、函數(shù)名、文件名的有效字符序列。標識符定義的本卷須知:字母或下劃線開頭,后跟字母、數(shù)字和下劃線組成。不能和系統(tǒng)運用的名字關(guān)鍵字沖突。長度無一致規(guī)定,許多系統(tǒng)取8個字符。但目前并不如此。編程技巧:運用見名知意的字符串命名變量標識符。C言語的根本數(shù)據(jù)類型以及變量的定義 Variable Define根本數(shù)據(jù)類型:整型、實型、字符型C程序中用到的每一個變量都要指定它們所屬的數(shù)據(jù)類型。 其緣由在于:不同類型的數(shù)據(jù)在內(nèi)存中占據(jù)不同長度的存
14、儲區(qū),而且采用不同的表示方式。一個數(shù)據(jù)類型對應(yīng)著一個值的范圍并且對應(yīng)一組允許的操作。一切的變量一定要“先定義、后運用:Int a,b,c; /*指定a,b,c為整型變量*/float x,y; /*指定x,y為單精度實型變量*/double z; /*指定z為雙精度實型變量*/char c1,c2; /*指定c1,c2為字符型變量*/變量的內(nèi)存存儲情況 Variable Range常量 Constant常量:1.整型常量2.實型常量3.字符型常量4.字符串常量5.符號常量6.flash常量整型常量三種方式表示:十進制:如 123 60 0八進制:以0開場,如 0123十六進制:以0 x開場,如
15、0 x123實型常量小數(shù)方式: 如 123.0 .123 0.0 12.5指數(shù)方式:如123e2 123E2字符常量:單引號括起來的一個字符。如: a 字符常量的值是一個數(shù)字值。如字符常量 0 ,其ASCII為48,所以存儲的實踐值為48。字符常量可以象整數(shù)一樣參與運算。字符串常量:雙引號括起來的字符序列。 如“Hi,AVR,0等字符串在存儲時末尾被自動加上 字符0字符常量與只包含一個字符的字 符串常量的區(qū)別符號常量:用一個標識符代表一個常量#define PI 3.14159符號常量本義字符:本義字符功能 ASCII記號 本義字符 功 能 ASCII記號 a 響鈴 BEL 反斜杠字? b 退
16、格 BS 單引號字符 f 走紙換頁 FF “雙引號字符 n 換行 NL ? 問號 ? r 回車 CR ooo13位8進制數(shù) ooo t 橫向跳格 HT xhh12位16進制數(shù) hh v 縱向跳格 VTFLASH常量:存儲在程序存儲區(qū)的常量Flash charhi,avr;算術(shù)運算符 Arithmetic OperationC言語提供了如下算術(shù)運算符:加法運算 減法運算 *乘法運算符除法運算符% 求余運算符,或稱模運算符如: 4 % 20闡明:兩個整數(shù)相除結(jié)果為整數(shù),如8/5的結(jié)果為1,舍去小數(shù)部分。假設(shè)參與運算的兩個數(shù)中有一個數(shù)為實數(shù),那么結(jié)果是實型。求余運算要求%兩側(cè)都是整型數(shù)據(jù)。賦值運算符
17、和賦值表達式Evaluation Operation & Evaluation Express簡單的賦值運算符:復(fù)合的賦值運算符=+ =、-=、*=、%=、/= i + = 2 等價于 i = i + 2 a * = b + 5 等價于 a = a * (b + 5) x% = 3 等價于 x = x%3void main(void) / Port A initialization. DDRA=0 xFF; PORTA=0 xFF; . while (1) / Place your code here PORTA=0 xFF; delay_ms(100); PORTA=0 x00; delay
18、_ms(100); ; C程序的三種根本構(gòu)造 C程序采用構(gòu)造化的程序設(shè)計方法,程序由假設(shè)干個根本構(gòu)造組成。每一個根本構(gòu)造可以包含一個或假設(shè)干個語句。主要有三種構(gòu)造:順序構(gòu)造:程序按照語句順序進展執(zhí)行。循環(huán)構(gòu)造:當型循環(huán)構(gòu)造:“先判別,再操作直到型循環(huán)構(gòu)造:“先操作,再判別選擇分支構(gòu)造:while語句訓(xùn)練Cycle Structure Programmingwhile語句用來實現(xiàn)“當型循環(huán),執(zhí)行過程:首先判別表達式, 當表達式的值為真非0時,反復(fù)執(zhí)行循環(huán)體。為假0時執(zhí)行循環(huán)體外面的語句。循環(huán)體循環(huán)繼續(xù)的條件表達式下一條語句非0真0假循環(huán)體語句組while執(zhí)行過程格式:while循環(huán)繼續(xù)的條件表達式 語句組; 花括號不能丟掉!請問:下述程序?qū)崿F(xiàn)了什么功能?main( ) int i,sum=0; while(i=10) sum=sum+i; i+; do-while語句Cycle Structure Programmingdo-while語句用來實現(xiàn)“直到型循環(huán)執(zhí)行過程:先無條件執(zhí)行一次循環(huán)體,然后判別條件表達式,當表達式的值為真非0時,前往執(zhí)行循環(huán)體直到條件表達式為假0為止。絕對不能少分號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技教育在課堂中的有效運用計劃
- 社區(qū)團結(jié)互助的活動示范計劃
- 《大方縣宏能能源開發(fā)有限公司貴州省大方縣金沙煤田巖腳-白花塔井田煤礦(新建)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 2025年美麗的大自然標準教案合集
- 規(guī)范化銷售培訓(xùn)
- 個人年終總結(jié)培訓(xùn)
- 透析患者導(dǎo)管感染護理
- Unit 5 Lesson 28 The Study of Living Things2024-2025學(xué)年九年級英語上冊同步教學(xué)設(shè)計(冀教版)河北專版
- 2025年安徽貨運從業(yè)資格證考試500題題庫
- 高中數(shù)學(xué) 第一章 空間幾何體 1.2 空間幾何體的三視圖和直觀圖 1.2.3 空間幾何體的直觀圖教學(xué)實錄 新人教A版必修2
- 運動損傷的預(yù)防與處理預(yù)防和處理舞蹈運動損傷
- 物流無人機項目企業(yè)運營實施方案
- 家鄉(xiāng)二聲部合唱譜
- 某住宅樓招投標文件
- 成語故事-引狼入室
- 售后工程師的數(shù)據(jù)分析能力
- 涉網(wǎng)試驗培訓(xùn)課件
- 典當行行業(yè)報告
- 經(jīng)典成語故事葉公好龍
- 綠色金融案例分析實證分析報告
- 實驗室擴項方案
評論
0/150
提交評論