久久久久久久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


 

關閉窗口

相關文章

主站蜘蛛池模板: 中文字幕在线播放第一页 | 久久国产精品色av免费观看 | 久久久久免费精品国产 | 找个黄色片 | 99久久精品国产一区二区三区 | 精品视频在线免费观看 | 久久一 | 黄色大片免费网站 | 91精品午夜窝窝看片 | 国产精品久久久久久婷婷天堂 | 日韩中文在线观看 | 日韩在线免费看 | 亚洲欧美日韩精品久久亚洲区 | 欧美国产日韩精品 | 欧美一区二区三区国产精品 | 一区二区免费在线视频 | 91九色视频 | 区一区二在线观看 | 欧美一级片在线观看 | 中文字幕日韩一区 | 一区免费| 日韩中文字幕在线观看 | 五月婷婷激情 | 欧美日韩淫片 | 日韩中文字幕在线 | 一区欧美 | h视频在线免费 | 欧美在线a | 国产美女特级嫩嫩嫩bbb片 | 亚洲综合无码一区二区 | 中文字幕一级毛片 | h片在线看 | 日韩在线中文字幕 | 日本久久黄色 | caoporn国产精品免费公开 | 99久久精品免费看国产四区 | 日韩精品免费视频 | 亚洲美乳中文字幕 | 五月婷婷婷 | 99在线资源 | 欧美一区二区大片 |