随着科技的发展,电子产品越来越多,方便了我们的日常生活。 大多数电子产品都具有微控制器,微控制器通过执行软件逻辑来实现功能。 最适合微控制器编程的编程语言是汇编语言,但最常用和流行的语言是C语言。 为什么单片机要用C语言编程?
1.什么是C语言
C语言于1972年首次在DEC PDP-11计算机上运行。它的设计者是美国人丹尼斯·麦卡利斯特·里奇(Dennis McAllister Rich),他在贝尔实验室设计了UNIX操作系统。 的。 后来他和同事共同编写了C语言编程标准——K&R。 没想到,C语言将来会成为一种广泛应用的编程语言,风靡全世界。 之所以叫C语言,是因为它是在B语言的基础上设计的。
UNIX操作系统、Linux操作系统、MySQL等都是使用C语言编程实现的。
2、单片机有哪些特点?
单片机是一种可编程器件,其控制逻辑是通过软件实现的。 在单片机之前,控制逻辑都是通过纯硬件来实现的,太复杂的逻辑由于硬件逻辑的限制而无法实现。 微控制器具有指令集。 它首先是使用汇编来编程的。 虽然汇编的执行效率很高,但是汇编的可读性和可移植性很差,而C语言正好可以弥补汇编的缺点。
举例:MOVC A, @A+DPTR
功能:将 DPTR+A中的值 作为地址,寻找地址中的内容 送到累加器A中
汇编语言示例
微控制器的寄存器配置。 对单片机进行编程实际上就是对单片机的寄存器和端口进行配置,这既费时又需要精确的控制。
微控制器需要Flash和RAM来存储和执行程序,而这些资源非常有限。 因此,代码占用的空间非常重要。
微控制器都有指令集。 研究过单片机汇编的朋友可能印象中8051单片机有111个指令集和7种不同的寻址模式。
#include
void bubble_sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int main() {
int arr[] = { 22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70 };
int len = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, len);
int i;
for (i = 0; i < len; i++)
printf("%d ", arr[i]);
return 0;
}
冒泡排序的C语言实现
3、为什么要用C语言进行编程?
如前所述,微控制器的汇编指令很难记住。 可能有两种情况:1)改变硬件平台,需要重新适配指令集,更新寄存器访问地址,比较麻烦; 2)更换维护程序,汇编即可 可读性差,需要很长时间才能看懂别人的程序。
C语言更加灵活,正好可以弥补汇编的缺点。
无需记忆单片机的指令集,只需配置寄存器即可使单片机正常工作;
C语言有指针、数组、结构体、联合、枚举等多种类型,大大增强了编程灵活性和程序处理能力;
C语言有利于模块化编程,可以使代码标准化。
C语言编程
你用C语言编程吗? 我们一起在评论区讨论一下吧。