AVR单片机程序能受序列号限制吗?

作者&投稿:苍波 (若有异议请与网页底部的电邮联系)
51单片机的程序移植到avr单片机应该怎样移植 注意什么问题 ?~

  如果是C语言的,有限关键字会有改变,头文件要重新写,函数的一些写法会有所改变,AVR的编译器很多,每种编译器都有自己的独特写法,要先了解编译器后在做移植,成功率会更高。 另外,先要选择好编译器,C编译器如GCC,ICC,CVAVR,IAR等,看自己选哪种编译器,汇编编译器如AVR Studio。
  头文件不需要自己写,每种编译器有自带的头文件,只要#include就可以了,不过要include对。
  二、51单片机(包括STC的)程序移植到AVR平台上需要注意事项
  1) 头文件, 寄存器名,寄存器设置代码都是要相应修改的。
  2) IO端口的位操作要做相应的调整。
  3) 中断服务函数的格式也有不同,需做相应调整 。
  4) 51单片机的端口寄存器复位值为1,因此作为输出端口时,即使程序中不作设置,也会输出高电平, 而AVR单片机中端口寄存 器PORTX 复位值为0, 因此51单片机的程序移植到avr单片机中时一定要注意端口初始化代码, 假设51程序中没有进行初始化,那么端口默认为高, 到了avr中,如果照搬原来的程序,端口就变成低电平,可能导致系统不能正常运行,而且不好查出来问题.
  5) 由于两者对于长字节数据存放的方式不同,从地址到高地址, 51平台上依次存放高字节和低字节, AVR上依次存低字节和高字节, 所以如果程序中涉及到采用联合体或是依次访问内存地址的方法对长字节数据进行分离的话,就要注意低地址里读取的是高字节还是低字节了。比如: union UNI_2BYTE {uint dat; uchar tab[2]; }wdat;
  在这个联合体wdat中, 成员dat是个占2个字节长度的整形数, 那么wdat.tab[0]表示dat的低地址的那一个字节,如果是在keil c中, 由于规定低地址存放高字节, 那么wdat.tab[0]就是dat的高字节; 如果是在IARAVR或者ICCAVR中,由于低地址存放低字节, 那么wdat.tab[0]就是dat的低字节。

  缺点:指令系统复杂,位操作不方便。

  AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口……)于一身,充分体现了单片机技术的从“片自为战向“片上系统SoC过渡的发展方向。
  AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。

当然可以,但怎么控制,怎么去管理这些序列号,就需要你自己去设计了。设计的方式方法非常多,挑几个典型的说一下:
一、权限设计
既然要通过序列号来管理单片机程序的权限,那么这个权限体系就需要设计清楚。一般来说有完整权限和部分权限控制2种。完整权限,即没有序列号,整个程序就不能正常运行;部分权限,即在没有序列号的时候能实现部分功能,有序列号才提供完整功能。
二、序列号算法设计及存储设计
这个部分比较杂,方法也是非常多,但总的核心只有一条,那就是序列号的算法设计。算法设计即生成、验证序列号的具体方法。一般来说,就是一些加密、签名的技术。但因为AVR单片机计算能力有限,因此时间复杂度较高的加密技术(如RSA)并不适用。一般,单片机程序通常采用对MCU的唯一芯片出厂ID号进行算法加密并生成序列号的方法,这样做的好处是,即使完整的复制芯片FLASH和ROM里的数据到另一个新的单片机,也无法正常运行。
有了以上两点基础知识,再加上你自己的探索,应该就可以了。

1.检查硬件电路; 2.检查程序设置和程序漏洞; 3.双击单片机,加载.hex文件路径,配置晶振,其他的默认; 4.先点击暂停键,防止程序死机(破解版一般会这样,还要看电脑配置,这样做比较稳妥),再点击运行键; 5.祝你好运!


AVR单片机都适合做什么项目
AVR都能做的。有的要看你项目的要求,然后在选择合适的MCU。比如你的项目是否需要EEPROM,是否需要A\/D功能。是否需要DSP功能(DSP处理AVR一般不行的,因为AVR的速度是挺快,但是要不能达到DSP所需要的速度)。系统的I\/O口数量,以及系统规模(因为如果系统规模比较大的话。ROM太小的单片机做不了的。...

如何在8位AVR单片机上运行Linux
VR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。AVR已被广泛用于:空调控制板 打印机控制板 智能电表 智能手电筒 LED控制屏 医疗设备 GPS ...

A VR 单片机问题求解
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 单片机 vr 搜索资料 本地图片 图片链接 代码 提交回答 匿名 回答自动保存中为你推荐:特别推荐 “夜猫子”型人的大脑是怎么样的? 流浪地球中的地球太靠近木星会怎样? 在日本接不接受移民?很尴尬! 父母是如何亲手打造“熊孩...

AVR单片机怎么样,如今用的多的单片机是哪个系列的
比较多得是arm avr据说不错 我也没用过 一直在做51 感觉51还是不错的 另外树莓派也很好 性能接近arm 而且视频性能很强(gpu跟xbox初代差不多,玩mc无压力)

单片机控制步进电机的原理?
步进电机控制原理 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号...

单片机vr眼镜
Vr虚拟现实画面同步倍频(Sync-Doubling)画面同步倍频(Sync-Doubling)与前两种显示模式最大的不同,它是用硬件线路而不是软件去产生立体讯号,所以无需任何驱动程序来驱动3D硬件线路,因此任何一个3D加速显示芯片均可支持。只需在软件系统上,对左右眼画面做上下安排便可达成。它的工作原理是通过外加电路的方式在左右画面...

求一个单片机程序
vrevh equ 2Ahvrevl equ 2BhSOUH equ 40h ;子程序入口高位SOU equ 41h ;子程序入口低位RLTH equ 42h ;子程序入口高位RLT equ 43h ;子程序入口低位CNT equ 44h ;子程序用寄存器TEMP1 equ 45h ;子程序用TEMP2 equ 46h ;同上TEMP3 equ 47h ;同上TEMP4 equ 48h ;同上;*** org 0000h NOP goto...

步进电机的单片机控制
1、对步进电机的控制和驱动,设计中受控电机为四相六线制的步进电机(内阻33欧,步进1.8度,额定电压12V)使用L298N芯片驱动电机 L298N芯片可以驱动两个二相电机(如图1-1),也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路...

关于AVR单片机引用头文件slavr.h的问题
7改成PORTA.6就可以了,在你的C程序中还是照样用CS作为你的名字,整个C也不用做修改.(只是举个例子,在你的编译器里可能不能识别这样的位定义,那就要用其它方法进行表示)如果按照你的说法,那就要自己定义了,其实就是改一个名字就OK了,很容易!看一些单片机相关的程序就明白了 ...

MSP430单片机ADDC12电压采集程序
ADC12MCTL0 =(unsigned char)channel; \/\/VR+=VREF+,VR-=AVss ADC12CTL0 |= ENC; \/\/使能 ADC12CTL0 |= ADC12SC; \/\/开始采样转换 while((ADC12IFG & BIT0)==0);return (unsigned int)(ADC12MEM0);} \/ 功 能:单通道采样一次,选用外部参考电压2.5V 入口参数:channel:选择的采...

