应广单片机应用之--滚码

         在些应用场合,每个单片机需要有不同的地址,比如2.4G通信.应广单片机内部没有EEPROM,那么怎么解决每个单片机有不同的地址/ID呢?滚码就是一个解决方式.先写好代码,然后在烧录的时候可以设置一个初始值和滚动步长.,在初始值的基础上,每烧录一个单片机,码字按步长增加.这样就可以在一定范围你保证每个单片机有不同的地址.常用16bit或32bit,用pms132为例子.上代码.

1.代码如下

BYTE    Roll[4];/*定义数组,用以保存滚码数据*/

/*roll,上电之后或是需要使用的时候调用这个函数,这段代码的实现的目的是从系统指定ROM位置读取数据,并把数据存入RAM中,供其他程序使用*/
void GetRollCode(void)
{
    call    _SYS(ADR.ROLL);     //    读取 Roll:0
    Roll[0] =    A;
    call    _SYS(ADR.ROLL) +1;    //    读取 Roll:1
    Roll[1] =    A;
   // call    _SYS(ADR.ROLL) +2;    //    读取 Roll:2
  //  Roll[2] =    A;
    //call    _SYS(ADR.ROLL) +3;    //    读取 Roll:3
   // Roll[3] =    A;
}

2.只用加入了上述函数 GetRollCode(),烧录器才能显示对应的配置项目。在烧录配置那边可以对初始值和步长进行设置.烧录器要把滚码数据写入指定位置,供程序读取。

3.烧录的时候,滚码会自动按步长增加,这样每个单片机就可以有不同id了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值