⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iom48v.h

📁 该代码为基于AVR单片机的时间调度软件开发模板
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __iom48v_h
#define __iom48v_h

/* ATmega48 header file for
 * ImageCraft ICCAVR compiler
 */

/* i/o register addresses
 * >= 0x60 are memory mapped only
 */

/* sorted by function rather than by address
 */

/* last changed 2004/01/09
 */

/* Port D */
#define PIND	(*(volatile unsigned char *)0x29)
#define DDRD	(*(volatile unsigned char *)0x2A)
#define PORTD	(*(volatile unsigned char *)0x2B)

/* Port C */
#define PINC	(*(volatile unsigned char *)0x26)
#define DDRC	(*(volatile unsigned char *)0x27)
#define PORTC	(*(volatile unsigned char *)0x28)

/* Port B */
#define PINB	(*(volatile unsigned char *)0x23)/*直接端*/
#define DDRB	(*(volatile unsigned char *)0x24)/*方向*/
#define PORTB	(*(volatile unsigned char *)0x25)/*端口数据*/

/* External Interrupts */
#define EIFR	(*(volatile unsigned char *)0x3C)
#define  INTF1    1
#define  INTF0    0
#define EIMSK	(*(volatile unsigned char *)0x3D)
#define  INT1     1
#define  INT0     0

/* GPIO */
#define GPIOR2	(*(volatile unsigned char *)0x4B)
#define GPIOR1	(*(volatile unsigned char *)0x4A)
#define GPIOR0	(*(volatile unsigned char *)0x3E)


/* ADC */
#define ADC 	(*(volatile unsigned int *)0x78) /* m/m */
#define ADCL	(*(volatile unsigned char *)0x78) /* m/m ADC采样结果低部分*/
#define ADCH	(*(volatile unsigned char *)0x79) /* m/m ADC采样结果高部分*/
#define ADCSRB	(*(volatile unsigned char *)0x7B) /* m/m */
#define  ACME     6
#define  ADTS2    2
#define  ADTS1    1
#define  ADTS0    0
#define ADCSRA	(*(volatile unsigned char *)0x7A) /* m/m 控制及状态寄存器*/

#define  ADEN     7		/*ADC允许*/

#define  ADSC     6		/*ADC开始*/
#define  ADRF     5		/*自动开始*/
#define  ADATE    5		

#define  ADIF     4			/*中断标志*/

#define  ADIE     3			/*中断允许*/
#define  ADPS2    2
#define  ADPS1    1
#define  ADPS0    0
/*
时钟分频选择
*/

#define ADMUX	(*(volatile unsigned char *)0x7C) /* m/m 多路复用选择寄器*/
#define  REFS1	7		/*电压基准源选择*/
#define  REFS0	6		/*电压基准源选择*/
/*
00:	AREF	输入,内部关闭;
01:	AVCC	输入,AREF加滤波;
10:
11:	1.1V		输入,AREF加滤波;
*/
#define  ADLAR	5		/*数据左对齐选择位*/
#define  MUX3	3		/**/
#define  MUX2	2		/**/
#define  MUX1	1		/**/
#define  MUX0	0		/**/
/*
MUX0:3:	摸拟通道选择
000-0111:	ADC0-ADC7;
100-1101:	保留
1110:		1.1V;
1111:		0V;
*/

/* Analog Comparator Control and Status Register */
#define ACSR	(*(volatile unsigned char *)0x50)
#define  ACD      7
#define  ACBG     6
#define  ACO      5
#define  ACI      4
#define  ACIE     3
#define  ACIC     2
#define  ACIS1    1
#define  ACIS0    0


/* USART0 */
#define UBRR0H	(*(volatile unsigned char *)0xC5) /* m/m 波特率设制*/
#define UBRR0L	(*(volatile unsigned char *)0xC4) /* m/m 波特率设制*/
#define UBRR0	(*(volatile unsigned int *)0xC4) /* m/m */
#define UCSR0C	(*(volatile unsigned char *)0xC2) /* m/m */
#define  UMSEL01	7	/*模式*/
#define  UMSEL00	6	/*模式*/
#define  UPM01	5	/*校验*/
#define  UPM00	4	/*校验*/
#define  USBS0	3	/*停止位的位数*/
#define  UCSZ01	2	/*字符长度*/
#define  UDORD0	2	/**/
#define  UCSZ00	1	/*字符长度*/
#define  UCPHA0	1	/**/
#define  UCPOL0	0	/*同步时的时钟极性*/
#define UCSR0B	(*(volatile unsigned char *)0xC1) /* m/m */
#define  RXCIE0	7	/*接收中断允许*/
#define  TXCIE0	6	/*发送中断允许*/
#define  UDRIE0	5	/*空中断允许*/
#define  RXEN0	4	/*接收允许*/
#define  TXEN0	3	/*发送允许*/
#define  UCSZ02	2	/*数字位数*/
#define  RXB80	1	/*第9位*/
#define  TXB80	0	/*第9位*/
#define UCSR0A	(*(volatile unsigned char *)0xC0) /* m/m 控制和状态寄存器*/
#define  RXC0	7	/*接收结束标志*/
#define  TXC0	6	/*发送结束标志*/
#define  UDRE0	5	/*数字空标志*/
#define  FE0		4	/*帧错误*/
#define  DOR0	3	/*数字溢出错误*/
#define  UPE0	2	/*奇偶错误*/
#define  U2X0	1	/*串口倍速*/
#define  MPCM0	0	/*接收地址分析*/
#define UDR0	(*(volatile unsigned char *)0xC6) /* m/m 相当于SBUF*/


