在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ATmega128單片機的USART接口程序的開發

牽手一起夢 ? 來源:電子工程網 ? 作者:佚名 ? 2020-10-04 17:49 ? 次閱讀

一般教科書上提供的UART收發的程序往往是一段采用輪循(Polling)方式完成收發的簡單代碼。但對于高速的AVR來講,采用這種方式大大降低了 MUC的效率。在使用AVR時,應根據芯片本身的特點(片內大容量數據存儲器RAM,更適合采用高級語言編寫系統程序),編寫高效可靠的UART收發接口(低層)程序。下面是一個典型的ATmega128的軟件USART的接口程序。

基于ATmega128單片機的USART接口程序的開發

// USART0 initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART0 Receiver: On

// USART0 Transmitter: On

// USART0 Mode: Asynchronous

// USART0 Baud rate: 9600

UCSR0A=0x00;

UCSR0B=0xD8;

UCSR0C=0x06;

UBRR0H=0x00;

UBRR0L=0x67;

// Global enable interrupts

#asm(“sei”)

while (1)

{

// Place your code here

};

}

這段由CVAVR程序生成器產生的UART接口代碼是一個非常好的、高效可靠,并且值得認真學習和體會的。其特點如下:

1. 它采用兩個8字節的接收和發送緩沖器來提高MCU的效率,如當主程序調用Putchar()發送數據時,如果UART口不空閑,就將數據放入發送緩沖器中,MCU不必等待,可以繼續執行其它的工作。而UART的硬件發送完一個數據后,產生中斷,由中斷服務程序負責將發送緩沖器中數據依次送出。

2.數據緩沖器結構是一個線性的循環隊列,由讀、寫和隊列計數器3個指針控制,用于判斷隊列是否空、溢出,以及當前數據在隊列中的位置。

3. 用編譯控制命令#pragma savereg-和#pragma savereg+,使得由CVAVR在生成的中斷服務程序中不進行中斷保護(CVAVR生成中斷保護會將比較多的寄存器壓入堆棧中),而在中斷中嵌入匯編,只將5個在本中斷中必須要保護的寄存器壓棧。這樣提高了UART中斷處理的速度,也意味著提高了MCU的效率。

4.由于在接口程序Putchar()、Getchar()和中斷服務程序中都要對數據緩沖器的讀、寫和隊列計數器3個指針判斷和操作,為了防止沖突,在Putchar()、Getchar()中對3個指針操作時臨時將中斷關閉,提高了程序的可靠性。

建議讀者能逐字逐句地仔細分析該段代碼,真正理解和領會每一句語句(包括編譯控制命令的作用)的作用,從中體會和學習如何編寫效率高,可靠性好,結構優良的系統代碼。這段程序使用的方法和技巧,對編寫SPI、I2C的串行通信接口程序都是非常好的借鑒。

