快捷搜索:

【单片机到嵌入式之路】序列之1:简单的讨论一下C语言知识

  1.可移植性强;

  2.开发速度快,效率高;

  3.结构清晰

  4....

  二、C语言的位操作

  在单片机中C语言的位操作用的比较多,而且用的好对代码的执行效率都是很有帮助的,下面简单介绍一下在单片机中的应用,就算是抛砖引玉吧。

  定义一个8位的寄存器(0xF0是寄存器的地址):

  #define REG 0xDE

  1)对单个的位进行赋值

  (1)将寄存器REG的第2位置“1”

  REG |= (1 << 2);

  (2)将寄存器REG的第2位清零

  REG &= ~(1 << 2);

  (3)将寄存器REG的第2和第4位置“1”

  REG |= (1 << 4) | (1 << 2);

  (4)将寄存器REG的第3和5位清零

  REG &= ~( (1 << 5) | (1 << 3) );

  所以书上就出了一些口诀:

  位置1使用位运算"|"

  位置0使用位运算"&"

  三、C语言的结构体在单片机中的应用

  结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。但是有时候结构体会涉及一些比较麻烦的事情:结构体的大小与内存对齐。这个暂时不解释。下面主要讲解一下如何应用。

  比如在时钟程序中,经常就会用到结构体,结构体用的好,事半功倍。

  //定义一个时间结构体

  typedef struct

  {

  u16 Year;

  u8 Month;

  u8 Day;

  u8 Week;

  u8 Hour;

  u8 Min;

  u8 Sec;

  }Dtime;

  像上面这种太普通了,下面来个难点的。

  //时间结构体

  Dtime SetTM;

  typedef struct{

  short Min; //最小值

  short Max; //最大值

  short Tv; //变量

  }Limi; 这个结构体就可以通过按键来控制,按键加减可以调节时间。

  其实C语言*,这仅仅只是一个方面,像指针、函数、联合体等等都是重点,链表等等都是经典。

  先休息了,有空再继续。。。

您可能还会对下面的文章感兴趣: