第一篇:C语言单片机嵌入式软件编写要点
C单片机嵌入式软件
本质是:
在单片机裸机上写一个操作系统。
技术范围:
软件工程。
具体指标:
一,模块化。
二,层次化。
三,可读性,可扩充性(中断程序少做事)。四,可移植性。
五,追求逻辑简单,不追求占用空间最少。
六,条件判断可以重复判断,追求逻辑和时间解耦。七,可以重复清理现场,提高软件抗干扰能力。八,有心得,请继续增加,大家共享。
第二篇:c语言编写单片机感想
用C语言对单片机编程感想
起先接触单片机,单片机的程序是用汇编语言编写的。汇编语言是面向机器的低级语言,保持了机器语言的优点,具有直接和简捷的特点,目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。但对于一些复杂的程序,汇编语言就显的繁琐,并且效率不高。而C语言简洁紧凑、灵活方便,数据类型丰富。C语言的最大的优点在于它的可移植性好。因此C语言对单片机的一些复杂程序就体现出它的优势。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。因此学习单片机是非常必要的。
在用汇编语言编写MCS–51单片机程序必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器的使用以及按实际地址处理端口数据。
用C语言编写的MCS–51单片机应用程序,则不用像汇编语言那样须具体组织、分配存储器资源和处理端口数据,但在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。
C语言编写单片机应用程序时,需根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言程序不需要考虑这些问题。
C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言有一定的区别。其它的语法规则、程序结构及程序设计方法等与标准的C语言程序设计相同。C51的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同,但C51程序与标准的C程序在以下几个方面不一样:
(1)C51中定义的库函数和标准C语言定义的库函数不同。标准的C语言定义的库函数是按通用微型计算机来定义的,而C51中的库函数是按MCS-51单片机相应情况来定义的。
(2)C51中的数据类型与标准C的数据类型也有一定的区别,在C51中还增加了几种针对MCS-51单片机特有的数据类型。
(3)C51变量的存储模式与标准C中变量的存储模式不一样,C51中变量的存储模式是与MCS-51单片机的存储器紧密相关。
(1)C51与标准C的输入输出处理不一样,C51中的输入输出是通过MCS-51串行口来完成的,输入输出指令执行前必须要对串行口进行初始化。
(5)C51与标准C在函数使用方面也有一定的区别,C51中有专门的中断函数。
学习单片机技术的关键,也就是学习编程,学习编程先要学习指令系统。掌握指令的准确含义、运用条件以及与相关硬件资源的关系;了解硬件资源,诸如内存、中断、计数器、计时器和I/O,以及外部资源等。
其实现在很多人用C语言编程,汇编似乎很落伍了,但是,它还是较机器语言外最直接的描述语言,但是汇编能清楚的反应单片机是怎么样工作的。学习编程的初级阶段,可以从读懂一小段程序开始,由简到繁,由浅入深,逐步到读懂一个较短的完整程序。借鉴现有程序,为一个新的目的修改程序,逐步熟练了就可以运筹资源架构程序。
程序就要会分析程序。程序与文章一样,也有段落,一段程序应该有个明确的目的,分析程序要有段落和架构的概念。不管程序有多长,将它分成若干个段落,简化成架构框图,程序的结构和目的就清晰可见了,也有助于编写程序。
编写程序,往往一气呵成,这时就不太会注意添加注释,其实注释很重要,有助于日后的修改,以及程序的可读性。
要学好单片机不光要会编程,还有重要的一部分是外围电路的拓展,这就要求我们对数电和模电有很好的基础。运用一些芯片来使单片机组成的电路具有更加强大的功能。因此学习单片机是不断尝试和调整的过程,在这个过程中虽然有这样或那样的问题,但能收获许多知道,以及体会成功的欢乐。
第三篇:C语言于单片机的编写感想
C语言于单片机的编写感想
Y=max(m,n)这指的是y=m和n中最大的
这就是C语言和单片机语言的一个思想 C语言和单片机主要是靠逻辑思想来编程。但两者之间也有差别: 应用的函数有的地方不同 编程的格式不同
功能相对而言我感觉C语音更强大一些。C语言真对的是系统 单片机主要是针对机
熟练运用这两种就是现在计算机与自动化机械的基础 学习函数应由浅到深,易于理解。算法也是其主要内容
算法的其中一种在于延时。
延时的作用多用在控制动作的次序以及时间间隔 C++是比较常用的C语言工具
此外还有VB等等
内容的编写主要根据目的任务而定 内容编写应尽量工整,便于读懂和检查
注意编写程序的循环的应用,应避免出现死循环。 注意全局的的变量,不要造成变量冲突 编程模版大致相同。
第四篇:学习plc单片机组态软件,嵌入式的一些心得
学习plc,单片机,组态软件,嵌入式的一些心得
学习plc,单片机,组态软件,嵌入式的一些心得
如果专注于某一兴趣,且投入进去,那么一定会有一种感觉:学习真的没完没了,永远有学不完的东西!
plc,51单片机,嵌入式系统,组态软件等等这些东西要学精学透真的必须踏踏实实的下功夫去钻研,要花大量的时间和精力!同时这些知识必须不断温习和巩固且要去实践,否则即便是当时理解了学会了,过些时日有些知识点便会遗漏掉。
上周用51单片机开发板+固态继电器+DC5V手机充电器+DC24V开关电源+DC24V继电器+飞利浦电风扇红外遥控器这些硬件自己动手做了一个带温度自动控制功能的AC220V遥控电源;虽然体积比较大,但是毕竟是自己的一件DIY作品,还是比较喜欢的。在动手制作的过程中,对硬件的掌握有了更深的认识,尤其是51单片机1602液晶显示出现的一些问题,这些问题如果不是自己动手是不可能发现的!
本周,终于编写plc程序并动手实践接线了。以前总是看书,看程序例子,虽然花了很多时间感觉理论上已经学得很好了,但是通过实践发现理论和实践的距离还是很大的!首先是笔记本电脑和plc的通信问题,我用的是USB通信电缆,即USB--RS485串口通信,打开编程软件后怎么也通信不上,为了这个通信问题我几乎是一晚上没有睡好觉,第二天还不断打电话请教别人,结果是电话费浪费不老少问题依然没有解决。直到第三天通过自己不断实验和设置终于把通信问题解决了!在这个过程中,不断怀疑是不是通信电缆或者plc或者驱动程序有问题,搞得人真的好憔悴。通过实践发现西门子的编程软件功能真的太强大了!对于plc的接线,工作电源等等资源有了更深的认识。真的是:实践出真知!
接下来就要动手实践通过上位机组态软件来控制plc了。这也是一个大工程。
以前总希望自己的一些同事,年轻的大学生多学点业务知识。现在看来真的不要去学习这些东西了。玩硬件是很花钱的,花钱耗精力不说,关键是不能为自己带来经济效益,而且领导根本就不重视技术!在国企,想通过真本事改变命运真的几乎不可能,要想出头还得下血本送礼请客溜须。
自从学上这些东西之后,我是欲罢不能了。因为只有强烈的兴趣而且热爱这些东西,一个人才能孤独的坚持学习。也只有在电子世界我才能有一种归属感!
对于爱学习的人来说,永远有学不完的东西要学,永远觉得时间和精力不够。然而现实是:凡是爱学习的人,爱好钻研技术的人一般是混得不怎么样的人;试想,哪个为官者会花时间和精力去读书钻研专业技术?
世上的众多情感中,我唯独不信爱情!我相信绝大部分人都是将就过日子。什么是爱情?年轻人会有许多美好的憧憬,然而,现实很残酷!爱情是什么?爱情是选择,你有得选择吗?你有资本选择吗?
人只会在危难的时候才能感悟出深刻的道理!身体是人类的万欲之源,如同厚德载物的天地。“身体好,才是真的好!”,试想,有谁会躺在棺材里数钞票,追逐名利,谈情说爱?恐怕还没来得及“试想”,老婆早就改了姓!所以说,一定要珍惜身体,哪怕是行尸走肉也要健健康康的行走!
原以为,组态软件很简单就能学会。组态王和MCGS组态软件不知道哪个更好?就先学MCGS吧!感觉组态软件的脚步程序和一些函数必须要非常熟悉才能组建一个较完善的工程。组态软件和plc构建工程时,plc的程序怎么写呢?这个问题是学习组态软件的最大难点。
STM32的学习,有所停滞;一定要坚持把STM32学透,哪怕花两年的时间。最终要用STM32和固态继电器设计出一个带液晶界面功能强大的近似于万能的plc。不过,这个plc只能用c语言编写程序。
人必须要学会变态!
第五篇:为什么嵌入式要用c语言编写
为什么嵌入式软件要用C语言编写
嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的(不考虑机器语言--)。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言,orz--),使用汇编语言的不多。
相对于C,其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。对于嵌入式系统,性能的瓶颈是非常致命的,很可能某种用C编写的程序可以达到预期目标,而用其它语言使用同样算法编写的程序就不行。(不过也正因为这个原因,在嵌入式系统上实现的可用编程语言并不多。)
基于系统的用途,安全性设计嵌入式系统也是必须考虑的一个部分(比如说用于医疗卫生设施),必须尽可能在开发期间减少潜在的错误。这方面C不占优势,但如果保证代码严格遵守安全规范,也可以接受(相对而言,汇编就郁闷了--)。
开发效率和安全性类似,也在可接受范围之内。
也可以用汇编编写c语言也好 汇编也好 或者更高级的语言都是跟人看和些的让人的思维能够描述出来
然后通过编译环境编译成计算机能看的懂的东西 不同的语言 编译完以后 逻辑上其实都是一样的然后交给芯片去运行要说效率c没有汇编效率高
举个例子
一个韩国工人(计算机)只会懂韩语(机器语言)领导有一个中国人(程序员)只会说汉语(C语言)另一个日本人(程序员)只会说日语(汇编)还有一个西班牙人(程序员)只会说西班牙语(另一种高级语言比如java)想让韩国人做同样一个事情中国人用汉语说完经过翻译(编译系统)变成韩国语韩国工人明白了要干什么日本人用日语通过翻译 变成韩国语韩国工人也知道要干什么了另一个西班牙人 用西班牙语 翻译成韩国语让韩国人干的是同一个活翻译完的结果是一样的 只是不同语言表达罢了c语言更方便 移植性更强(比汇编)
我目前接触的一般的嵌入式上层软件 c语言就可以搞定
如果遇到比较严格的或者军工的甲方
c语言搭钩框架,然后剩下的全部用汇编语言实现
之所以用c 是因为c比汇编操作简单
调试方便 开发效率较高
但是代码运行效率可能没那么
而且汇编可以精确定时,代码运行时间是可以计算出来的因为C效率高~相对其他高级语言代码所占用的空间少~通用性也不错
所以要用C喽
嵌入式的芯片ROM有限