/* 2-wire SI */
#define TWBR	(*(volatile unsigned char *)0xB8) /* m/m */
#define TWSR	(*(volatile unsigned char *)0xB9) /* m/m */
#define  TWS7     7
#define  TWS6     6
#define  TWS5     5
#define  TWS4     4
#define  TWS3     3
#define  TWPS1    1
#define  TWPS0    0
#define TWAR	(*(volatile unsigned char *)0xBA) /* m/m */
#define  TWGCE    0
#define TWDR	(*(volatile unsigned char *)0xBB) /* m/m */
#define TWCR	(*(volatile unsigned char *)0xBC) /* m/m */
#define  TWINT    7
#define  TWEA     6
#define  TWSTA    5
#define  TWSTO    4
#define  TWWC     3
#define  TWEN     2
#define  TWIE     0
#define TWAMR	(*(volatile unsigned char *)0xBD) /* m/m */
#define  TWAM6    7
#define  TWAM5    6
#define  TWAM4    5
#define  TWAM3    4
#define  TWAM2    3
#define  TWAM1    2
#define  TWAM0    1


/* SPI */
#define SPCR	(*(volatile unsigned char *)0x4C)
#define  SPIE     7
#define  SPE      6
#define  DORD     5
#define  MSTR     4
#define  CPOL     3
#define  CPHA     2
#define  SPR1     1
#define  SPR0     0
#define SPSR	(*(volatile unsigned char *)0x4D)
#define  SPIF     7
#define  WCOL     6
#define  SPI2X    0
#define SPDR	(*(volatile unsigned char *)0x4E)


/* EEPROM */
#define EECR	(*(volatile unsigned char *)0x3F)
#define  EEPM1    5
#define  EEPM0    4
#define  EERIE    3
#define  EEMWE    2
#define  EEMPE    2
#define  EEWE     1
#define  EEPE     1
#define  EERE     0
#define EEDR	(*(volatile unsigned char *)0x40)
#define EEAR	(*(volatile unsigned int *)0x41)
#define EEARL	(*(volatile unsigned char *)0x41)
#define EEARH	(*(volatile unsigned char *)0x42)
/* high byte unused with m48, must be written 0 */


/* MONDR */
#define MONDR	(*(volatile unsigned char *)0x51)

/* MCU */
#define MCUSR	(*(volatile unsigned char *)0x54)
#define  WDRF     3
#define  BORF     2
#define  EXTRF    1
#define  PORF     0
#define MCUCR	(*(volatile unsigned char *)0x55)
#define  PUD      4
/* not on m48 */
/* #define  IVSEL    1 */
/* #define  IVCE     0 */

/* SPM Control and Status Register */
#define SPMCSR	(*(volatile unsigned char *)0x57)
#define  SPMIE    7
#define  RWWSB    6
#define  RWWSRE   4
#define  BLBSET   3
#define  PGWRT    2
#define  PGERS    1
#define  SPMEN    0
#define  SELFPRGEN 0

/* SMCR */
#define SMCR	(*(volatile unsigned char *)0x53)
#define  SM2      3
#define  SM1      2
#define  SM0      1
#define  SE       0

/* Stack Pointer */
#define SP  	(*(volatile unsigned int *)0x5D)
#define SPL 	(*(volatile unsigned char *)0x5D)
#define SPH 	(*(volatile unsigned char *)0x5E)

/* Status REGister */
#define SREG	(*(volatile unsigned char *)0x5F)

/* Watchdog Timer Control Register */
#define WDTCSR	(*(volatile unsigned char *)0x60) /* m/m */
#define  WDIF     7
#define  WDIE     6
#define  WDP3     5
#define  WDCE	4	/*看门狗修改使能*/
#define  WDE		3	/*看门狗复位使能*/
#define  WDP2     2
#define  WDP1     1
#define  WDP0     0

/* CLKPR */
#define CLKPR	(*(volatile unsigned char *)0x61) /* m/m */
#define  CLKPCE   7
#define  CLKPS3   3
#define  CLKPS2   2
#define  CLKPS1   1
#define  CLKPS0   0

/* PRR */
#define PRR       (*(volatile unsigned char *)0x64) /* m/m */
#define	PRTWI    7
#define	PRTIM2   6
#define	PRTIM1   3
#define	PRTIM0   5
#define	PRSPI    2
#define	PRUSART0 1

#define	PRADC    0

/* OSCCAL */
#define OSCCAL    (*(volatile unsigned char *)0x66) /* m/m */


/* PCIFR */
#define PCIFR	(*(volatile unsigned char *)0x3B)
#define  PCIF2    2
#define  PCIF1    1
#define  PCIF0    0

/* PCICR */
#define PCICR	(*(volatile unsigned char *)0x68) /* m/m */
#define  PCIE2    2
#define  PCIE1    1
#define  PCIE0    0

/* PCMSK registers */
#define PCMSK2	(*(volatile unsigned char *)0x6D) /* m/m */
#define  PCINT23  7
#define  PCINT22  6
#define  PCINT21  5
#define  PCINT20  4
#define  PCINT19  3
#define  PCINT18  2
#define  PCINT17  1
#define  PCINT16  0
#define PCMSK1	(*(volatile unsigned char *)0x6C) /* m/m */
#define  PCINT14  6
#define  PCINT13  5
#define  PCINT12  4
#define  PCINT11  3
#define  PCINT10  2
#define  PCINT9   1
#define  PCINT8   0
#define PCMSK0	(*(volatile unsigned char *)0x6B) /* m/m */
#define  PCINT7   7
#define  PCINT6   6
#define  PCINT5   5
#define  PCINT4   4
#define  PCINT3   3
#define  PCINT2   2
#define  PCINT1   1
#define  PCINT0   0

/* EICRA */
#define EICRA	(*(volatile unsigned char *)0x69) /* m/m */
#define  ISC11    3
#define  ISC10    2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -