久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

AVR單片機I/O寄存器的C語言源程序及剖析詳解

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年04月09日   【字體:

I/O寄存器的C語言源程序及剖析

  在ICCAVR中訪問0x00~0x3f的寄存器空間,可以使用內匯編和預處理宏。一個數據內存地址可以通過加指針類型符號直接訪問。

例如,SREG寄存器的地址是0x5f,對它的訪問操作:

  unsigned char c;

  c=*(volatile unsigned char *)0x5f;//讀取SREG寄存器

  *(volatile unsigned char *)0x5f|=0x80;//打開全局中斷允許位

 提示:數據內存地址0x00~0x31指向CPU通用寄存器R0~R31,不能隨意修改它們的地址(或者輸入錯誤的地址),否則可能會造成致命的錯誤。

  ICCAVR C在io*v.h文件中用define偽指令給大部分的寄存器定義了指針形式符號,如定義SREG:#define SREG *(volatile unsigned char *)0x5f

上面對SREG的操作也可以改為:

  unsigned char c;

   c=SREG;//讀取SREG寄存器

   SREG|=0X80;//打開全局中斷允許位

說明:

   1.在ICCAVR中對I/O寄存器進行操作,編譯器自動生成用于訪問I/O寄存器的專用指令,如IN、OUT、BSET、BCLR等,而且已將地址0X5F變換為0x3f。

   2.#define語句也可以定義絕對內存空間,用以指向一個固定地址的字節,如:#define LED_OUT *(volatile unsigned char *)0x80aa


 

關閉窗口

相關文章

主站蜘蛛池模板: 香蕉视频网站 | 久久99精品久久久久久琪琪 | 国产盗摄一区二区 | 国产aaaaaa| av免费观看网站 | 五月婷婷网 | 亚洲天堂欧美 | 91久久精品日日躁夜夜躁欧美 | 久久久久久网 | 91av在线看| 天堂网在线资源 | 久久久久久久国产精品 | 欧美性猛交xxxx | 金银在线 | 超碰中文字幕 | 欧美久久一区二区 | www.少妇 | 日韩欧美自拍 | 欧美二区三区 | 福利视频网址 | av噜噜噜 | 日韩视频网| 亚洲国产中文字幕 | 国产黄色免费视频 | 亚洲一级特黄 | 国产草草 | 日韩国产一区二区三区 | 亚洲国产二区 | 免费网站av | 中文在线字幕观看 | 一级免费毛片 | 久草福利在线视频 | 成人欧美视频 | 一级片欧美 | 日韩成人精品一区二区 | 国产成人精品免费视频 | 香蕉视频一区二区 | 午夜激情视频在线观看 | 国产精品第一 | 黄色大片在线 | 天天干天天操天天射 |