单片机编程器
单片机为什么还在用C语言编程?单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,
单片机为什么还在用C语言编程?
单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。
这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是:不能不能,而是不合适。
一、单片机编程的特点
对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。
第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。
第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。
二、高级语言编写单片机程序的缺陷
高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。
高级语言无法实现精确的时序控制。
三、C语言是一个折中选择
其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。
而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位
求单片机编程软件教程?
本人从事单片机软硬件开发15年,对单片机软硬件开发有着比较执着的热爱。
题主所问并不是太明确,这里说一下单片机软件开发涉及到的几个专业名称:
单片机编程语言:就是写单片机软件代码所用的计算机高级语言。一般用C语言的比较多。比较古老的有用汇编语言的,现在用得极少了,只是在一些特殊情况才用。
单片机软件开发平台(或者叫开发环境):就是在PC里运行的一种专业的文字编辑工具和软件编译工具的结合体。
如果在电脑Office Word里用汉语写小说,那么Word就相当于开发平台(开发环境),汉语就相当于C语言,小说就是所开发的单片机软件。
世界上单片机种类有上千种,其所用的开发平台也各不相同。同一种单片机可以采用多个平台进行软件开发,同一个开发平台也一般支持多个系列的单片机,两者互相交错掺杂,没有规律可循,这些基本上都是纯商业市场因素以及公司之间的互利合作而成的最终结果。而且这一切还在不断变化和演进,因为技术的进步永不停息。
题主所问没有指明是具体哪一个系列或哪个品牌的单片机,也没有说清楚是编程语言还是开发平台(开发平台也是软件)。
如果是指编程语言,那就简单了,一般是用C语言进行编程,找一本谭浩强老师的C语言书,清华大学出版的,就可以了。
如果是指开发平台的教程,那就太多了,单片机种类太多,其开发平台也太多,主要是看准备用哪款单片机才能决定。例如
最经典的51单片机,可以用Keil开发平台,有关Keil的学习资料太多了,网上随便能搜出一大堆。相关的书籍也很多。
还有飞思卡尔单片机用的Codeworrio,ST公司的STM8系列单片机用IAR等等。这些常用的单片机开发平台,在网上都能搜到很多教程。
如果是比较冷门的单片机开发平台,一般可以从对应的单片机厂家技术支持那里获取技术帮助。
大家有单片机方面的疑问可以私信我,或者关注我的头条号,我会定期给大家分享单片机开发的经验和专业技术信息。
单片机是用什么编程的?
首先回答一下单片机是用什么编程的?后边详细会举例子!
单片机编程的语言即可以用C,也可以用汇编。
用汇编的优势主要是程序可以被编程者优化,这样就可以绝对可控,程序的安全性和执行速度受编程者水平限制,不过总的执行速度较c语言快,代码占程序存储器的容量较C语言小。这样汇编程序更适合程序存储器和数据存储器较小的老式单片机。但是汇编程序毕竟是机器语言的汇编助记符。所以存在指令难记,指令功能弱的缺点,造成学习困难。
C语言优势与缺点正好与汇编语言相反,C语言虽然毕竟是一种高级语言,具有较好的学习性,几乎不必记忆指令,学习容易,而且编译时的优化由编译器管理,一般不受编程者水平限制。由于机器优化的局限性,C语言总的执行速度较汇编语言慢,代码占程序存储器的容量较汇编语言大。这样,C程序更适合程序存储器和数据存储器较大的新式单片机。
初学者建议先使用C语言快速入门,再去研究汇编,优化程序设计。
下边给大家分别用汇编和C编写~LED灯的循环移动
汇编
org 00h
start:mov r0,#8;
mov a,#1111110b;
loop:mov p1,a
rla
call delay
djnz r0,loop
jmp start
DELAY:MOV R5,#20;延时子程序,延时0.2秒
D1:MOV R6,#20
D2:MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
end
C
#include
void delay100ms();//如果函数是在主函数后面定义,那么一定要在主函数前面声明
void main()
{
int i;
i=0xfe;
while(1)
{P1=i;
i--;
delay100ms();
if(i==0)
i=0xfe;
}
}
void delay100ms(void)//
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=230;a>0;a--)
}
2018.3.12
电气电子视界
欢迎您的关注点赞评论
单片机指什么?
单片机(MCU)是由运算器(ALU)、控制器、存储器(ROM、RAM、EEPROM)、输入输出端口(I/O)等组成的一种集成芯片。
目前常见的两种单片机架构-冯.诺依曼架构(51单片机)和哈佛架构(stm单片机、pic单片机等)。
单片机本身是不带程序的,要实现相应的系统功能则需要对单片机进行编程。目前大部分单片机都支持汇编语言、C语言编程。工程师利用汇编语言或者C语言编写的程序就相当于赋予单片机的灵魂。通过编程可以实现相应的系统功能。
下面通过对比人体结构来讲一下单片机内部结构的功能。
1、单片机的时钟相当于人类的心脏,为单片机提供了时基脉搏。
2、单片机的I/O口则相当于人体的神经,单片机通过I/O口向外部发送和获取信号。而通过在外部添加各种传感器等外设,如光传感、湿度传感以及蜂鸣器等,就相当于给单片机系统添加了眼、鼻、嘴等五官;通过添加电机控制等设备就相当于添加了四肢。
3、单片机的ROM等存储器,也相当于大脑的记忆区。
4、单片机除了以上必须有的功能外,通常还会有一些外设:
定时器,相当于闹钟,定时计数作用。
ADC,采集模拟电压。
IIC/SPI,通讯接口,芯片间近距离通信,相当于人与人当面聊天。
USART,异步串行口通讯,485/232远程通讯使用,相当于人远距离通话。
综上,通过对单片机编程可以实现对整个系统的控制,单片机则相当于系统的大脑。
大专生做嵌入式单片机编程前景如何?
大专生做单片机编程要立足自身数学基础较差的现实,可在STC51,STM8,STM32等MCU无需操作系统的小型应用系统或单功能产品中大现身手,避免好高骛远,钻进去搞一些那种A8,A10等ARM MCU带操作系统的,比如图像处理、语音识别、云数据处理、人工智能等大制作系统或系统性产品。
单片机会被淘汰吗?
我从大学开始可以说是一直在玩单片机,现在是一名嵌入式软件工程师,可以说是经历了单片机从51为主流,然后群雄争霸,最后STM32横流单片机界的过程。ARM和51是一个内核的区分,ARM也是属于单片机的一种。传统的8位单片机和16位单片机目前来源从成本上和从功能上已经不及新出的单片机的,但是淘汰的只是老的单片机型号,51内核我认为不会淘汰,现在很多厂家在51内核上新增很多功能,满足市场需求。单片机只会越发展越强大,不会淘汰。
本文来自投稿,不代表本站立场,如若转载,请注明出处。