ATmega8寄存器资料整理

  • 格式:docx
  • 大小:32.23 KB
  • 文档页数:19

ATmega8寄存器资料整理

ATmega8各模塊及相關寄存器功能

ADC模塊

1.ADMUX--ADC多路選擇寄存器:

REFS1,REFS0: = 0,0 關閉內部的參考電壓

0,1 Avcc利用AREF腳的外接電容

1,0 保留

1,1 開啟內部的2.56V參考電壓, AREF腳外接電容.

ADLAR: = 1對ADC轉換結果進行左調節, = 0對ADC轉換結果進行右調節,詳見IC spec,我要ADLAR=0.

MUX3~0: =0000~0111分別選擇ADC0~ADC7作為輸入,

=1110 1.23V(VBG), =1111 0V(GND).

2.ADCSR--ADC控制和狀態寄存器

ADEN: ADC使能

ADSC: ADC工作于單次模式時,’ADSC=1’啟動一次轉換,轉換結束后ADSC由硬件清0.

ADC工作于連續模式時,’ADSC=1’啟動轉換,只需一次.

對該位寫0沒有意義.

注意:每一次對該位寫’1’都會有一次啞轉換.

ADFR: =1選擇ADC連續模式. =0則終止連續模式.

ADIF: ADC中斷標識位.執行中斷程序后由硬件清0,對該位寫’1’也可以將其清0

ADIE:ADC中斷使能.

ADPS2..ADPS0: =000~111時ADC的分頻系數分別為2,2,4,8,16,32,64,128

3. ADCH/ADCL:ADC結果數據寄存器,讀取時要先讀ADCL.

USART模塊

1.UDR--USART數據接收/發射寄存器.

2.UCSRA--USART控制和狀態寄存器A. RXC: 接收數據完成標識位, RXC在读UDR时自动被清除, 如果采用中断方式则中断例程必须读一次UDR.

TXC: 發送數據結束標識位, TXC 置位表示数据已经从发送移位寄存器发送出去且UDR 中没有新的要发送的数据,在半双工通信应用中,由于发送器在发送完数据之后要立即转换到接收模式,所以这个标志位特别有用.如果TXCIE 已置位则TXC 置位将引发发送结束中断,进入中断例程后TXC 自动清零,或者用户可以对其写1清零. UDRE: UART数据寄存器空

当数据从UDR 传送到发送移位寄存器后,UDRE 置位,表明发送器已经准备好接收新的要发送的数据.

当UDRIE 置位,则只要UDRE 为’1’, UART 发送结束中断就可以执行.写UDR 将复位UDRE. 如果利用中断方式发送数据,则在UART 数据寄存器空中断例程里必须写UDR 以清除UDRE, 否则中断将连续发生.

复位后UDRE 的初始值为’1’, 表明发送器就绪.

FE: 接收帧错误標識位,MCU 检测到帧错误如检测到停止位为0 时FE 置位,当检测到数据停止位为1 时FE 复位.

讀接收緩沖器清除該標識.

DOR: 數據過速標識位, 如果UDR 未读而新接收的数据又已进入移位寄存器,则OR 置位. 讀接收緩沖器清除該標識. PE: (?UPE)接收數據奇偶校驗錯誤標識位,讀接收緩沖器清除該標識.

U2X: 對異步通訊, U2X=1時波特率加倍.對同步通訊,該位無效,必須寫0.

MPCM: =1時為多處理器通訊模式,在該模式下,接收到的未包含地址的楨數據被忽略,不影響發送數據.

3.UCSRB-- USART控制和狀態寄存器B.

RXCIE: 接收結束中斷使能.

TXCIE: 發送結束中斷使能.

UDRIE: 數據寄存器空中斷使能.

RXEN: =1時接收使能.同時自動設置RXD引腳為接收腳.接收禁能將導致TXC/DOR/FE無法置位,同時也不能復位已經置位的標識位.

TXEN: =1時接收接收.同時自動設置TXD引腳為發送腳.

UCSZ2: 與UCSRC中的UCSZ1/UCSZ0位一起決定接收和發送數據的楨格式(8/9/10位)

RXB8/TXB8: 接收/發送數據的第9位.

4. UCSRC-- USART控制和狀態寄存器C.

(UCSRC與UBRRH共用一個IO地址)

URSEL: =1時讀/寫UCSRC寄存器,=0時讀/寫UBRRH寄存器.

UMSEL: =1選擇UART, =0選擇USART

UPM1..UPM0: =0, 0 禁止奇偶校驗,=0,1 保留, =1,0 使能偶校驗,

=1,1 使能奇校驗.

USBS: =0 發送1位停止位, =1 發送2位停止位. 該位的設置與接收無關.

UCSZ1..UCSZ0: 與UCSZ2一起決定數據楨的位數

UCSZ2..UCSZ0 = 0,0,0~0,1,1 分別為5/6/7/8位.

= 1,0,0~1,1,0 保留

= 1,1,1 9位

(復位后的缺省值為0,1,1即8位)

UCPOL: =0 在時鐘脈沖的上升沿發送一位數據,下降沿接收一位數據. =1則反之.

5.UBRRH/UBRRL: UBRRH的低4位和UBRRL組成12位波特率寄存器.(見IC spec.)

WDT模塊

1.WDTCR—看門狗定時器控制寄存器

WDCE: 看門狗關閉使能.

WDE: =1使能看門狗.

關閉看門狗的步驟為: 1. 在同一个指令内对WDCE 和WDE 写逻辑1,即使WDE 已经为1

2. 在4 个时钟之内对WDE 写逻辑0