作為現在的單片機嵌入式系統工程師,不僅要深入全面的掌握芯片和各種器件的性能,具備豐富的硬件設計能力;同時也必須提高軟件的設計能力。要學習和掌握有關數據結構、操作系統、軟件工程、網絡協議等方面的知識,具有設計編寫大的復雜系統程序的能力。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6063

    文章

    44930

    瀏覽量

    647305
  • 程序
    +關注

    關注

    117

    文章

    3824

    瀏覽量

    82469
  • USART
    +關注

    關注

    1

    文章

    200

    瀏覽量

    31645
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于ATMEGA128單片機的程控濾波器

    基于ATMEGA128單片機的程控濾波器
    發表于 08-06 10:46

    ATmega128單片機入門與提高》光盤.rar

    大量的實用程序,并在最后一章給出了許多綜合實例;實例程序全部用C語言編寫,且已全部在ICCAVR 6.31A開發環境上編譯通過。《Atmega128
    發表于 08-16 10:36

    基于ATMEGA128單片機的程控濾波器

    基于ATMEGA128單片機的程控濾波器
    發表于 08-17 23:50

    ATmega128單片機怎么學

    我是學習計算機科學與技術的,現在想做游歷機器人。剛接觸ATmega128單片機,該怎么學?自己以前也沒學過單片機啊,連51都不懂。該怎么學?懇求大師指點
    發表于 10-13 15:26

    采用ATMEGA128單片機結合CPLD 實現了對VGA顯示

    采用ATMEGA128 單片機結合CPLD 實現了對VGA 顯示器和激光打印機的控制作者:時永樂 王培勇 轉貼自:微計算機信息摘要:用 ATMEGA128 單片機結合CPLD 實現了對
    發表于 02-08 09:52 ?107次下載

    ATmega128開發應用中應注意的問題

    ATmega128開發應用中應注意的問題 ATmega128是AVR系列中功能最強的單片機,具有如下主要特點:   (1)先進的RISC精簡指令集結構:
    發表于 10-26 09:06 ?3240次閱讀

    ATmega128幾個常用程序例子

    ATmega128單片機經典例題 對初學者很有幫助的哦
    發表于 11-03 18:14 ?64次下載

    AVR單片機Atmega128在FPGA配置中的運用

    在嵌入式系統設計中,掌握MCU對FPGA的配置,對系統的設計是十分必要的。根據EPFIOKIO的配置時序和AVR單片機Atmega128接口特點,詳細介紹了Atmega128對EPF
    發表于 10-11 15:35 ?18次下載

    基于Atmega128單片機SD卡讀寫程序(免費分享)

    avr Atmega128單片機SD卡讀寫程序
    發表于 12-29 20:55 ?21次下載

    基于ATmega128單片機的汽車太陽能充電控制器_秦俊

    基于ATmega128單片機的汽車太陽能充電控制器_秦俊
    發表于 03-19 11:33 ?6次下載

    ATmega128單片機的內部資源、工作原理和硬件電路設計的資料免費下載

    在本系統中,本小節主要講 ATmega128 單片機的內部資源、工作原理和硬件電路設計等。2.5.1 ATmega128 芯片介紹 ATmega128 為基于AVR RISC 結構的8
    發表于 09-21 15:50 ?104次下載
    <b class='flag-5'>ATmega128</b><b class='flag-5'>單片機</b>的內部資源、工作原理和硬件電路設計的資料免費下載

    AVR單片機Atmega128在FPGA配置的應用和對EPF10K10軟硬件設計原理

    在嵌入式系統設計中,掌握MCU對FPGA的配置,對系統的設計是十分必要的。根據EPF10K10的配置時序和AVR單片機Atmega128接口特點,詳細介紹了Atmega128對EPF
    發表于 10-26 15:34 ?9次下載
    AVR<b class='flag-5'>單片機</b><b class='flag-5'>Atmega128</b>在FPGA配置的應用和對EPF10K10軟硬件設計原理

    使用ATmega128單片機設計數碼管秒表的程序和工程文件免費下載

    本文檔的主要內容詳細介紹的是使用ATmega128單片機設計數碼管秒表的程序和工程文件免費下載。
    發表于 07-31 08:00 ?4次下載
    使用<b class='flag-5'>ATmega128</b><b class='flag-5'>單片機</b>設計數碼管秒表的<b class='flag-5'>程序</b>和工程文件免費下載

    DAC1230與單片機Atmega128接口技術

    DAC1230與單片機Atmega128接口技術(開關電源技術課程設計報告)-文檔為DAC1230與單片機Atmega128
    發表于 09-17 15:45 ?5次下載
    DAC1230與<b class='flag-5'>單片機</b><b class='flag-5'>Atmega128</b>的<b class='flag-5'>接口</b>技術

    ATmega128單片機](熔絲修改后無法燒錄程序情況)

    @ATmega128單片機,AVR,ATmega128單片機](熔絲修改后無法燒錄程序情況)本人是AVR
    發表于 11-15 09:36 ?26次下載
    <b class='flag-5'>ATmega128</b><b class='flag-5'>單片機</b>](熔絲修改后無法燒錄<b class='flag-5'>程序</b>情況)
    主站蜘蛛池模板: 啪啪免费网站视频观看 | 明日花绮罗snis-862在线播放 | 4438全国最大成人免费高清 | 国产精品免费视频拍拍拍 | 色视频免费观看高清完整 | 狠狠操亚洲 | 亚洲福利视频一区 | 毛片视频网址 | 男人边吃奶边做视频免费网站 | 手机福利片 | 黄色福利小视频 | 欧洲成人r片在线观看 | 视频二区在线观看 | 毛片一区二区三区 | 亚洲精品资源在线 | 99久久国产免费中文无字幕 | 国产农村一一级特黄毛片 | 天天擦天天干 | 亚洲成在人线中文字幕 | 97久久草草超级碰碰碰 | 黄色毛片播放 | 欧美色图色就是色 | 诱人的老师bd高清日本在线观看 | 性欧美videofree另类超大 | 96福利视频 | 国产精品波多野结衣 | 欧美乱论视频 | 欧美日本一区二区三区道 | 天堂网 | 日本三黄色大 | 视频在线观看免费 | 日本三级在线观看免费 | 久久午夜国产片 | 久久天天躁狠狠躁夜夜躁 | 又污又黄的网站 | 国产色啪午夜免费视频 | 天天躁天天狠天天透 | 精品一区二区三区三区 | 91伊人网| 四虎成人免费观看在线网址 | 国语一级毛片私人影院 |