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语言编程吗?来评论区讨论一下吧。

审核编辑:汤梓红

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

    关注

    6001

    文章

    43973

    浏览量

    620829
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206734
  • C语言
    +关注

    关注

    180

    文章

    7530

    浏览量

    128604
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92388
  • 汇编语言
    +关注

    关注

    14

    文章

    404

    浏览量

    35193

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

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

收藏 人收藏

    评论

    相关推荐

    PIC单片机C语言编程

    体系和硬件资源深入了解,在这基础之上再来讨论C 语言编程,就有水到渠成的感觉。本书围绕中档系列PIC 单片机来展开讨论,Microchip
    发表于 09-09 14:13

    PIC 单片机C语言编程

    PIC 单片机C语言编程 用 C 语言来开发单片
    发表于 11-03 10:10

    PIC单片机C语言编程

    对PIC单片机的指令体系和硬件资源深入了解,在这基础之上再来讨论C语言编程,就有水到渠成的感觉。本书围绕中档系列PIC
    发表于 03-03 10:55

    C语言单片机编程使用的高级语言

    今天主要分享单片机编程使用的高级语言C语言单片机编程
    发表于 10-20 16:38

    单片机C语言编程实例

    `本书结合目前应用非常广泛的C语言以及Keil C51编译器,详细介绍单片机C语言
    发表于 06-22 10:29

    单片机主要用C语言编程语句

    单片机主要用C语言编程的,而单片机也有自己独有的编程语句,例如,51
    发表于 01-08 06:50

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

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    发表于 07-14 06:21

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

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    发表于 07-14 08:43

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

    特点,就单片机系统资源对C语言编程的制约,汇编与C语言
    发表于 07-15 09:12

    单片机c语言案例教程,单片机C语言案例教程 精选资料分享

    摘要:《单片机C语言案例教程》是中职学校电子类专业单片机课程教材.教材在编写上贴近中职学生的学习特点,以"案例+项目"的形式展开,适合初中以
    发表于 07-19 06:07

    C语言在51单片机编程中的应用技巧哪些

    C语言在51单片机编程中的应用技巧哪些?如何用c语言
    发表于 10-18 08:41

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

    单片机为什么还在用C语言编程单片机编程特点是什么
    发表于 10-19 08:38

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

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机
    发表于 12-03 07:41

    什么是单片机c语言+编程c语言C

    单片机c语言+编程c语言C is probably
    发表于 12-10 08:24

    单片机C语言和汇编语言的混合编程

    . 保持机器语言的优势,具有直接而简洁的功能4. 可维护性和可读性差5. 可移植性差第5章单片机C语言和汇编语言的混合
    发表于 01-25 06:47