WDP2..WDP0: 選擇WDT的溢出時間. TWI模塊

1.TWBR—TWI位傳輸率寄存器.

SCL頻率=CPU時鐘/(16+2*TWBR*4TWPS)

主機模式下要求TWBR>10.

2.TWCR—TWI控制寄存器

TWINT: TWI中斷標識位

該位必須由軟件清0.另外清0該位時會啟動TWI,因此清0該位之前需先設置好TWAR/TWSR/TWDR TWEA: TWI應答信號時能.

TWSTA: TWI啟動條件位. 該位置’1’時向總線發送一個啟動信號,然后該位要用軟件清0.

TWSTO: TWI停止條件位. 該位置’1’時向總線發送一個停止信號,然后該位自動清0.

TWWC: TWI寫沖突標識位. 當TWIBT=0時寫TWDR,該位置位;

當TWIBT=1時寫TWDR,該位清0. TWEN: TWI使能位. 只要將該位置’1’,TWI就對SDA和SCL腳具有控制權.

TWIE: TWI中斷使能.

3.TWSR—TWI狀態寄存器.

TWS7..TWS3: 指示TWI的狀態.

TWPS1..TWPS0: 位傳輸速率的預分頻值. =0,0~1,1對應的預分頻值分別為1,4,16,64

4.TWDR-- TWI數據寄存器.

5.TWAR: TWI(slave) 地址寄存器.

TWA6..TWA0: TWI(slave) 地址

TWGCE: TWI通用呼叫識別使能位.

T0模塊

1.TIMSK—T/C中斷屏蔽寄存器

TOIE0: T/C0溢出中斷使能.

2.TIFR—T/C中斷標識寄存器.

TOV0: T/C0溢出中斷標識位.

3.TCCR0--T/C控制寄存器. CS02…CS00: = 0,0,0 T/C停止.

=0,0,1~1,0,1 時鐘分別為I/O時鐘, I/O時鐘/8, I/O時鐘/64, I/O時鐘/256, I/O時鐘/1024,

=1,1,0 T0腳的時鐘,下降沿

=1,1,1 T0腳的時鐘,上升沿

4.TCNT0—T/C計數寄存器.

T1模塊

1. TIMSK—T/C中斷屏蔽寄存器

TICIE1: T/C1輸入捕獲中斷使能.

OCIE1A: T/C1輸出比較匹配A中斷使能.

OCIE1B: T/C1輸出比較匹配B中斷使能.

TOIE1: T/C1溢出中斷使能.

2.TIFR—T/C中斷標識寄存器.

ICF1: T/C1輸入捕獲中斷標識位.

OCF1A: T/C1輸出比較匹配A中斷標識位.

OCF1B: T/C1輸出比較匹配B中斷標識位.

TOV1: T/C1溢出中斷標識位.

3.TCCR1A—T/C1控制寄存器A.

/doc/4b8ab1dbce2f0066f533228e.html

1A0(/doc/4b8ab1dbce2f0066f533228e.html

1B0): 决定T/C1 的比较匹配发生时输出引脚OC1A(OC1B)的动作,對I/O口的控制權最高,相应的方向控制位要设置为1, 以便将其配置为输出.

WGM13..0=正常模式或CTC模式時:

/doc/4b8ab1dbce2f0066f533228e.html

1A0(/doc/4b8ab1dbce2f0066f533228e.html

1B0): =0,0 T/C1與输出引脚OC1A(OC1B)斷開

=0,1 比较匹配发生时OC1A(OC1B) 輸出反相.

=1,0 比较匹配发生时OC1A(OC1B)=0; OC1A(OC1B)=1 at TOP

=1,1 比较匹配发生时OC1A(OC1B)=1; OC1A(OC1B)=0 at TOP WGM13..0=快速PWM模式時:

/doc/4b8ab1dbce2f0066f533228e.html

1A0(/doc/4b8ab1dbce2f0066f533228e.html

1B0): =0,0 T/C1與输出引脚OC1A(OC1B)斷開

=0,1 WGM13..0=15: 比较匹配发生时OC1A/OC1B反相輸出.

OC1B斷開

=1,0 比较匹配发生时OC1A(OC1B)=0; OC1A(OC1B)=1 at TOP

=1,1 比较匹配发生时OC1A(OC1B)=1; OC1A(OC1B)=0 at TOP

WGM13..0=相位校正模式/相頻校正模式或PWM模式時:

/doc/4b8ab1dbce2f0066f533228e.html

1A0(/doc/4b8ab1dbce2f0066f533228e.html

1B0): =0,0 T/C1與输出引脚OC1A(OC1B)斷開

=0,1 WGM13..0=15: 比较匹配发生时OC1A/OC1B反相輸出.

OC1B斷開

=1,0 比较匹配发生时,若是向上計數OC1A(OC1B)=0; 若是向下計數則

OC1A(OC1B)=1

=1,1 比较匹配发生时,若是向上計數OC1A(OC1B)=1; 若是向下計數則

OC1A(OC1B)=0

FOS1A/FOC1B: 写’1’ 后按照COM1A0/1 的设置在引脚PD5

强迫产生一次比较匹配输出,如果COM的值与FOC 的值在同一写入周期更新,本次功能将被忽略.强迫输出比较功能使得MCU可以不用等待比较匹配的发生

就变换引脚的输出,由FOC 置位产生的比较匹配不会引发中断,也不会清除TCNT1. 读FOC 的返回值总

为零,在PWM 模式下FOC 没有意義.

WGM11/WGM10: 與TCCR1B中的WGM13/WGM12位決定波形產生模式

Mode WGM13..WGM10 Timer/Counter Mode TOP Update