应广单片机mini-c中用指针实现数组数功能

        在应广单片机的mini-c中,数组功能弱化,数组的下标不能是变量;比如array[i++]=0;是编译不通过的,如果要实现数组数据填充和数据拷贝,必须一个一个填充吗?不,那使用指针了.mini-c中,定义一个16bit的数就可以当成指针用.不多说,上代码

1.数组的连续寻址比如数据填充和拷贝,可以用指针+循环替换;

2.如果数组的下标是一个变量,那就必须用指针才能实现了;

3.如果数组的下标是一个固定的数,用数组原有操作方法就OK了;


#include    "extern.h"
/*************常用宏定义*******************/
#define     HIGH    1
#define  LOW    0

#define DISABLE 0
#define ENABLE 1

#define EMPTY 0
#define FULL 1

#define ON 1
#define OFF 0

/*************端口定义*******************/
BIT     LED_G       :        PA.3;
BIT     TRG           :        PA.4;

#define GRE_LED_FLASH  {if(LED_G){LED_G=0;}else{ LED_G=1;}}


/*****************LED*******************/
BIT ubMsFlag; 

/****************系统时钟*********************/
byte    count;
word    usTmrCnt;
bit     FLAG_NMS;
/**************T16*************************/
void    TIME16_Init(void)
{
    usTmrCnt=488;
    ubMsFlag=0;
    /*计算方法16M/*/
    $    T16M    IHRC,/1,BIT15;   
    
    INTEN.T16 =1;/*开启定时中断*/
    
    Intrq.T16 =0;/*清除中断请求*/
}

/*定义数组*/
byte ucBindChn[10];

/*定义数组*/
byte ucTxDat[10];

/*定义指针*/
word point;
/*定义指针*/
word uspChn;

void    FPPA0 (void)
{
    .ADJUST_IC    SYSCLK=IHRC/8, IHRC=16MHz,init_ram, VDD=3.0V;
    $ CLKMD IHRC/8,En_IHRC,En_ILRC,En_WatchDog;
    .delay 40000;

    byte i;
    byte ucDat;
    
    $  LED_G     OUT,HIGH;

     $ TRG  in,pull;
 
    TIME16_Init();
    
    
       ENGINT //全局中断开启
       

    
    while (1)
    {
            wdreset;

         /*取地址,吧数组的地址给到指针*/
         point=ucTxDat;
         /*循环次数,实现数据存入数组*/
         i=10;
         while(i--)
         {
            /*数据存入数组,把i存入数组*/
            *point=i;
            /*更新指针*/
             point++;
         }

        /* 以上代码执行完成的话 ucTxDat[] 中填入了0-9的数了,实现数据填充*/


         /*取地址,可以此处设置断点查看结果*/
         uspChn=ucBindChn;
         /*取地址,实现数组之间数据拷贝*/
         point=ucTxDat;

         i=10;
         while(i--)
         {
            /*数据拷贝,*/
            *uspChn=*point;
            /*更新源指针*/
             point++;
             /*更新目的指针*/
             uspChn++;
         }

          /* 以上代码执行完成的话,ucTxDat[] 中的数,拷贝到ucBindChn[]了,实现数据拷贝*/
        
         /*要使用指针实现随机寻址,可以用下面操作*/

          i=0;/*假如这个i是别处传过来的变量*/

         /* 比如要实现dat=ucTxDat[i],如果i是别处传过来的变量,那么用以下方式*/
          point=ucTxDat;
          point+=i;
          ucDat=*point;

         /*如果i是一个具体数或固定数,不如这样方便*/
          ucDat=ucTxDat[0];


         /*1ms定时时间到*/
         if( FLAG_NMS )
         {
             
            FLAG_NMS=0;
        }

    }
}

void    Interrupt ( void )
{
    pushaf;

    if ( Intrq.T16 )  
    {

        Intrq.T16    =    0;
        
        STT16 usTmrCnt;
        
        if ( count>0 )
        {
            count--;
        }
        else
        {
            count   =   9;
            /*1ms*/
            FLAG_NMS=   1;  

           
        }

    }

    popaf;
}

