单片机编程学习或c语言

基于单片机C语言编程格式
> 基于单片机C语言编程格式
基于单片机C语言编程格式
1. 凡是注解均用如下长度的字符数,此数是正常情况下在keil中A4纸的打印长度(105个字符),在word中设置左右边距为1.0cm。//本文引用地址:2. 文件头的格式:/** Company Name* Address** (c) Copyright 20xx, Company Name, City, State* All Rights Reserved*** FileName :* Version :* Programmer(s) :* Description :***/3. 函数头的格式:/** FunctionName :* Description :* EntryParameter :* ReturnValue :*/4. 文件结束格式:/** End Of File*/5. 文件管理: 对于文件的管理来说,应把每一个程序模块分成两份。一个是C语言源代码,一个对应的头文件,且放在一个文件夹中。例如,关于LCD1602的驱动模块,应该分为LCD1602.C和LCD1602.H,并放在LCD1602文件夹中。LCD1602.C中包含的是驱动程序的源代码,尽量做到与移植无关;LCD1602.H中应该包含函数的申明部分、宏定义、全局变量的申明接管脚定义等,也就是与移植相关的部分。 对于main.c函数应该对于config.h头文件。main.c中为应用程序的主程序部分,负责把各个模块联系起来;而config.h头文件为整个系统的配置文件,里边除了编写不依赖于编译器的数据类型的定义外,还应该把整个工程需要的所有程序模块均包含进来,这样每一个程序模块中都只需要包含config.h头文件即可。6. 命名规则: A. 函数命名: 函数名均由大写字母开头,单词之间也应用大写区别,为了移植以后程序模块的函数名不重复,应在程序模块的每一个函数名中加上模块名。如: LCDWriteData(),LCD表示液晶模块,WriteData写数据到液晶模块中。至于下划线的带与否,可以用与区分是函数的内部函数与否,也就是说,如果带下划线,表示为模块内部函数,应用程序可能不需要调用,模块内部调用;不带下划线表示为应用程序需要调用的函数。 B. 变量命名: 全局变量 -- 大写字母开头,并且加上文件名为变量前缀。 局部变量 -- 小写字母开头, 内部变量 -- 用简单字母表示,如:循环用i,j,k等;指针 - p,字符 - c,字符串 - s。 总结:形式参数 -- 在函数中应也小写开头; 自动变量 -- 小写字母; 静态变量 -- 大写开头; 外部变量 -- 文件名开头; 函数命名 -- 文件名开头。7. 注解规则: 对于函数的注解均该应&//&来表示,而不是&//&。因为前者表示后,如果想把整段代码注释掉只要加上后者,但如果一开始就用了后者,再想注释掉整段代码就比较麻烦了。注解应该对齐,如果一行写不下,可以写在代码的前面一行,也可以在后面一行继续编写。8. 代码编写格式: 对于代码的编写格式,将严格按照《c语言编程规范》来编写。9. 宏的定义: 常数和宏定义要用全大写表示,单词之间可以用下划线分割开。十六进制要用&0x&开头,其后的字母一定要用大写表示。如果是定义的是常量不需要加括号,但是表示的是一个或更多的语句时应该加上括号,而要替代的表达式均应加括号。如: #define KEY_FF (0x0F) // 常量定义,常量后不加括号,表达式加括号 #define KEY_BUF_FULL() (KeyNRd > 0) // 语句应加括号10. 数据类型: typedef unsigned char B // Boolean 位变量 typedef unsigned char uint8; // defined for unsigned 8-bits integer variable 无符号8位整型变量 typedef signed char int8; // defined for signed 8-bits integer variable 有符号8位整型变量 typedef unsigned short uint16; // defined for unsigned 16-bits integer variable 无符号16位整型变量 typedef signed short int16; // defined for signed 16-bits integer variable 有符号16位整型变量 typedef unsigned int uint32; // defined for unsigned 32-bits integer variable 无符号32位整型变量 typedef signed int int32; // defined for signed 32-bits integer variable 有符号32位整型变量 typedef float fp32; // single precision floating point variable (32bits) 单精度浮点数(32位长度) typedef double fp64; // double precision floating point variable (64bits) 双精度浮点数(64位长度)11. 局部变量: 一些程序模块会用到局部变量,这些局部变量只用于这个模块中,应将这些局部变量隐藏起来,不让别的文件看到。则应该在这写变量前加上static关键字实现。12. 括号应用: 在多个运算符存在的条件下,应该应用括号,避免优先级的错误及阅读方便。如: ssY = ssM * ssX + ssB; 应写成 : ssY = ((ssM * ssX) + ssB);13. 真假定义: 当定义逻辑对立面时,基于原始的陈述,以宏的方式,首先定义其中一种逻辑情形,然后再定义相反的另一种情形。 #define TRUE (1) #define FALSE (!TRUE)
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一当前位置浏览文章
C语言是面向过程的,而C++是面向对象的C和C++的区别:C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或者环境条件)进行运算解决得到输出(或者实现过程(事务)控制)。C++,首要考虑的是如何构造一个对象模型,让这个模型可以够契合与之对应的问题域,这样即可以通过获取对象的状态信息得到输出或者实现过程(事务)控制。 所以C与C++的最大区别在于它们的使用于处理问题的思想方法不一样。之所以说C++比C更先进,是由于“ 设计这个概念已经被融入到C++之中 ”。C与C++的最大区别:在于它们的使用于处理问题的思想方法不一样。之所以说C++比C更先进,是由于“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计假如没有好的算法,一样不行。而且,“C加上好的设计”也可以写出非常好的东西。单片机有些人也称为是MCU(Micro-ControllerUnit)微控制单元是一种集成电路芯片。它是将中央解决器(对于单片机来讲是内核更贴切)单元,数据存储器RAM,程序存储器ROM,输入输出端I/O,中断系统,以及外设单元(定时器、脉宽调制PWM发生器、AD转换器等)一律集成到一块芯片内部,使之成为具备运算和控制功可以的微小计算机系统。目前随着微电子技术的不断发展,可以够设计单片机的公司越来越多,因而市场上的单片机型号也各种各样,但是内核单元基本相同,只是不同公司的单片机在外设和功耗上有所区别。因而对于不同类型单片机的开发程序流程的原理基本还是一致的。目前,常见的单片机内核有51的,代表的单片机有:宏晶的STC系列比方:STC89、STC12、STC15等等;Atmel(已经被microchip收购)的AT89系列;还有Philips(飞利浦)、华邦、Dallas(拉达斯)、Siemens(西门子)等公司的许多产品。另外还有少量其余内核的单片机,比方AVR系列、PIC系列、STM8系列等。再就是基于ARM内核的单片机常见的比方ST公司的STM32系列(16位)。根据单片机解决字长的大小能分为8位、16位以及32位单片机。在初学者中最常使用的是8位的单片机。单片机在工作中通过运行存储在ROM里面的指令(二进制码)来实现运算和控制的。而存储在ROM内的指令是我们人为的设计的流程(称为是程序)。因而要实现对单片机各个资源(端口,定时器,计数器等)的控制就需要通过编写程序烧写到单片机的ROM内,从而实现对单片机的控制。实际在编写单片机程序的时候,很多有经验的都采使用汇编语言来实现对程序的编写,但是因为不同内核单片机的汇编指令有所不同,因而汇编语言的通使用性比较差。因为目前编译器的不断完善,使得C语言越来越成为了开发单片机程序的机器语言,因为C语言的标准化,使得其具备通使用性,用不同的编译软件能实现C编写的程序在不同单片机之间进行移植。单片机的C语言的标准的C语言区别不是特别显著,只是因为单片机资源的限制(RAM和ROM一般都比较小),使得单片机C语言中的数据类型的长度会有所不同(实际是编译器来决定的)。同时也因为单片机自身的特点也使得C语言有了扩展,比方单片机中位定义sbit的使用法,这在后面的课程中会使用到。因而对于单片机的开发的主要流程是:小编推荐一个学C语言/C++的学习裙【
七三零,一三零,二二一
】,无论你是大牛还是小白,是想转行还是想入行都能来理解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!后面的课程中我们选使用的是基于51内核的宏晶的STC15系列单片,和Keil V4软件来进行讲解,在讲解过程中也有可可以会涉及到STM8(ISA软件)的开发。最后我们利使用C语言中最经典的Hello World来实现我们的第一个程序。在这里我们直接用printf函数向串口输出“Welcome To MCU World!”(其函数的意义和使用法将会在串口中讲解),其代码如下:#include
//包含51单片机的寄存器头文件#include
//包含C库的标准IO文件void main (void) {//主函数SCON = 0x50; //单片机的串口方式选择TMOD |= 0x20; //波特率时钟发生器TH1 = 221; //波特率TR1 = 1; //开启时钟TI = 1; // TI:调使用put)的时候判断发送能否完成,有点相似于非//中断内发送数据的格式while (1) { //死循环printf ("Welcome To MCU World "); // 向串口发送 "Welcome To MCU World!"}}小编推荐一个学C语言/C++的学习裙【
七三零,一三零,二二一
】,无论你是大牛还是小白,是想转行还是想入行都能来理解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!这是运行的结果,欢迎来到单片机世界,希望我的讲解可以够该大家带来肯定的帮助。下次我们的主要内容是讲解单片机的内部资源和Keil开发软件的用,如何搭建单片机的开发环境,并进行实践,将前面的开发流程和实际联络起来,从实践上有个理解,谢谢大家!这些是C/C++可以做的服务器开发工程师、人工智可以、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像解决、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等单片机C语言运算符_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机C语言运算符
你可能喜欢单片机和C语言编程学习之间有什么联系呢?_百度知道
单片机和C语言编程学习之间有什么联系呢?
我是学计算机科学与技术专业的学生,我们学校取消了关于单片机的课程,但是老师说最好学习一下,我想听听大家的意见,谢谢了!
我有更好的答案
单片机是一种小型计算机,而C语言是是一种计算机语言。计算机通过执行程序来读懂人类的控制指令。学习单片机,就是让单片机智能化,能按照人的意志执行指令,如关窗或者开窗等动作。在控制单片机执行动作时,人需要通过编写C程序来让计算机执行动作。综上,C语言是人与单片机等计算机进行交流的工具。
采纳率:61%
在单片机开发过程中,经常用到C语言和汇编语言。汇编语言是一种用文字助记符来表示及其指令的符号语言,是最接近机器码的一种语言,其主要优点是占用资源少,程序执行效率高,但是不同的CPU,其汇编语言可能有所差异,所以不易移植。C语言是一种结构化的高级语言,其优点是可读性好,移植容易,是普遍使用的一种计算机语言,缺点是占用资源较多,执行效率没有汇编高。对于目前使用的RISE架构的8位单片机来说,其内部ROM,RAM,STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够,堆栈溢出来等问题,而汇编语言,一条指令对应一条机器码,每一步的执行动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数,运算速度快,编译效率高,有良好的可移植性,而且可以直接实现对系统硬件的控制。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流,作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。对于单片机的初学者来说,应该从汇编学起,可以加深初学者对单片机各个功能模块的了解,从而打好扎实的基础。有兴趣可以加,一起学习探讨单片机,还有免费的学习资料提供
上海灵训IT教育
本回答被提问者采纳
现在单片机已经不常用了,比较多的是DSP。比较灵活,而且运算能力强。DSP可以用高级语言编程。所以学校取消单片机编程是对的。C语言现在也不常用,不如直接学习C++或JAVA。
单片机中的程序,可以使用C语言编程,也可以使用汇编或者其他语言.单片机本身是硬件,程序是软件,二者结合才可以正常使用.
我觉得最好学一下,单片机要好多好多种,你可以从简单的一种单片机学起,其他单片机在学就好学多了。我们当时学的是80C51,还有好多如AVR,PIC等等你可以在网上看一下种类然后看一下自己易懂得学习一下。现在单片机应用很广泛的,加上自己又是计算机的,C应该很不错,学学单片机方面的C编程,会很有好处的,可以的话买块实验板最好了。
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
c语言编程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言与单片机C语言的区别 急求_百度知道
C语言与单片机C语言的区别 急求
现在学的C语言 发现书本上的C语言和单片机的C语言是有区别的
C语言的基本知道了
但单片机的C语言基本不知道(那些特殊的指令等,)
单片机C语言的基本编程思想也没有
哪位大哥 可以给我这些东西
我现在C语言基本学完了
但单片机还没开始学
只是稍微了解一些
我有更好的答案
语法、运算符和变量规则都一样,由于CPU不同,所以库函数都不一样。在普通C中常用的头文件是stdio.h,在单片机(51为例)常用的头文件是reg51.h或reg52.h。单片机面向的是硬件环境更多一些。常用函数printf,普通C中输出到屏幕,单片机中输出到串口。等等,具体的需要自己去挖掘。
高级工程师
既然你c语言学完了,那么单片机上面的就不难了,建议你去看 十天学会单片机这个视频,买个开发板,淘宝上看看,不贵。自己练练模块,就慢慢会了
理论上讲应该不算是区别,单片机C语言侧重于对于单片机上的一些处理,提供了相应的一些功能性函数等,可以理解为C语言的一种扩展
有什么不一样,都一样,基本都是标准C90,所谓不一样的东西都是编译器的事,什么51的sbit,AVR的#pragma data:data,这些都是编译器定义的,每次更换编译器注意一点就行了。什么特殊功能上网搜索一下,都有。单片机主要是把外围设备搞明白就行,用哪个学哪个,比如串口,TIMER,SPI,I2C,ADC这些,这些跑起来之后,就是堆代码了,判断个逻辑,驱动个IO状态变化,从串口出个数,从SPI取个东西什么的。都是用哪个就去看这段的手册。
主要是IO口、中断及寄存器,不太一样。单片机c语言增加了一些基本的指令 变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。但是在单片机上的C语言多了一些特定的指令,如SFR定义寄存器指令,在标准C上是没有的; 在标准C上的有些库,在单片机上是不支持的, 可以这么说,单片机C是标准C的子集,在这基础上,加上了一些单片机特定的指令构成。
区别不太大,基本语法都一样,就是每个型号的单片机都有自己的头文件,还有sbit 位定义,sfr寄存器定义,C语言里好多操作都是用不到的,例如文件操作啊什么的。按我的感觉单片机编程就是控制单片机按照你的需要来输出引脚的高低电平,找找教程练练基础挺简单的。
其他32条回答
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 单片机c语言编程入门 的文章

 

随机推荐