工艺及标准化等原因,单片机引脚数目总是有限的。Atmega8单片机引脚数目为28个,但单片机为实现功能所需要的信号数目却远远超过这个数。如何解决这个供需矛盾呢?正如有的人为了增加收入,要做一些兼职工作。单片机也同样如此,当引脚数量有限时,“兼职”是唯一可行的办法,即给其中一些引脚赋以双重功能。下面介绍Atmega8单片机引脚的第二功能。 1. B端口引脚第二功能:见表2—1
表2—1 B端口引脚第二功能 引 脚 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 第 二 功 能 XTAL2(系统时钟晶振引脚2) TOSC2(实时时钟晶振引脚2) XTAL1(系统时钟晶振引脚1或外部系统时钟输入口) TOSC1(实时时钟晶振引脚1) SCK(SPI总线时钟) MISO(SPI总线主输入口/从输出口) MOSI(SPI总线主输出口/从输入口) OC2(T/C2输出比较匹配输出口) SS(SPI总线主从选择) OC1B(T/C1输出比较B匹配输出口) OC1A(T/C1输出比较A匹配输出口) ICP(T/C1输入捕获输入口) ①PB7——XTAL2/ TOSC2 XTAL2:系统时钟晶振引脚2。当系统使用外部晶振时,该引脚连接晶振的一个脚,此时,该引脚不能作为I/O引脚使用。当系统使用内部可校准的RC振荡器或外部时钟源时,该引脚可作为一般I/O口使用。
TOSC2:实时时钟晶振引脚2。只有当选择内部可校准的RC振荡器作为系统时钟源时,而且设置寄存器ASSR中的AS2位,允许使用异步时钟定时器时,PB7才可用作TOSC2。当ASSR寄存器的AS2位置“1”,使能定时/计数器2的异步时钟功能时,PB7与端口引脚脱离,作为振荡放大器的反向输出端。在这种模式下,时钟晶体连接到该引脚,且不能作为I/O引脚。
如果PB7被用作晶振,寄存器DDB7、PORTB7和PINB7读出都为“0”。 ②PB6——XTAL1/ TOSC1
XTAL1:系统时钟晶振引脚1。当系统使用外部晶振时,该引脚连接晶振的一个脚,此时,该引脚不能作为I/O引脚使用。当系统使用内部可校准的RC振荡器或外部时钟源时,该引脚可作为一般I/O口使用。
TOSC1:实时时钟晶振引脚2。只有当选择内部可校准的RC振荡器作为系统时钟源时,而且设置寄存器ASSR中的AS2位,允许使用异步时钟定时器时,PB6才可用作TOSC1。当ASSR寄存器的AS2位置“1”,使能定时/计数器2的异步时钟功能时,PB6与端口引脚脱离,作为振荡放大器的反向输入端。在这种模式下,时钟晶体连接到该引脚,且不能作为I/O引脚。
如果PB6被用作晶振,寄存器DDB6、PORTB6和PINB6读出都为“0”。 ③PB5——SCK
SCK:SPI串行总线接口时钟线。当系统作为主机时,SCK为SPI总线的时钟输出端;当系统作为从机时,SCK为SPI总线的时钟输入端。当使能SPI为从机模式时,无论DDB5是何设置,该引脚被强置为输入。尽管SCK引脚被SPI
强置为输入,且其内部上拉电阻仍由PORTB5控制。当使能SPI为主机时,PB5的数据方向由DDB5来控制。
④PB4——MISO
MISO:SPI串行总线接口的主机数据输入/从机数据输出端。当使能SPI为主机模式时,无论DDB4,PB4都被设置为输入,但其内部上拉电阻仍由PORTB4控制。;当使能SPI为从机模式时, PB4的数据方向由DDB4来控制。
⑤PB3——MOSI/OC2
MOSI:SPI串行总线接口的主机数据输出/从机数据输入端。当使能SPI为从机模式时,无论DDB3,PB3都被设置为输入,且其内部上拉电阻仍由PORTB3控制。当使能SPI为主机模式时, PB3的数据方向由DDB3来控制。
OC2:比较匹配输出端。PB3引脚还可以作为定时/计数器2比较匹配的外部输出口,此时,PB3引脚必须设置为输出(DDB3=1)。在PWM应用中,OC2引脚还可作为PWM定时器模块的输出引脚。
⑥PB2——SS/OC1B
SS:SPI总线从机选择输入。当使能SPI为从机模式时,无论DDB2,PB2都被设置为输入,且其内部上拉电阻仍由PORTB2控制。当使能SPI为主机模式时, PB2的数据方向由DDB2来控制。
OC1B:T/C1比较匹配B输出端。PB2引脚还可以作为定时/计数器1比较匹配B的外部输出口,此时,PB2引脚必须设置为输出(DDB2=1)。在PWM应用中,OC1B引脚还可作为PWM定时器模块的输出引脚。
⑦PB1——OC1A
OC1A :T/C1比较匹配A输出端。PB1引脚还可以作为定时/计数器1比较匹配A的外部输出口,此时,PB1引脚必须设置为输出(DDB1=1)。在PWM应用中,OC1A引脚还可作为PWM定时器模块的输出引脚。
⑧PB0——ICP ICP:输入捕获的输入引脚。PB0引脚能作为T/C1输入捕获功能的输入引脚。 2. C端口引脚第二功能:见表2—2
表2—2 C端口引脚第二功能
引 脚 PC6 PC5 PC4 PC3 PC2 PC1 PC0 第 二 功 能 RESET(系统复位引脚) ADC5(ADC输入通道5) SCL(2线串行总线接口时钟线) ADC4(ADC输入通道4) SDA(2线串行总线接口数据输入/输出线) ADC3(ADC输入通道3) ADC2(ADC输入通道2) ADC1(ADC输入通道1) ADC0(ADC输入通道0) ①PC6——RESET RESET:系统复位引脚。当RSTDISBL熔丝位被置位时,PC6作为一般I/O引脚应用,此时,芯片内部的上电复位(POWER—UP)和掉电检测复位(BROWN—OUT)作为系统的复位源。当RSTDISBL熔丝位没有被置位时,内部复位电路将连接到PC6引脚,此时PC6不作为I/O口使用,当被外部拉成低电平时,产生复位动作,使系统复位。
②PC5——SCL/ ADC5/
SCL:2线串行总线时钟线。当TWCR寄存器中的TWEN位被置“1”时,使能TWI接口,,PC5将与I/O端口脱离,成为TWI总线接口的串行时钟线。PC5工作在TWI模式下时,有一个尖峰滤波器连接到该引脚,能够抑制输入信号中小于50ns的毛刺,同时引脚将由具有缓冲率限制的开漏驱动器驱动。
ADC5:PC5也可以作为ADC输入的通道5。注意:ADC输入通道5由数字电源端Vcc供电。
③PC4——SDA/ADC4
SDA:2线串行总线时钟线。当TWCR寄存器中的TWEN位被置“1”时,使能TWI接口,,PC4将与I/O端口脱离,成为TWI总线接口的串行时钟线。PC4工作在TWI模式下时,有一个尖峰滤波器连接到该引脚,能够抑制输入信号中小于50ns的毛刺,同时引脚将由具有缓冲率限制的开漏驱动器驱动。
ADC4:PC4也可以作为ADC输入的通道4。注意:ADC输入通道4由数字电源端Vcc供电。
④PC3——ADC3
ADC3: PC3也可以作为ADC输入的通道3。注意:ADC输入通道3由模拟电源端AVcc供电
⑤PC2——ADC2
ADC2: PC2也可以作为ADC输入的通道2。注意:ADC输入通道2由模拟电源端AVcc供电。
⑥PC1——ADC1
ADC1: PC1也可以作为ADC输入的通道1。注意:ADC输入通道1由模拟电源端AVcc供电。
⑦PC0——ADC0
ADC0: PC0也可以作为ADC输入的通道0。注意:ADC输入通道0由模拟电源端AVcc供电。
⑧PD0——RXD
RXD:USART总线的数据输入口。当使用USART的数据接收功能时,无论DDD0为如何设置,PD0均为输入,此时PD0内部上拉电阻仍然由PORTD0控制。
3. D端口引脚第二功能:见表2—3
表2—3 D端口引脚第二功能 引 脚 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 第 二 功 能 AIN1(模拟比较器负输入) AIN0(模拟比较器正输入) T1(T/C1外部计数脉冲输入口) XCK(USART外部时钟输入/输出口) T0(T/C0外部计数脉冲输入口) INT1(外部中断1输入) INT0(外部中断0输入) TXD(USART输出口) RXD(USART输入口) ①PD7——AIN1 AIN1:模拟比较器反相输入。在使用模拟比较器功能时,应将PD7设置为
输入,且关断内部上拉电阻,防止数字口功能影响模拟比较器的性能。
②PD6——AIN0
AIN0:模拟比较器正相输入。在使用模拟比较器功能时,应将PD6设置为输入,且关断内部上拉电阻,防止数字口功能影响模拟比较器的性能。
③PD5——T1
T1:T/C1外部计数脉冲输入口 ④PD4——XCK/T0
XCK:USART串行总线外部时钟输入/输出口 T0:T/C0外部计数脉冲输入口 ⑤PD3——INT1
INT1:外部中断源1。PD3可作为一个外部中断源的输入口 ⑥PD2——INT0
INT0:外部中断源0。PD2可作为一个外部中断源的输入口 ⑦PD1——TXD
TXD:USART总线的数据输出口。当使用USART的数据输出功能时,无论DDD1如何设置,PD1均为输出。
⑧PD0——RXD
RXD:USART总线的数据输入口。当使用USART的数据接收功能时,无论DDD0为如何设置,PD0均为输入,此时PD0内部上拉电阻仍然由PORTD0控制。
以上是Atmega8单片机各端口引脚的第二功能,有的引脚的第二功能比它的第一功能还有用,有时可以不利用它的第一功能,但是不能没有它的第二功能。缺少了它的第二功能,单片机甚至不能工作。尽管单片机引脚的地二功能如此有用,但初学者对它们的用法感到迷惑不解,总以为第二功能和第一功能之间要有一个切换过程,或者说要用某条指令来完成第一功能和第二功能的切换。实际上,单片机各引脚的第二功能完全是自动的,不需要用指令来切换。
§2.4 Atmega8存储器
单片机开始处理问题之前,必须事先把编写好的各种程序和所需的一些常数送到单片机中存放起来。我们把能够存放程序或数据的器件称为存储器。下面我们看看单片机的存储器究竟是什么样子的。
相关推荐: