0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是C语言?单片机有什么特点?为什么要用C语言编程?

玩转嵌入式 来源:玩转嵌入式 2023-11-21 10:06 次阅读

随着技术的发展,电子产品越来越多,方便了我们的日常生活,大多数电子产品上都有单片机,而单片机是通过执行软件逻辑来实现功能的。而单片机编程最合适的编程语言是汇编语言,但是最常用、最普及的却是C语言。单片机为什么要用C语言来编程?

1.什么是C语言

C语言最早是在1972年的时候在DEC PDP-11计算机上首次跑起来的,它的设计者是美国人丹尼斯·麦卡利斯泰尔·里奇,他在贝尔实验室为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语言方便模块化编程,可以实现代码的规范化。

39cfe09c-880b-11ee-939d-92fbcf53809c.png

C语言编程

你用C语言编程吗?来评论区讨论一下吧。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44528

    浏览量

    633603
  • Linux
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • C语言
    +关注

    关注

    180

    文章

    7602

    浏览量

    136357
  • 编程
    +关注

    关注

    88

    文章

    3600

    浏览量

    93629
  • 汇编语言
    +关注

    关注

    14

    文章

    409

    浏览量

    35759

原文标题:单片机编程,为什么要用C语言

文章出处:【微信号:玩转嵌入式,微信公众号:玩转嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机C语言编程应注意的若干问题

    本文较详细地分析了单片机C 语言特点,就单片机系统资源对C
    发表于 08-25 14:16 43次下载

    51单片机C语言编程技巧

    51单片机C语言编程技巧
    发表于 07-16 11:17 161次下载

    单片机C语言编程与实例

    单片机C语言编程与实例 学习单片机开发非常不错的资料。
    发表于 01-11 14:50 42次下载

    PIC单片机C语言编程

    PIC单片机C语言编程.pdf
    发表于 12-16 15:44 36次下载

    学习AVR单片机C语言编程的方法和教程说明

    AVR单片机是一种新型高效的单片机,主要的编程语言C语言,但与一般的
    发表于 12-30 08:00 17次下载
    学习AVR<b class='flag-5'>单片机</b><b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>编程</b>的方法和教程说明

    为什么C语言是最适合单片机编程的高级语言

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    的头像 发表于 02-03 16:09 5190次阅读

    单片机C语言C语言为什么差异?

    许多小伙伴在学完C语言后想入门单片机,但学着学着发现明明都是C语言,为什么单片机
    发表于 09-01 16:39 3756次阅读

    单片机c语言编程入门教程

    单片机c语言编程入门教程说难不难,说易不易,学习单片机c语言
    的头像 发表于 07-29 10:39 1.9w次阅读

    单片机c语言+编程c语言_CC ++编程语言什么区别?

    单片机c语言+编程c语言C &
    发表于 11-23 17:51 20次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>c</b><b class='flag-5'>语言</b>+<b class='flag-5'>编程</b><b class='flag-5'>c</b><b class='flag-5'>语言</b>_<b class='flag-5'>C</b>和<b class='flag-5'>C</b> ++<b class='flag-5'>编程</b><b class='flag-5'>语言</b><b class='flag-5'>有</b>什么区别?

    为什么C语言是最适合单片机编程的高级语言

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    发表于 11-23 17:51 13次下载
    为什么<b class='flag-5'>C</b><b class='flag-5'>语言</b>是最适合<b class='flag-5'>单片机</b><b class='flag-5'>编程</b>的高级<b class='flag-5'>语言</b>

    最适合单片机编程的高级语言,除了C语言,别无选择!

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    发表于 11-23 17:51 0次下载
    最适合<b class='flag-5'>单片机</b><b class='flag-5'>编程</b>的高级<b class='flag-5'>语言</b>,除了<b class='flag-5'>C</b><b class='flag-5'>语言</b>,别无选择!

    单片机为什么一直用C语言,不用其他编程语言?只有学过的知道!

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    发表于 11-23 17:51 11次下载
    <b class='flag-5'>单片机</b>为什么一直用<b class='flag-5'>C</b><b class='flag-5'>语言</b>,不用其他<b class='flag-5'>编程</b><b class='flag-5'>语言</b>?只有学过的知道!

    单片机c语言+编程c语言_C编程语言简介

    单片机c语言+编程c语言In this tutorial you will get basic
    发表于 11-29 10:21 38次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>c</b><b class='flag-5'>语言</b>+<b class='flag-5'>编程</b><b class='flag-5'>c</b><b class='flag-5'>语言</b>_<b class='flag-5'>C</b><b class='flag-5'>编程</b><b class='flag-5'>语言</b>简介

    为什么单片机要用C语言编程

    近年来,市场对单片机的需求较为旺盛,单片机已经广泛应用于各个领域,如消费、汽车、家电、工业等等,人们也经常会听到关于芯片、单片机的讨论,那么单片机究竟是什么?芯片和
    发表于 04-11 14:46 2514次阅读

    单片机编程语言哪些选择

    常用的单片机编程语言,以及它们的特点和应用场景: 1. C语言
    的头像 发表于 11-01 14:13 373次阅读