单片机学习资料2(2)

2019-04-22 13:13

强置为输入,且其内部上拉电阻仍由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存储器

单片机开始处理问题之前,必须事先把编写好的各种程序和所需的一些常数送到单片机中存放起来。我们把能够存放程序或数据的器件称为存储器。下面我们看看单片机的存储器究竟是什么样子的。

一、程序存储器

程序指的是控制单片机动作的一系列命令。单片机只认识由“0”和“1”代码构成的机器指令,因此必须将我们用C语言编写的程序转换成它能认识的指令码。也就是说在单片机处理问题之前必须将将编好的程序、常数等编译成机器代码后存入单片机的存储器中,这种用与存放程序指令、常数的存储器称为程序存储器。

程序存储器具有“非易失”和“只读”属性。所谓“非易失性”指的是在掉电情况下,储存在程序存储器中的程序代码不会丢失。“只读性”指的是单片机在正常工作时,不能往程序存储器中写入数据,而只能从程序存储器中将数据读出,所以这种存储器又称为ROM(Read Only Memory)。要想往程序存储器中写入数据,必须在特殊条件下、用特定的设备进行写操作。

Atmega8单片机所采用的程序存储器就是一种可电擦除的只读存储器,称为Flash ROM。由于所有的AVR指令都是16位或32位,因此Atmega8单片机Flash程序存储器具有4K×16位的结构。图2—5为Atmega8单片机Flash程序存储器的结构图。另外,为了提高程序的安全性性,设计时已将Atmega8单片机的Flash程序存储器分为引导程序区(Boot Program Section)和应用程序区(Application Program Section)两部分。我们可以通过对相应熔丝位的编程设定,选择是否需要使用引导程序区以及该区空间的大小。

16Bits$000应用程序区引导程序区$FFF

图2—5 Flash程序存储器结构

二、数据存储器

单片机中仅有程序存储器是不够的,因为它在作各种运算时与人工计算类似,为了得到最终结果,往往要经过许多步的中间过程,得到许多中间结果。这些中间结果在运算过程中也要有个地方存放才行。程序结束了,这些中间结果可能就不需要了。把它们放哪呢?当然放在存储器中。放在前面提到的程序存储器中可以吗?显然不行,因为这些中间结果是随时可能变化的,单片机要将它们写进程序存储器中,而在正常工作时程序存储器又是不可以写的。所以,在单片机中还必须有一个存放中间结果的区域,称为数据存储器。

数据存储器具有随机可读、可写的性能,称为RAM(Random Access Memory)。

Atmega8 单片机数据存储器包括SRAM数据存储器和512B的E2PROM数据存储器。SRAM数据存储器的空间组织结构如图2—6。

通用工作寄存器组R0R1R2?R29R30R31I/O存储器空间$00$01$02?$3D$3E$3F64个32个数据存储器空间$0000$0001$0002?$001D$001E$001F$0020$0021$0022?$005D$005E$005F内部SRAM$0060$00611024个?$045E

图2—6 SRAM数据存储器的空间结构

$045F也许有同学问:在一般的计算机中,并没有程序存储器和数据存储器的说法。其实,这正是单片机和一般计算机的不同之处之一。单片机在存储空间上将程序存储器与数据存储器分开,这种结构称为哈佛(Harvard)结构。而一般计算机中程序和数据共用一个存储空间。

单片机的存储器为什么要采用这种哈佛(Harvard)结构呢?这是由单片机的应用特点所决定的。单片机往往是针对某个特定的对象和任务设计的,其程序设计成功后,一般不会再变化。因此程序(包括程序中的一些常数)可以而且也应该一次性的永久地存放到单片机中,这样不仅省去了每次开机时重新装载程序,还可以有效地防止因为掉电和其他干扰而引起的程序丢失和错误。 三、I/O寄存器

Atmega8所有的I/O口及外围设备的控制寄存器、数据寄存器都被设置在I/O寄存器空间中。表2—4列出了Atmega8单片机的I/O寄存器的地址空间分配、名称和功能。

表2—4 Atmega8单片机I/O寄存器地址空间分配表 十六进制地址 $00($0020) $01($0021) $02($0022) $03($0023) $04($0024) $05($0025) $06($0026) $07($0027) $08($0028) $09($0029) $0A($002A) $0B($002B) $0C($002C) $0D($002D) $0E($002E) $0F($002F) 名称 TWBR TWSR TWAR TWDR ADCL ADCH ADCSR ADMUX ACSR UBRRL UCSRB UCSRA UDR SPCR SPSR SPDR 功能 I2C波特率寄存器 I2C状态寄存器 I2C从机寄存器 I2C数据寄存器 ADC数据寄存器低字节 ADC数据寄存器高字节 ADC控制和状态寄存器 ADC多路选择器 模拟比较控制和状态寄存器 USART波特率寄存器低8位 USART控制状态寄存器B USART控制状态寄存器A USART I/O数据寄存器 SPI控制寄存器 SPI状态寄存器 SPI I/O数据寄存器


单片机学习资料2(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:标准实验报告-金融工程-2011-2012-2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: