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