您现在的位置: >
avr单片机[浏览次数:约3249次]
avr单片机优点
1:在相同的系统时钟下***R运行速度最快;
2: 芯片内部的Flsah、EEPROM、SRAM容量较大;
3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);
4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;
5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;
6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。
目前支持***R单片机编译器的语言主要有汇编语言、C语言、BASIC语言等。其中C编译器主要有CodeVision***R、***RGCC、IAR、ICC***R等,C语言编译器由于它具有功能强大、 运用灵活、代码小、运行速度快等先天性的优点,使得它在专业程序设计上具有不可代替的地位。
***R单片机是1997年由ATMEL公司研发出的增强型内置FLASH的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。***R的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
***R的主要特性
高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。
早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。
***R单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。当然这种速度上的升跃,是以高可靠性为其后盾的。
***R单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故***R单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。
***R单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEProm可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部 RAM。
***R单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。
***R单片机片内具备多种独立的时钟分频器,分别供URAT、I2C、SPI使用。其中与8/16位定时器配合的具有多达10 位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。***R单片机独有的“以定时器/计数器(单)双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的设计方法(即脉宽调制输出PWM)”更是令人耳目一新。
增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验侦错、两级接收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51/96单片机的串口,加之***R单片机高速,中断服务时间短,故可实现高波特率通讯。
面向字节的高速硬件串行接口TWI、SPI。TWI与I2C接口兼容,具备ACK信号硬件发送与识别、地址识别、总线仲裁等功能,能实现主/从机的收/发全部4种组合的多机通信。SPI支持主/从机等4种组合的多机通信。
***R单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。
***R单片机具有多种省电休眠模式,且可宽电压运行(5-2.7V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。 ***R单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口…… )于一身,充分体现了单片机技术的从“片自为战”向“片上系统SoC”过渡的发展方向。
综上所述,***R单片机博采众长,又具独特技术,不愧为8位机中的佼佼者。
***R系列单片机的选型
***R单片机系列齐全,可适用于各种不同场合的要求。***R单片机有3个档次:
低档Tiny系列***R单片机: 主要有Tiny11/12/13/15/26/28等;
中档AT90S系列***R 单片机: 主要有AT90S15/8535等; (正在淘汰或转型到Mega中)
高档ATmega系列***R单片机: 主要有ATmega8/16/32/64/128( 存储容量为8/16/32/64/128 KB)以及ATmega等。
***R单片机的RTOS-***RX应用
随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式,在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因而嵌入式操作系统深得开发人员的青睐。
***R微处理器是Atmel公司开发的8位嵌入式RISC处理器,它具有高性能、高保密性、低功耗、非易失性等优点,而且程序存储器和数据存储器可独立编址,并具有独立访问的哈佛结构。***R单片机内核有丰富的指令集,通过32个通用寄存器直接与逻辑运算单元相连接,允许在一个周期内一条单一指令访问两个独立的寄存器,这样的结构使代码的执行效率比传统的复杂指令集微处理器快了将近10倍。
***RX是由1barello编写的源码公开的嵌入式操作系统,它专门针对***R系列单片机的RTOS,具有免费和可以修改的特点,它的缺点是由于做为一种专用的操作系统很难移植到其他平台上。
1 ***RX 系统的特点
***RX做为***R专用RTOS有如下的特点:
◆ 完全支持占先式、优先级驱动的任务调度算法;
◆ 16个优先级,相同的优先级的任务采用Round robin调度算法轮流执行;
◆ 信号量可以用于信号传递、同步和互斥信号量,支持阻塞和非阻塞语法;
◆ 任务之间可以用消息队列相互传递信息,接收和确认消息可以用阻塞和非阻塞调用;
◆ 在中断子程序中,大部分非阻塞的中断服务程序可以使用;
◆ 支持单个定时器的时间队列管理,任何进程都可以设置一个定时器,并且任何一个任务都可以等待定时器时间到;
◆ 支持单步调式运行着的进程;
◆ 程序空间小,包含所有功能的版本占用1000字节;
◆ 与定时器/计算器有关的一些事务可以用***RX写成任务级代码。
1.1 任务
***RX2.6为了支持C语言,保存了所有的32个寄存器,最小的上下文是32个寄存器、SREG和PC,总共35个字节。AvrXInitTask()函数给所有的寄存器初始化为0x00;只有进程上下文保存在任务堆栈中,所有其他的使用(包括内核和中断)保存在内核堆栈。这样降低了第一个中断的上下文切换和进入内核API的SRAM消耗。随后的中断(如果允许中断嵌套)嵌入内核堆栈,API不进行上下文切换。
1.2 信号量
信号量是SRAM指针,它们有三中状态:PEND、WAITING和DONE。当一个进程被一个信号量阻塞时,它处于WAITING状态,多个任务可以排队等候一个信号量。在后一种情况下,信号量可以看作互斥信号量。提供的API函数如下:AvrXSetSemaphore、AvrXIntSetSemaphore、AvrXWaitSemaphore、AvrXtestSemaphore、AvrXIntTestSemaphore和AvrXResetSemaphore。
1.3 定时器
定时器控制块(TCB)长度为4(或6)个字节。它们管理一个16位计数值。定时器队列管理器管理一个分类的定时器队列,每个都调整为所有计数器的和到其延时需要的值。提供的API函数如下:AvrXStartTimer、AvrXTimerHandler、AvrXCancelTimer、AvrXWaitTimer、AvrXTestTimer和AvrXDelay。
1.4 消息队列
消息队列用消息控制块(MCB)做为队列首地址。任何进程、中断处理函数和多个进程都可以等待消息。MCB的长度是2或4个字节。消息可以认为是灵活性更大的信号量。提供的API函数如下:AvrXSendMessage、AvrXIntSendMessage、AvrXRecvMessage、AvrXWaitMessage、AvrXAckMessage、AvrXTestMessage和AvrXWaitMessageAck。
1.5 单步运行支持
通过重新汇编内核***RX,可以允许和禁止单步运行的支持。单步运行可以通过编译内核库时定义下面的变量:#define SIGNALSTEPSUPPORT。
在能够单步运行以前,进程必须先暂停。有两种方法实现:一是仅仅初始化进程但不使能;二是用目标进程的ID调用AvrXSuspend,一旦目标进程挂起,调试SPI就能使用了,提供的API函数有:AvrXStepNext和AvrXSingleStepNext。
1.6 系统对象
***RX是围绕系统对象的概念而构建的,系统对象包括一个链接和其后面的0个或者若干个字节的数据信号量。进程对象可以根据运行队列和信号量排队。计数器控制块只能根据计数器队列排队。消息控制块只能在消息队列排队。进程根据嵌入对象的信号量等待这些对象。
进程堆栈中可用的SRAM是限制系统规模的主要因素,每个进程都需要至少10~35字节的空间来存储进程上下文。提供的API函数如下:AvrXSetObjectSamaphore、AvrXIntObjectSamaphore、AvrXResetObjectSamaphore、AvrXWaitObjectSamaphore、AvrXTestObjectSamaphore和AvrXIntTestObjectSamaphore。
1.7 系统堆栈
***RX需要足够大的堆栈来处理所有可能的中断嵌套,每次进入内核将会把10~35字节压进堆栈(标准上下文和返回地址),中断处理可能压进去更多。***RX的API会临时压入2个以上的字节。GCC或者汇编代码定义于SRAM的顶部,保证***RX的堆栈在有效SRAM空间之内是设计者的工作。
2 ***RX系统的应用
2.1 ***RX在不同型号***R单片机上的移植
下面以ATmega16为例,介绍移植工作。
(1)编译器的选择
由于***RX的编者是在GNU推出的***R-GCC编译器下编写的,所以选用***R-GCC编译器可以大大提高***RX在不同***R单片机上的移植特性。
(2)重新编译***RX内核
为了将应用程序成功编译,需要重新编译***RX内核,重新编译包括下述步骤。
①重新修改***RX源码的Makefile文件,需要修改的几处如下:
ABSPATH=…/avrx /*更改***RX原路径到实际路径下*/
修改 MCU=8535
A***RMCU=1
GCCMCU=at90s$(MCU)
***RXMCU=_AT90S$(MCU)_
为 ICCMCU=m16
A***RMCU=3
GCCMCU=atmega16
***RXMCU=_AT90Mega16_
②重新修改***RX源码的serialio.s文件,即根据不同的单片机修改串口部分的寄存器定义。需要增添如下代码:
#if defined(UBRRL)
#define UBRR UBRRL
#endif
#if defined(UBRRH)
sts UBRRH,p1h
#endif
③重新编译内核。具体做法是复制一个“令名提示符”到***RX目录下,运行“命令提示符”,键入“makegcc”命令后运行就完成了***RX内核的重新编译,会生成很多的.o文件和avrx.a文件。这些文件在以后的应用程序中会使用。
至此就完成了***RX在ATmega16单片机上的内核移植,接着就可以编写应用程序了。
2.2 在***RX上编写应用程序
这时候要用一个新的makefile文件,同时自己的程序可以不和***RX的内核在一个目录,但是要指出依赖文件的明确路径。makefile的框架可以采用Winavr的sample文件夹下的makefile文件框架,这里的难点其实还是makefile文件的语法问题。下面介绍应用程序的makefile文件在实例中需要修改或增加的代码:
MCU=atmega16 /*微处理器的名字*/
TARGET=test /*应用程序文件名*/
GCCLIB=$(***RX)/avrx/avrx.a
GCCINC=-L-I$(***RX)/avrx-I$(***R)/avr/inc /*加上相关的库*/
SCANF[_]LIB[_]MIN=-W1,-u,vfscanf-1scanf[_]min
SCANF[_]LIB[_]FLOAT=-W1,-u,vfscanf-1scanf[_]flt
SCANF[_]LIB /*设置sacnf函数库的类型,在不使用时可以注释掉,这样可以减小编译后的文件大小*/
LDFLAGS+=$(PRINTF[_]LIB)$(SCANF[_]LIB)$(MATH[_]LIB) /*新增的连接器参数设定*/
3 系统测试
3.1 系统实时性测试
在实时系统中,实时系统的实时性表现在系统对外部事件的响应能力上,系统通过中断来响应外部事件的发生,并且在用户中断程序中做的事要尽量少,把大部分工作留给任务去做,只是通过信号量或者信息机制来通知任务运行。Mega16的定时器2设为比较匹配输出模式,在匹配时间到了之后产生一定周期脉冲输出,并产生中断。设置定时器1为计数模式来计数产生的脉冲输出。通过定时器2的比较匹配中断服务子程序来发信号量通知任务运行,并在中断子程序中不开中断,而在任务得到信号后开中断,以实现中断处理与任务运行的同步,任务中对一个全局变量计数,以记录任务执行的次数。运行一段时间后,在设置的匹配时间里,任务的运行次数和定时器1的计数一样,则系统在这段时间里是能完全响应外部事件的,当定时器2的比较匹配时间设为大于23μs时,2个计数是相等的;当小于23μs时,定时器1计数值大于任务计数值,说明任务没有完全得到响应。这说明中断的进入和返回即系统对外部时间的响应和处理时间为23μs,远远大于其他操作系统在***R单片机上移植后的响应时间。
3.2 使用例程测试
这里只对源文件中的几个例程先进行简单的编译,然后去掉不必要的代码,加入自己想测试的一些代码,进行了定时器控制模块,信号量和消息队列以其简单组合的测试,均在ATmega16上达到了预期的效果。
4 心得体会
①***RX的源码都是用汇编语言编写的,相对来讲代码效率很高,但是由于没有详细的API介绍文档,所以最好的入门方法就是先读懂RTOS的源码和例程,然后进行修改,再加上自己的代码逐渐熟练应用。
②***RX需要分配的堆栈为35个字节加上任务代码需要的额外堆栈,具体的大小取决于每个进程用的本地变量个数。比较好的确定分配给任务堆栈大小的方法是:分配很大的堆栈(如70字节)运行一段应用程序后看堆栈到多深(因为GCC启动时把所有内存都清0了,这样很容易看到)。不过,为了安全起见,用编译器或仿真器在估计堆栈的顶端写入几个字节的0xFFFFF去验证到底达到了多少字节,然后分配给比测试结果多两个以上的字节给这个任务。
③启动的最后一个指令必须跳转到Epilog()。
5 结论
***RX是一个不错的RTOS,最显着的特点就是内核小,速度快,编译后大概只需500~700字节,且基本的调度功能一个也不少。由于其代码公开,结合不同型号***R单片机的特性,可以在此基础上进行系统的裁减和扩展,使之能达到更好的效果,本文为***R嵌入式系统的应用提供了借鉴。
***R单片机的应用区域
目前,***R已被广泛用于:
· 空调控制板
· 打印机控制板
· 智能电表
· 智能手电筒
· LED控制屏
· 医疗设备
· GPS
***R单片机入门系列--MEGA端口操作
***R端口是真正的双向端口,不像51伪双向。这也是***R的一项优势,只是操作时大家注意DDRn就可以了。真正双向端口在模拟时序方面不如伪双向的方便。
DDRn PORTn PINn 解释:n为端口号:ABCDE
DDRn:控制端口是输入还是输出,0为输入,1为输出。个人记忆方法:一比零大所以往外挤,即1为输出,0为输入。
PORTn:从引脚输出信号,当DDRn为1时,可以通过PORTn=x等端口操作语句给引脚输出赋值。
PINn:从引脚读输入信号,无论DDRn为何值,都可以通过x=PINn获得端口n的外部电平。
当引脚配置为输入时,若PORTxn 为"1“,上拉电阻将使能。内部上拉电阻的使用在键盘扫描的时候还要说到。
端口更详细功能及介绍以及端口第二功能请参考数据手册。
端口引脚配置
DDxn PORTxn PUD (in SFIOR) I/O 上拉电阻说明
0 0 X 输入 No 高阻态 (Hi-Z)
0 1 0 输入 Yes被外部电路拉低时将输出电流
0 1 1 输入 No高阻态(Hi-Z)
1 0 X 输出 No输出低电平 ( 漏电流)
1 1 X 输出 No输出高电平 ( 源电流)
如果有引脚未被使用,建议给这些引脚赋予一个确定电平。最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时上拉电阻将被禁用。如果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。不推荐直接将未用引脚与VCC 或GND 连接,因为这样可能会在引脚偶然作为输出时出现冲击电流。
下面我们来看例子:
void port[_]init(void)
PORTA = 0x03;
DDRA = 0x03;
PORTB = 0x00;
DDRB = 0x01;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;// 建议赋值为零
PORTA = 0x03;DDRA = 0x03;这两句使PA口的PA1和PA0处于输出状态,PA7—PA2处于输入状态。这里的0x03即二进制的,从左到右对应于Pn7--Pn0八个IO口。
通过跑马灯程序来深入理解IO口的操作:
//ICC-***R application builder :
// Target : M32
// Crystal: 7.3728Mhz
#include &iom32v.h&
#include ¯os.h&
void [_]delay(unsigned char n) //延时函数定义
unsigned char i,j;
for(;n!=0;n--) //n*10ms
for(j=100;j!=0;j--) //100us*100=10ms
for(i=147;i!=0;i--) //delay 100us
int main(void)
unsigned char i,j,k; //
PORTA=0xFF; //PA口设为输出高电平,灯灭
DDRA=0xFF; //PA口设置为输出
while(1)
for (j=0;j&8;j++) //循环8次,即PA0~~PA7轮流闪亮
PORTA=~i; //反相输出,低电平有效,对应的灯亮
for (k=0;k&10;k++) [_]delay(100); //延时 100*10=1秒,可自行调节 i=i&&1; //左移一位,I的值将向下面的列表那样变化
// 0b PA0
// 0b PA1
// 0b PA2
// 0b PA3
// 0b PA4
// 0b PA5
// 0b PA6
// 0b PA7
}[Copy to clipboard]
其他IO口操作指令:
void main(void)
PORTA=0
DDRA=0 //输出 模式 ,IO口上拉电阻有效,1为输出,0为输入。
PORTA=0xf0; //等
以下三条指令只对操作符号右边的数字位是一的位操作。
PORTA&=~0x70; //清零 0x70为
,即把*三位清零,其余数位不变。
PORTA|=0x77; //置一 0x77为
,即把*210六位清零,其余数位不变。
PORTA^=0x70; //翻转 0x70为 ,即*三位,如果是零变成1,是一变成0。
(P & 0x80)==0x80; //按位与 判断p的第七位是否是一,是则成立
关于1&&x的说明,网上的程序中经常会看到1&&ADIF类似的语句,新手很难看明白是什么意思,我这里简单说明一下:
ADIF是一个寄存器变量,可以堪称数字4, 跟手册中的定义,包含芯片头文件的定义是一样的。
(1&&ADIF) =(1&&4)=0b
ADCSR=(1&&ADIF); //只是ADIF位 =1,其他=0
ADCSR|=(1&&ADIF); //只是ADIF位 =1,其他不变
ADCSR&=~(1&&ADIF); //只是ADIF位 =0,其他不变
while(ADCSR&(1&&ADIF)) ; //等待ADIF位为0,才退出循环,执行下一步
while(1)
while(ADCSR&(1&&ADIF)) ; //等待ADIF位为0,才退出循环,执行下一步
程序......
实践出真知:只看这样的说明是很枯燥的,从实践中去学习会是更好的途径,把这些代码都写到单片机里,一步一步调试运行,看看各个端口以及寄存器的效果,也锻练程序调试能力,和乐而不为呢?
avr单片机相关资讯
捷配电子通,电子知识,一查百通!已收录词条9368个
一周热门词条排行
avr单片机相关技术资料
avr单片机相关词条
IC热门型号
IC现货型号51系列与***R单片机对比的优势1、***R单片机;2、***R具有超功能精简指令!具有32个通用工作;2.5mA,典型功耗情况,WDT关闭时为100n;6、***R内部自带集成AD转换,更易于对模拟量的;7、***RI/O口是真正的双向I/O口,单片机读;8、***RI/O具有强大的电流驱动能力,具有大电;9、***R几乎所有的I/O口都有第二功能,PD4;10、***
51系列与***R单片机对比的优势 1、***R单片机(ATmega16)的时钟源(晶振、内部RC等)可以不经过分频直接提供给CPU使用,而51的CPU主频等于晶振的12分频 ,ATmega16外部提供16M的晶掁,即CPU频率可达16M,常规51的时钟源为12M,经12分频后CPU频率仅为1M,所以***R单片机的运行速度比51单片机的运行速度要快的多,并且***R单片机可提供内容1M、2M、4M、8M等可变的CUP频率。
2、***R具有超功能精简指令!具有32个通用工作寄存器(相当于8051中的32个累加器,克服了单一累加器数据处理造成的瓶颈现象),有128B~4KB个SRAM,可灵活使用指令运算。
3、***R既具有简单的、可以自制的ISP下载线和Jtag仿真器,又有DIP直插的封装形式 4、***R的C语言编程与C语言教科书上学习的标准C语言语法是几乎一样的,不像51的C语言,一些bit、srf之类的变量定义在教科书中是找不到的,有利于后续嵌入式系统的学习
5、***R具有休眠省电功能(POWER DOWN)及闲置(IDLE)低功耗功能。一般耗电在1~
2.5mA,典型功耗情况,WDT关闭时为100nA
6、***R内部自带集成AD转换,更易于对模拟量的处理,这使得***R单片机的性价比明显高于51单片机。
7、***R I/O口是真正的双向 I/O口,单片机读取外部引脚电平直接通过PINX读取,不需要像51那样先给 I/O口全写1操作后才能读取外部引脚电平,使得单片机读取外部数据更容易。
8、***R I/O具有强大的电流驱动能力,具有大电流(灌电流)10~20mA或40mA(单一输出),可直接驱动SSR或继电器。
9、***R几乎所有的I/O口都有第二功能,PD4,PD5的第二功能方便容易的产生PWM波,方便快捷的控制电机的转速。
10、***R内部提供丰富的中断及寄存器资源,光外部中断就有3个,定时器有3个,丰富的寄存器资源使得可以设置外部中断的多种触发方式,以及设置内部定时分频系数,丰富的寄存器资源使得可以对***R的I/O口进行多功能操作
11、***R具有专为I2C协议设计的I/O口,使得单片机的多机通信变得更容易。
第 1 页 共 4 页
八位单片机以其内部构造简单,体积小,成本低廉,在一些较简单的控制器中应用较为广泛,时至今日,八位单片机仍占据着相当程度的份额,下面将以课上所学内容为基础,加以部分网上查阅资料,对51系列单片机和***R单片机的主要差别进行简要的对比分析。
首先提到的自然是历史悠久的51系列单片机,这一系列可说是应用范围最为广泛的单片机,而深究其原因便不难发现,
而且指令系统也更为规范,占据了先入为主的优势后,经过不断的更新和完善,已然形成了一个庞大的体系,至今仍然保持着活力。
51系列的单片机优点之一在于,它从内部硬件到软件有着一套完整的按位操作系统,即位处理器,
这就意味着它不仅能对片内某些特殊功能寄存器的某位进行处理,
位、清零、测试等,还能进行位的逻辑运算,这一点使其他种类单片机很难实现的。此外,51
间,单元地址为
使用起来灵活方便,使得使用者在操作时更加得心应手。
51系列的单片机的另一个优点便是具备了乘法和除法指令,其中八位除以八位的除法指令商为八位,
位乘以八位的乘法指令积为十六位,
了,更为重要的是,直接具备了乘法与除法指令,这就使得在实际应用时,使用者不必额外编写相应的子程序以备调用,与其他系列单片机相比,
片机在编程操作方面的简便与实用性无疑上了一个新台阶。
完整这一范畴所带来的便利还包括了二进制—十进制调整指令
变为BCD码,这使得十进制的计量更为快捷简便,省去了其他系列单片机还需要编写调用相应子程序的冗余过程,节省了大量的劳动力和时间。
接下来要说明的是
置和使用非常简单,这也是
用时,只须将该脚设置为高电平,
可的。当低电平时,吸入电流可达到也称布尔处理器,20H~2FH5151系列单片机不仅硬件结构合理, 它的处理对象不是字或字节,RAM区间特别开辟了一个双重功能的地址区因此在应用方面不是很多,这样的精度已经足以满足大部分应用的要求I/O脚的设置和使用问题,可以说其设51系列单片机的又一大优点。当该脚作为输入脚使而作为输出脚使用时,则是高电平与低电平均20mA,此时便具有一定的驱动能力,而高
第 2 页 共 4 页 而是位,例如传送、置但八51系列的单DA,可将二进制 系列单片机还在片内的十六个字节,它既可作字节处理,也可作位处理, 精度显得有些不足,而同属指令系统规范系列单片机的
电平时,输出电流则极小,基本上没有驱动能力。其具体原因是由于高电平时该脚也同时作为输入脚使用,而输入脚则必须具有很高的输入阻抗,因而上拉的电流必须很小才行。上述内容表明了51系列单片机的I/O脚使用简单,但也凸显出了其高电平时无输出能力,可谓时有利也有弊,因此下面即将提到的***R系列单片机针对I/O口进行了改进,增加了方向寄存器以确定输入或者输出,但这无疑也使得使用方面变得复杂了许多。
***R单片机作为一个新兴起的系列,也具有了大多数新兴事物的特点,即在原有系列的基础上,拥有高性能、高速度、甚至是更低的功耗,但这些优化与更新的性能背后,
它的32个通用寄存器中前
系列的单片机中所有的通用寄存器均可直接与立即数打交道,因而
单片机在通用性方面无疑有所下降。由此可见,较高的价格、较低的适用性,这两点便是***R
言归正传,
有着最本质上的区别,即两者的
片机所使用的是
片机则使用的是
有的更高的处理速度也是由此而来,
指令,而相应的,
这也就是常说的
此外,如同上文提到过的,针对
***R单片机作了相应的改进,即加入了控制输入或输出的方向寄存器,从而解决了51系列单片机
是指当置位1时为输入状态,
而置位0时则为输出状态,
有相当程度的驱动能力,
相对于51系列的单片机而言,这无疑是一项很大的进步,通过这一性能,系列的单片机可实现直接驱动数码管显示且具有简单的外电路,也存在着一些问题,16CISC指令系统,冯诺依曼结构体系的总线;而RISC指令系统,哈佛结构的总线,而51系列的单片机则需要***R系列单片机理论速度可达到I/O脚位高电平时同为输入和输出的状态。且无论该脚呈高电平或低电平,无论该脚位高电平或低电平,低电平吸入电流例如其价格相比之下显得较为昂贵,CPU构架以及指令集是完全不同的,***R系列的单片机每个震荡周期处理一条12个震荡周期来完成一条指令的处理,51系列单片机的20mA,
第 3 页 共 4 页
虽然同为八位单片机,***R51系列单片机的I/O脚所体现出来的弊端,对外均呈高阻状态;对外均呈低阻状态,此外,51***R系列的但两者51系列单***R系列的单12倍的根据具10mA左右,***R个寄存器都不能直接与立即数打交道,而不像单片机进行市场推广所存在的最大制约。比较两个系列单片机之间的区别,系列的单片机所拥所谓方向寄存器,高电平输出电流在虽然由此带来了
操作上的一些复杂性,但显然瑕不掩瑜,可以说是***R系列单片机的一个很大的优点。
本文仅针对51系列的单片机与***R系列的单片机之间的部分区别与联系进行了一些系统性的比较和说明,其中大部分数据源自网上查阅,并不能完整地概括两个系列的全部差异以及性能对比,此外,还有许多其他系列的单片机也具有突出的性能,例如PIC系列的单片机在I/O脚方向寄存器的性能方面甚至还要优于***R系列,基于题目要求,本文仅针对两个系列的单片机进行对比分析,其他方面不进行过多赘述。
4 页 共 4 页 第
包含各类专业文献、应用写作文书、中学教育、各类资格考试、幼儿教育、小学教育、外语学习资料、行业资料、7151单片机系列与***R单片机系列对比等内容。
51单片机对比_电子/电路_工程科技_专业资料。2.1 单片机的选择 方案一:***R 单片机是 Atmel 公司 1997 年推出的 RISC 单片机。RISC(精 简指令系统计算机)是相对... 51系列单片机的优点及各种51单片机的简单比较_工学_高等教育_教育专区。51单片机...基于51系列单片机的简单... 4页 免费 51,PIC,***R单片机它们的... 2页 1下载... (详细比较)***R和51单片机的区别以及编程的区别_工程科技_专业资料。从硬件和编程两个角度,全面的比较了一下***R和51系列单片机的区别。编程... 51单片机与其他单片机的区别_电子/电路_工程科技_...资源相对比 PIC 的多,价格便宜,有很多系列可选,但...内载在线可编程 Flash 的单片机,也叫 ***R 单片机.... STC12C5A60S2单片机同51单片机的基本区别STC12C5A60S2 是 8051 系列单片机,...430单片机与51单片机的主... 暂无评价 1页 1下载券 ***R单片机的复位与51的区... 单片机的对比分析_信息与通信_工程科技_专业资料。介绍了51系列,PIC系列,***R系列...2、***R 单片机概述。 ***R 单片机也是 Atmel 公司的产品, 最早的就是 AT90 ... 51、PIC、***R单片机对比 2页 1下载券 ***R、51系列、PIC单片机... 5页 1下载...单片机在用户板上 即可下载和烧录用户程序,而无需将单片机从生产好的产品上取下... 对比 PIC 的多,价格便宜, ATMEL 单片机(51 单片机...载在线可编 程 Flash 的单片机,也叫 ***R 单片机....和 MSP430 两大系列通用单片机.TMS370 系列单片机是... avr和51单片机的区别_信息与通信_工程科技_专业资料。关于机器人制作的单片机介绍入门首选 AT89S51 系列单片机 1 简介 1980,英特尔公司开发出一种简易的 8031CPU,...