電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>可編程邏輯>AVR C語(yǔ)言開(kāi)發(fā)難不難?資料下載

AVR C語(yǔ)言開(kāi)發(fā)難不難?資料下載

2021-04-17 | pdf | 208.31KB | 次下載 | 2積分

資料介紹

Avr單片機(jī)和其他單片機(jī)一樣,有自己的指令和寄存器,特定的IO口操作方法,有定時(shí)器,AD轉(zhuǎn)換,串行口,PWM輸出,EEPROM等。為了縮短大家學(xué)習(xí)的時(shí)間,快速的了解avr編程思路,擬定avr程序設(shè)計(jì)系列教程。我使用avr也不是很長(zhǎng)時(shí)間,技術(shù)有限,錯(cuò)誤再所難免,還請(qǐng)指出,以期改正。 【說(shuō)明】:本頁(yè)是針對(duì)從來(lái)沒(méi)有碰過(guò)單片機(jī)或者用過(guò)單片機(jī)而沒(méi)有用c語(yǔ)言的朋友,如果你已經(jīng)用過(guò)其他單片機(jī),此頁(yè)說(shuō)明可能對(duì)你沒(méi)有很大幫助,且顯得有些幼稚,請(qǐng)你跳過(guò)。 本站所有程序都是在icc+avrstudio下進(jìn)行的,如果你沒(méi)有配置好環(huán)境 采用icc的原因之一是它自帶一個(gè)非常好用的application builder,生成的代碼結(jié)構(gòu)清晰,層次清楚,特別適合新手,如下圖。 非常好用的 icc application builder 下面通過(guò)一個(gè)簡(jiǎn)單的程序,分析avr程序要素,使用icc的程序生成器,Application Builder 界面如下: icc的程序生成器 進(jìn)入該界面后,我更改設(shè)置,Target CPU,及目標(biāo)芯片設(shè)置位mega16這個(gè)非常常用的芯片,Xtal speed 及晶振頻率,我選了我用的7.3728MHz。 下面我們來(lái)看看我們得到的代碼?!菊f(shuō)明】:“#”只是為了方便解釋代碼,并非為程序內(nèi)容。 #1 //ICC-AVR application builder : 2006-11-3 14:42:54 #2 // Target : M16 #3 // Crystal: 7.3728Mhz #4 #include #5 #include #6 void port_init(void) #7 { #8 PORTA = 0x00; #9 DDRA = 0x00; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; #10 } #11 //call this routine to initialize all peripherals #12 void init_devices(void) #13 { #14 //stop errant interrupts until set up #15 CLI(); //disable all interrupts #16 port_init(); #17 MCUCR = 0x00; #18 GICR = 0x00; #19 TIMSK = 0x00; //timer interrupt sources #20 SEI(); //re-enable interrupts #21 //all peripherals are now initialized #13 } #1——#3,注釋行,分別說(shuō)明了程序生成者是ICC-AVR application builder,生成時(shí)間,CPU類(lèi)型,晶振大小,在本例中晶振大小沒(méi)有用途,但在實(shí)際操作中,晶振大小將影響定時(shí)器的設(shè)置,PWM波形的輸出,串口波特率的設(shè)定,總線時(shí)序等多方面的問(wèn)題。 #4——#5,包含特定頭文件,學(xué)過(guò)c語(yǔ)言的人都知道,c語(yǔ)言里幾乎每個(gè)程序都要包含特定的頭文件,在這里,iom16v.h和macros.h都在icc程序安裝文件夾下一個(gè)include的目錄中,iom16v.h和你選擇的芯片相對(duì)應(yīng),如果你選擇的是atmega32,那個(gè)這個(gè)文件就是iom32v.h,等等,在這樣的文件中定義了對(duì)應(yīng)的芯片的各個(gè)硬件地址。macros.h文件中定義了一些宏命令和一些老的語(yǔ)言寫(xiě)法。通常每一個(gè)程序都要包含這個(gè)頭文件。 #6 void port_init(void),定義函數(shù)port_init,函數(shù)的用途是初始化串口,前面一個(gè)void表示函數(shù)沒(méi)有輸出,括號(hào)里的void表示這個(gè)函數(shù)沒(méi)有輸入變量。 #7,#10 C語(yǔ)言中所有函數(shù)體都要寫(xiě)在{}內(nèi),一個(gè)開(kāi)始,一個(gè)結(jié)束。 #8,定義PA口為0x00,及PA口上的所有管腳輸出為低電平,同樣道理,如果些微PORTA=0xFF,則都輸入高電平,0xFF及二進(jìn)制的11111111,如果想讓某一位輸出高,其他為低,如00000001,則是PA0輸出為高電平,PA1——PA7輸出為低電平。說(shuō)明:每個(gè)口線與單片機(jī)實(shí)際引腳的對(duì)應(yīng)關(guān)系請(qǐng)參看技術(shù)手冊(cè)。 #9,定義引腳的輸出輸入模式,1為輸出,0為輸入。當(dāng)使用輸出模式及設(shè)置為1時(shí),PORTA的值將影響內(nèi)部上拉電阻的使用,如果PORTA對(duì)應(yīng)管腳的值為1,則使用內(nèi)部上拉電阻,否則不采用。 除了這里說(shuō)的“=”之外,管腳的控制還有其他算符,|= ,&=! ,^=,==,請(qǐng)參考學(xué)習(xí)筆記:avr端口操作的例子理解,將在本頁(yè)后面部分說(shuō)明。 同理,下面部分為BCD口的操作。 #11,注釋?zhuān)f(shuō)明你可以使用下面的程序來(lái)實(shí)現(xiàn)初始化。 #13,程序的開(kāi)始和結(jié)束。 #15,內(nèi)部定義的宏,關(guān)閉所有中斷。 #16,調(diào)用端口初始化的程序。 #17,MCUCR = 0x00;電源管理及睡眠模式寄存器設(shè)置,這里設(shè)為0x00,為空閑模式,更多內(nèi)容,請(qǐng)參看atmega16技術(shù)手冊(cè)。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
  2. 24.30 MB   |  128次下載  |  1 積分
  3. 2雷達(dá)的基本分類(lèi)方法
  4. 1.25 MB   |  4次下載  |  4 積分
  5. 3電感技術(shù)講解
  6. 827.73 KB  |  2次下載  |  免費(fèi)
  7. 4從 MSP430? MCU 到 MSPM0 MCU 的遷移指南
  8. 1.17MB   |  2次下載  |  免費(fèi)
  9. 5有源低通濾波器設(shè)計(jì)應(yīng)用說(shuō)明
  10. 1.12MB   |  2次下載  |  免費(fèi)
  11. 6RA-Eco-RA2E1-48PIN-V1.0開(kāi)發(fā)板資料
  12. 35.59 MB  |  2次下載  |  免費(fèi)
  13. 7面向熱插拔應(yīng)用的 I2C 解決方案
  14. 685.57KB   |  1次下載  |  免費(fèi)
  15. 8愛(ài)普生有源晶體振蕩器SG3225EEN應(yīng)用于儲(chǔ)能NPC、新能源
  16. 317.46 KB  |  1次下載  |  免費(fèi)

本月

  1. 12024年工控與通信行業(yè)上游發(fā)展趨勢(shì)和熱點(diǎn)解讀
  2. 2.61 MB   |  763次下載  |  免費(fèi)
  3. 2HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
  4. 24.30 MB   |  128次下載  |  1 積分
  5. 3繼電保護(hù)原理
  6. 2.80 MB   |  36次下載  |  免費(fèi)
  7. 4正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
  8. 0.91 MB   |  32次下載  |  1 積分
  9. 5labview實(shí)現(xiàn)DBC在界面加載配置
  10. 0.57 MB   |  21次下載  |  5 積分
  11. 6在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
  12. 1.57MB   |  15次下載  |  免費(fèi)
  13. 7GBT 4706.1-2024家用和類(lèi)似用途電器的安全第1部分:通用要求
  14. 7.43 MB   |  14次下載  |  免費(fèi)
  15. 8H橋中的電流感測(cè)
  16. 545.39KB   |  7次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935113次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191360次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81578次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73804次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分