单片机到嵌入式之路序列之一:简单的讨论一下C语言知识
2015-05-29
一、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语言*,这仅仅只是一个方面,像指针、函数、联合体等等都是重点,链表等等都是经典。