/*end create by zhongvv QQ:85547259*/
 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 应该广泛地使用单片机Mini C编程指南PDF文件。现在,单片机在嵌入式系统中得到了广泛应用,掌握单片机编程技能对于学习和工作都非常重要。Mini C编程指南提供了详细的说明和示例,有助于初学者快速入门,掌握基本的编程概念和技巧。 这本指南覆盖了从基本的语法和数据类型到复杂的控制结构和函数的使用,使读者能够了解和掌握C语言在单片机编程中的运用。此外,Mini C编程指南还介绍了各种单片机的特性和嵌入式系统开发的一般步骤,帮助读者了解如何将编写的代码转换为可以在硬件上运行的程序。 通过学习Mini C编程指南,读者可以掌握单片机编程的基本知识和技能。无论是想要开发自己的嵌入式系统还是进行学术研究,这本指南都能够提供必要的信息和指导。同时,Mini C编程指南还可以为已经有一定单片机编程经验的人提供更深入的学习和进一步提升的机会。 总而言之,单片机Mini C编程指南是一本必备的工具书,对于想要学习和掌握单片机编程的人来说非常重要。它可以帮助读者快速入门,并提供更深入的学习和进一步提升的机会。通过广泛使用这本指南,读者将能够在嵌入式系统开发领域中取得更好的成就。 ### 回答2: 广单片机mini C编程指南是一本非常实用的指南,适合初学者和有一定基础的学习者。该指南涵盖了广泛的主题,包括C语言基础、单片机编程原理、输入输出控制、中断处理等。以下是我对该指南的评价。 首先,该指南以简洁清晰的语言介绍了C语言的基本概念和语法。通过详细的代码示例和解释,读者能够快速了解C语言的要点和常见的编程技巧。 其次,该指南深入讲解了单片机编程的原理和常用的开发工具。通过介绍硬件和软件的结构,读者可以了解单片机的工作原理,从而更好地理解编程中的各个环节。 另外,该指南还特别强调了输入输出控制和中断处理的重要性。对于控制外部设备和响应外部事件,这两个方面的知识是必不可少的。指南以实例场景为背景,讲解了常见的输入输出和中断处理案例,读者可以通过这些案例的学习加深对这两个方面的理解。 总的来说,广单片机mini C编程指南是一本很好的学习资源。它系统性地介绍了C语言和单片机编程的基础知识,适合初学者入门。对于有一定基础的学习者来说,它也提供了更深入的内容,使他们能够更好地理解和应用C语言来进行单片机编程。强烈推荐这本指南给那些想要学习和提升单片机编程能力的人。 ### 回答3: 当然应该有一份广单片机mini c编程指南的PDF文档。广单片机是一种非常受欢迎的单片机系列,使用广泛,因此提供一份详细的编程指南非常有必要。 广单片机mini c编程指南应该包括以下内容:首先,指南应该介绍广单片机的基本特点和功能,包括其架构、内部寄存器和外围设备的功能等等,使读者能够全面了解广单片机的结构和特点。 其次,编程指南应该详细介绍广单片机的编程语言——mini c。这种编程语言简洁易懂,易于学习和使用,并且具有很高的可移植性。指南中应该包含mini c的语法和常用语句的解释和示例,以及编程的基本方法和技巧。 除了语法和基本知识外,指南还应该提供广单片机mini c编程的一些高级应用,例如通信协议的实现、外部设备的控制和数据处理等。这些应用将帮助读者更深入地了解广单片机的应用领域和潜力。 最后,编程指南还应该提供一些实例和项目,供读者进行实践和练习。这些实例和项目可以覆盖广单片机的各个方面,并能够帮助读者将所学知识应用到实际项目中。 通过这样一份详尽的广单片机mini c编程指南PDF,读者将能够全面学习和掌握广单片机的编程技巧和应用。这将有助于他们在实际项目中使用广单片机进行开发和应用,并提高他们的编程能力和技术水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值