石家庄市18142659940: 读avr单片机里面的程序有啥条件和要求吗 -
钟彬胞磷: 读avr单片机里面的程序的条件和要求:没被允许私自读出单片机里面的程序是违法的侵权行为,应当征得拥有人的同意授权才可以.否则就是侵权 凭借解密技术私自破解后 才能读出avr单片机里面的程序 呵呵 满意 就选满意回答

石家庄市18142659940: AVR单片机的缺点有哪些? -
钟彬胞磷: 缺点:指令系统复杂,位操作不方便.AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗...

石家庄市18142659940: 请问用在51单片机上的程序直接编程到AVR的单片机里可以吗? -
钟彬胞磷: 不可以,连长的最像51的mega16都不可以,首先avr不可以直接位寻址.如p1.1=0;可以这么写,但不可以写pa.1=0;虽然都可以用C语言编写.AVR端口是真正的双向端口,不像51伪双向.这也是AVR的一项优势,只是操作时大家注意DDRn...

石家庄市18142659940: AVR单片机和51单片机的区别 -
钟彬胞磷: ARM7,9是32位MCU,AVR\51是8位MCU,32位机可以运算非常复杂的指令,进行大量的数据计算,比如视频数据,能力较8位机强很多.运算速度也高好多倍.AVR与51相比采用精简指令集(51是复杂指令集),可以在每个时钟周期内执行一条命...

石家庄市18142659940: AVR单片机与51系列单片机相比有哪些优点? -
钟彬胞磷: AVR单片机的特点 1、速度快 AVR单片机在单一时钟周期内执行功能强大的指令,每MHz可实现阶段MIPS的处理能力,是具有最高MIPS/mW能力的确良8位单片机. AVR单片机采用了大型快速存取寄存器文件和快速单周期指令.其快速存取...

石家庄市18142659940: avr单片机,为什么avr对单个io口的操作不能像51那样,51可以写p1.5,avr却不行, -
钟彬胞磷: 不是不可以.应该是你用的是C编译器不支持位定义.一般用标准的c位操作是这样的:1、位置1:P1^=(1<<5);2、位清0:P1&=~(1<<5); 至于你说的mega16不能对portAB操作,那是不可能的,应该是你程序有问题吧!

石家庄市18142659940: avr 有什么特点?
钟彬胞磷: 1、速度快 AVR单片机在单一时钟周期内执行功能强大的指令,每MHz可实现阶段MIPS的处理能力,是具有最高MIPS/mW能力的确良8位单片机. AVR单片机采用了大型快速存取寄存器文件和快速单周期指令.其快速存取RISC寄存器文件由32...

石家庄市18142659940: AVR单片机与51单片机的异同 -
钟彬胞磷: 如果你是采用C进行编程的话我个认为差别不大,无非是内部资源不同.51是12时钟周期才一机器周期,而AVR是1时钟周期一机器周期,AVR较51单片机速度快且抗干扰能力强.AVR里边一般也是集成了这几个内部接口,像SPI、I2C、AD、...

石家庄市18142659940: 51单片机与AVR单片机区别 -
钟彬胞磷: 简单的说,CPU构架不同,虽然都是8位的,但指令集不同,AVR是用RISC的,哈佛结构的总线;51是用CISC,冯诺衣曼结构的总线.跟AVR比,51是老掉牙的东西,内部资源少,速度慢,但学习简单,是用的最多最精典的单片机.AVR是后来才出来的,工艺上远超过51,内部资源丰富,速度快. 并不是必需得学,但学了最好,学了51再学AVR就快很多了,因为是同一个东西,就像学了一种编程语言一样,学了一门其它的就简单了,因为思路是一样的,只是格式写法不同而以. 单片机的品种多的跟米一样,看你用在什么上,我知道的常用的有AVR,51,PIC等.

石家庄市18142659940: avr单片机编程和8051单片机编程有什么区别?会c51可以直接编avr的程序吗 -
钟彬胞磷: 单片机之间 都差不多,AVR 只是比51系列多出了一些硬件 比如EEPROM 之类的,相应的也就多出了一些控制字 寄存器 和指令 你51要是用C 编的话,哪编写AVR 基本没问题,要是汇编的话,需要 一段时间来适应了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网