很多硬件开发都用C语言编程

单片机的C语言编程称为C51编程,应用C51编程具有以下优点: (1)C51编译器管理内部寄存器和存贮器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题; (2)程序有规范的结构,可分成不同的函数,这种方式具有良好的模块化结构,使已编好程序容易移植; (3)有丰富的子程序库可直接引用,具有较强的数据处理能力,从而大大减少用户编程的工作量; (4)C语言和汇编语言可以交叉使用。 汇编语言程序代码短、运行速度快、但复杂运算编程耗 时。用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,充分发挥两种语言的长处,提高开发效率。 4.1 C51程序结构特点 同标准C一样,C51的程序是由函数组成。C语言的函数以“{”开始,以“}”结束。 其中必须有一个主函数main(),程序的执行从主函数main() 开始,调用其他函数后返回主函数main(),最后在主函数中结束整个程序,而不管函数的排列顺序如何。 C语言的语句规则: 1.每个变量必须先说明后引用。 2.C语言程序一行可以书写多条语句,但每个语句必须以“;”结尾,一个语句也可以多行书写。 3.C语言的注释用/*……*/表示。 4.“{”花括号必须成对,位置随意,多个花括号可同行书写,也可逐行书写。 为层次分明,增加可读性,同一层的“{”花括对齐,采用逐层缩进方式书写。 C语言程序的组成结构: 全局变量说明 /*可被各函数引用*/ main( ) /*主函数*/ { 局部变量说明 /*只在本函数引用*/ 执行语句(包括函数调用语句); } fun1(形式参数表) /*函数1*/ 形式参数说明 { 局部变量说明 执行语句(包括调用其他函数语句) } … funn(形式参数表) /*函数n*/ 形式参数说明 { 局部变量说明 执行语句 } 4.3 C51的数据类型 C51的数据有常量和变量之分。 常量 ——在程序运行中其值不变的量。 数值型常量:可以为十进制数、 十六进制数( 用0x表示)和字符(‘ ’ 括号括起)。 符号型常量:用符号表示常量,此符号需用宏定义指令(#define)对其进行 定义(相当于汇编的“EQU”伪指令) 。 变量 ——在程序运行中其值可以改变的量。 定义一个变量,编译系统就会自动为它安排一个存贮区,具体的地址值 ,用户不必在意。 一个变量由变量名和变量值构成. 变量名:存贮单元地址的符号表示。 变量的值:变量所在地址单元存放的内容。 数据类型:数据的长度。 4.4 数据的存储类型和存储模式 同ANSI C一样,C51规定变量必须先定义后使用。C51对变量的进行定义的格式如下: [存储种类] 数据类型 [存储器类型] 变量名表 其中,存储种类和存储类型是可选项。 一、变量的存储种类 按变量的有效作用范围可以将其划分为局部变量和全局变量;还可以按变量的的存储方式为其划分存储种类。 在C语言中变量有四种存储种类,即自动(auto)、外部(extern)、静态(static)和寄存器(register)。 这四种存储种类与全局变量和局部变量之间的关系如图所示 一、变量的存储种类 2、外部变量(extern) 使用存储种类说明符“extern”定义的变量称为外部变量。 按照缺省规则,凡是在所有函数之前,在函数外部定义的变量都是外部变量,定义时可以不写extern说明符。但是,在一个函数体内说明一个已在该函数体外或别的程序模块文件中定义过的外部变量时,则必须要使用extern说明符。 一个外部变量被定义之后,它就被分配了固定的内存空间。 外部变量的生存期为程序的整个执行时间,即在程序的执行期间外部变量可被随意使用,当一条复合语句执行完毕或是从某一个函数返回时,外部变量的存储空间并不被释放,其值也仍然保留。因此,外部变量属于全局变量。 C语言允许将大型程序分解为若干个独立的程序模块文件,各个模块可分别进行编译,然后再将它们连接在一起。 2、外部变量(extern) 在这种情况下,如果某个变量需要在所有程序模块文件中 使用,只要在一个程序模块文件中将该变量定义成全局变

c语言如何编程硬件,很多硬件开发都用C语言编程.PPT相关推荐

  1. 单片机学c语言还是python好_单片机开发用哪种语言最好?

    在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径.多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言.但是随着现在可用于微处理器的新语言,用户在 ...

  2. python制作辅助和易语言的区别_为什么多数外挂都用易语言?

    写一个答非所问的答案吧,刚看到有人说想举报答非所问的人,额额额,确实,,,,,我这样做算是为易语言正名吧,讲下我的编程经历好了 我也算是个是个易语言忠实用户了,除了写过偷老师插在教室里的U盘的内容外, ...

  3. 科学记数法在c语言中表示方法,c/c++开发分享在C语言中阅读科学记数法

    我正在尝试读取具有以下内容的文件: 1.0000000e + 01 2.9265380e + 03 5.0821200e + 02 4.3231640e + 01 2.0000000e + 01 1. ...

  4. 安卓程序开发需要学习哪些语言

    Android是以Linux为中心的手机操作平台,作为一款开放式的操作系统,跟着Android的快速发展,现在已允许开发者运用多种编程语言来开发Android应用程序,而不像曾经那样只能运用Java语 ...

  5. python与人工智能编程-最适合人工智能开发的5种编程语言,你知道几种?

    原标题:最适合人工智能开发的5种编程语言,你知道几种? 私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包. 人工智能技术的提升不仅为企业的运营带来了效率,而且为人民的生活带来了便利. 迄 ...

  6. Linux开发工具实现C/C++编程

    Linux开发工具实现C/C++编程 文章目录 Linux开发工具实现C/C++编程 1.软件包管理器:yum 如何安装软件 如何卸载软件 2.编辑器:vim 1.常见的三种模式: 2.正常模式下的快 ...

  7. 手机上python编程工具3和3h有区别吗_qpython3h编程 (python手机版)app下载_qpython3h编程 (python手机版) v3.0 安卓版 - D9下载站...

    qpython3h编程 (python手机版) 3.0 分享到: 大小:22 MB 时间:2020-09-01 授权:免费软件 语言:简体中文 平台:Android 软件简介 QPython3手机版是 ...

  8. vc6.0是c语言吗,vc6.0我二级报的是C语言,听说现在C语 – 手机爱问

    2008-05-10 二级 C语言 二级 Visual basic 二级 JAVA 二级 C++ 就是几种语言类型,没别的区别的.就象一个英语,一个日语的. 你可以自己根据情况选学一种 都很简单的. ...

  9. 启明云端分享|大家都知道ESP32-C3是乐鑫5月刚量产的芯片,大家都传是取代ESP8266的,目前也确实有很多客户升级应用选择替换,那Esp8266与Esp32-C3 从硬件到应用开发有哪些不同呢

    提示:ESP32-C3是乐鑫5月刚量产的芯片,大家都传是取代ESP8266的,目前也确实有很多客户升级应用时,选择了ESP32-C3,特别是电工照明类客户,因为ESP32-C3功耗低,又自带蓝牙,价格 ...

最新文章

  1. Opencv java 角点检测 preCornerDetect(15)
  2. php客服窗口,制作一个客服小界面
  3. 谷歌教机器人理解语义,像人一样学习复杂技能 | 附3篇论文
  4. 转: HighCharts 详细使用及API文档说明
  5. Perl通过WIN32 OLE来操作EXCEL
  6. 项目启动时socket自动启动_spring boot 项目在启动时调用接口
  7. 化工原理知识点总结复习重点
  8. VTK:PolyData之CellCentersDemo
  9. 最短网络Agri-Net
  10. 自己动手写spring(三) 支持注解方式
  11. 新闻组的查看方法-----转载
  12. 你需要知道的基础算法知识——STL和基础数据结构(一)
  13. 360搜索、UC浏览器等被3·15点名应用已下架;马斯克宣布通过NFT卖歌;美团App再发力社交,内测 “群聊”功能 |极客头条...
  14. 阿里云免费试用之体验——阿里云serverECS试用心得
  15. Swiper:基础学习
  16. Xshell 6, 7 已过期的解决方案
  17. 科学计数法 (C语言)
  18. 如何破解加密PDF文档
  19. linux脚本回车键是什么,回车是什么意思 回车键功能介绍
  20. 数据库SQL经典面试题详解

热门文章

  1. K210应用2-使用GPIO控制LED状态
  2. open judge 1.6.4
  3. 数据智能让天下没有难做的营销——友盟+首席运营官吕志国 确认出席第七届GDMS!...
  4. 亚马逊跟卖还能做吗?
  5. VBA的参数传递:ByVal 和 ByRef 的区别
  6. Java基于Redis实现附近的人(内附源码)
  7. linux 下的文本处理——除去重复行uniq命令
  8. 微信小程序 | 小程序WXSS-WXML-WXS
  9. 0起步的摄影初学笔记
  10. spring boot参数校验 告别校验胶水代码