相信很多初学者都有同样的疑问,也有同样的希望。就是用C++语言来写单片机程序的源代码。现在我来解释一下单片机的源代码程序几乎没有人用C++来写的。\x0d\1 假设一下你现在用C++写完了一个程序代码。那么你要让单片机认识必须要编译吧,对吧 。请问你有合适的编译软件来编译你的代码吗?\x0d\2 就算有编译器能编译,你能保证它的代码效率一定能给单片机用吗?\x0d\ 单片机的ROM是K级的水平,执行指令的速度也远远小于PC。绝对不能和PC机相比的。这个就决定了单片机编程时很多时候要考虑它的代码效率和代码大小问题。所以一般情况下对于单片机编程我们之用汇编语言或者C语言。就算是用C写程序也要注意代码的效率等问题。\x0d\ 还有就是只有很大型的项目及应用程序开发才有可能有C++来写程序。一般的系统文件,应用程序都是用C来写的。有的系统代码甚至要用汇编语言来写。\x0d\举个生活中的例子:如果你从家里去公司上班你一般的出行方式是什么?\x0d\1坐公车 2骑车 3自己开车 4坐地铁 5走过去。如果谁说他是做直升飞机去上班的。那要么这个人脑子不正常,要么就是太有钱了炫富。如果你要打苍蝇用苍蝇拍子就行了。如果要你用巡航导d来打苍蝇,你认为可能吗?\x0d\ 所以我们单片机写程序的话一般就是汇编语言和C语言。几乎没有人用C++语言的。
这个是最简单的单片机点灯程序,而且是最浪费单片机资源的一种程序,不过也是最初学习者便于理解的一种方式:
第一:定义LED1,LED2及LED3分别连接到P10 \P11及P12口线上。
第二:进入主程序后,初始化变量i=0;(便于等会延时使用)
第三:LED1=0;如果是单片机P10口接LED的负极,则这个时候,LED被点亮了。
第四:for(i=0;i<30000;i++);这个语句是延时语句,因为在这个语句中,未执行任何动作,假如单片机每执行一条语句需要用时2us,那么,这里for循环了30000次,就是300002us=60000us=60ms,在这60ms里,LED1=0;一直成立,也就是灯一直点亮;
第五:LED1=0;这个时候,就将LED1灯熄灭了。熄灭了多久呢?也就是后面的那个for循环时间决定的!
至于后面的LE2及LED3分析一样,希望你可以看懂了。等你学会单片机后,估计这样的延时你再也不会丢main函数里执行,而是定时器中断里去执行,不用一直等待for循环来浪费时间,为什么浪费时间呢?等你学会中断的概念就明白的。希望对你有用。
以上就是关于用c++怎样编写51单片机程序全部的内容,包括:用c++怎样编写51单片机程序、单片机程序问题 本人初学单片机看到一个例程不知道是什么意思,屏大家帮忙分析一下、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)