单片机编程软件的代码(用c++怎样编写51单片机程序)

2026-06-30 05:30:02 :0

单片机编程软件的代码(用c++怎样编写51单片机程序)

本篇文章给大家谈谈单片机编程软件的代码,以及用c++怎样编写51单片机程序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

用c++怎样编写51单片机程序

相信很多初学者都有同样的疑问,也有同样的希望。就是用C++语言来写单片机程序的源代码。现在我来解释一下单片机的源代码程序几乎没有人用C++来写的。
1. 假设一下你现在用C++写完了一个程序代码。那么你要让单片机认识必须要编译吧,对吧 。请问你有合适的编译软件来编译你的代码吗?
2. 就算有编译器能编译,你能保证它的代码效率一定能给单片机用吗?
单片机的ROM是K级的水平,执行指令的速度也远远小于PC。绝对不能和PC机相比的。这个就决定了单片机编程时很多时候要考虑它的代码效率和代码大小问题。所以一般情况下对于单片机编程我们之用汇编语言或者C语言。就算是用C写程序也要注意代码的效率等问题。
还有就是只有很大型的项目及应用程序开发才有可能有C++来写程序。一般的系统文件,应用程序都是用C来写的。有的系统代码甚至要用汇编语言来写。
举个生活中的例子:如果你从家里去公司上班你一般的出行方式是什么?
1.坐公车 2.骑车 3.自己开车 4.坐地铁 5.走过去。如果谁说他是做直升飞机去上班的。那要么这个人脑子不正常,要么就是太有钱了炫富。如果你要打苍蝇用苍蝇拍子就行了。如果要你用巡航导弹来打苍蝇,你认为可能吗?
所以我们单片机写程序的话一般就是汇编语言和C语言。几乎没有人用C++语言的。

proteus下单片机的编程是在哪里编写

你用keil写好程序,生成hex文件(具体方法百度“keil 生成hex文件”关键字),然后在你的方针电路图的单片机图上点右键, 选属性,看见有个program file 选项,点开旁边的文件夹小小图标,把hex文件的路径放上,这样就行了。

基于51单片机控制交通灯的电路图与C语言程序

思路:

    红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换。四个方向各有一个红、黄、绿显示和两个数码管。

东西道为人行道(20秒),南北道为车行道(60秒),黄灯延时最后三秒时,闪烁并切换。

三、硬件电路设计

此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。

四、软件程序(C语言)

    以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。

//*****************************//

//程序名:十字路口交通灯控制

//编写人:黄庭剑

//初写时间:2009年1月2日

//程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换.

//CPU说明:AT89C51型单片机; 24MHZ晶体振荡器

//完成时间:2009年1月6日

//*****************************//

#include《stdio.h》

#include《reg51.h》

#include《intrins.h》

sfr p0   = 0x80;

sfr p1   = 0x90;

sfr p2   = 0xA0;

sfr p3   = 0xb0;      //这部分内容其实在“#include《reg51.h》”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。其实两者是一样的。

sbit  sw      = p0^0;

sbit   OE    =P0^6;

sbit   LE    =P0^7;  //74LS373锁存器控制端定义

char  display={ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99 }; //p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;

//函数声明 begin

void  delay1(int count);

void  delay_long(int  number1,int number2);

void    people_car_drive();

//函数声明end

//***********************//延时子程序

void  delay1(int  count)

 { int  i;

   for(i=count;i》0;i--)

       { ;} 

 }

void  delay_long(int  number1,int number2)

  {

   int a,b;

 for(a=number1;a》0;a--)

   {

    for(b=number2;b》0;b--)

     { _nop_();     }

   }

  }

//**********************//延时子程序

 void   people_car_drive()

 {

   int   p_1=2,i,j=9,p_2=6;    //****************//行人通行时,延时20秒

          p2=0x09;                     //南北红灯亮

       p3=0x24;                     //东西绿灯亮

  while(p_1--》0)

     { LE=1;

    OE=0;

    if(p_1==0){OE=1;}            //当十位数减到0时,只显示个位数

    p1=display;

    delay1(1000);

    LE=0;  

    j=9;

     for(i=10;i》0;i--)

   { 

     if(p_1==0&&j==3)break;     //减到3时退出循环,让其黄灯闪烁显示

     p1=display;

     delay_long(16000,2);

  if(sw==1)return;   

   }

     } 

//*******************************************************************************//

     p2=0x12;                  //南北黄灯闪烁三秒,以提醒行人注意

     p3=0x12; 

  p1=display; 

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;     

  delay_long(14000,1);

  p2=0x12;

  p3=0x12;

  p1=display;

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);

  p2=0x12;

  p3=0x12;

  p1=display;

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);

//*****************以下是车辆通行时延时60秒//

   p2=0x24;                 //南北绿灯亮

   p3=0x09;                 //东西红灯亮

     while(p_2--》0)

     { LE=1;

    OE=0;

    if(p_2==0){OE=1;}       //当十位数减到0时,只显示个位数

    p1=display;

    delay1(1000);

    LE=0;

    j=9;

     for(i=10;i》0;i--)

   { 

  if(p_2==0&&j==3)break;  //减到2时退出循环

     p1=display;

     delay_long(16000,2);

  if(sw==1)return;     

   }

     }

     p2=0x12;                //南北黄灯闪烁三秒,以提醒行人注意

     p3=0x12; 

  p1=display; 

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;     

  delay_long(14000,1);

  p2=0x12;

  p3=0x12;

  p1=display;

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);

  p2=0x12;

  p3=0x12;

  p1=display;

  delay_long(8000,1);

  p2=0x00;     

     p3=0x00;

  delay_long(14000,1);    //南北黄灯闪烁三秒完毕

 }

 void  main()               //主函数入口处

{

       p0=0x01;

       p1=0x00;

       p2=0x00;

       p3=0x00;               //初始化各端口

 { while(1) 

  {

     if(sw==0)

    {  people_car_drive();}

else

  {

   p2=0x00;

   p3=0x00;                    //关闭所有交通灯

  }

  }

 }

}

***隐藏网址***

用c++怎样编写51单片机程序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用c++怎样编写51单片机程序、用c++怎样编写51单片机程序的信息别忘了在本站进行查找哦。

单片机编程软件的代码(用c++怎样编写51单片机程序)

本文编辑:admin

更多文章:


evaluation状态是好是坏(evaluation和review有什么区别)

evaluation状态是好是坏(evaluation和review有什么区别)

本篇文章给大家谈谈evaluation状态是好是坏,以及evaluation和review有什么区别对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2025年12月27日 22:30

individual语素(瞀可以怎样组词)

individual语素(瞀可以怎样组词)

各位老铁们,大家好,今天由我来为大家分享individual语素,以及瞀可以怎样组词的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录瞀可以怎样组词“

2026年5月6日 20:30

河南省疫情防控指挥部(新郑疫情防控指挥部电话)

河南省疫情防控指挥部(新郑疫情防控指挥部电话)

大家好,关于河南省疫情防控指挥部很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于新郑疫情防控指挥部电话的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录新

2026年2月19日 10:00

数据有哪些关系类型(什么是指数据库中数据与数据之间的关系)

数据有哪些关系类型(什么是指数据库中数据与数据之间的关系)

本篇文章给大家谈谈数据有哪些关系类型,以及什么是指数据库中数据与数据之间的关系对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录什么是指数据库中数据与数据之间的关系数据库关系模式有哪些类型数据之间的三种关系数据之间存在哪些联系数

2026年4月7日 05:45

设备配置文件是什么意思(配置文件是啥意思)

设备配置文件是什么意思(配置文件是啥意思)

大家好,设备配置文件是什么意思相信很多的网友都不是很明白,包括配置文件是啥意思也是一样,不过没有关系,接下来就来为大家分享关于设备配置文件是什么意思和配置文件是啥意思的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目

2026年7月26日 08:00

idea写的代码eclipse能用吗(怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答)

idea写的代码eclipse能用吗(怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答)

本篇文章给大家谈谈idea写的代码eclipse能用吗,以及怎么把Intelij IDEA的工程变为Eclipse工程,希望有人解答对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决

2025年6月9日 15:00

insert命令注意哪些语法问题(sql语句中INSERT的使用问题)

insert命令注意哪些语法问题(sql语句中INSERT的使用问题)

本篇文章给大家谈谈insert命令注意哪些语法问题,以及sql语句中INSERT的使用问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录s

2026年8月12日 10:30

fundamental音标(英语leap forward怎么翻译)

fundamental音标(英语leap forward怎么翻译)

今天给各位分享英语leap forward怎么翻译的知识,其中也会对英语leap forward怎么翻译进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录英语leap forward怎么翻译英语5-star re

2025年11月21日 04:00

scum建房子(SCUM0.8版本悬空房建造攻略悬空房怎么建)

scum建房子(SCUM0.8版本悬空房建造攻略悬空房怎么建)

各位老铁们,大家好,今天由我来为大家分享scum建房子,以及SCUM0.8版本悬空房建造攻略悬空房怎么建的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文

2026年7月11日 03:30

virtue中文(谁知道V打头的英文单词呀 要加中文意思越多越好 谢谢谢谢)

virtue中文(谁知道V打头的英文单词呀 要加中文意思越多越好 谢谢谢谢)

其实virtue中文的问题并不复杂,但是又很多的朋友都不太了解谁知道V打头的英文单词呀 要加中文意思越多越好 谢谢谢谢,因此呢,今天小编就来为大家分享virtue中文的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目

2025年12月17日 23:00

007无暇赴死邦德结局(《无暇赴死007》结局是什么)

007无暇赴死邦德结局(《无暇赴死007》结局是什么)

本篇文章给大家谈谈007无暇赴死邦德结局,以及《无暇赴死007》结局是什么对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录《无暇赴死007》

2025年8月7日 08:00

application是什么类型(Excel VBA中APPLICATION是什么意思)

application是什么类型(Excel VBA中APPLICATION是什么意思)

其实application是什么类型的问题并不复杂,但是又很多的朋友都不太了解Excel VBA中APPLICATION是什么意思,因此呢,今天小编就来为大家分享application是什么类型的一些知识,希望可以帮助到大家,下面我们一起来

2026年2月18日 21:30

jstl常用标签有哪些(下面哪些属于jstl中的标签,a,<c:out> b,<c:if> c,<c:color> d,<c:mytag>)

jstl常用标签有哪些(下面哪些属于jstl中的标签,a,<c:out> b,<c:if> c,<c:color> d,<c:mytag>)

各位老铁们,大家好,今天由我来为大家分享jstl常用标签有哪些,以及下面哪些属于jstl中的标签,a, b, c, d,的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面

2025年5月26日 13:30

疫情期间应急方案企业模板(公司疫情防控措施方案范文(精选5篇))

疫情期间应急方案企业模板(公司疫情防控措施方案范文(精选5篇))

大家好,如果您还对疫情期间应急方案企业模板不太了解,没有关系,今天就由本站为大家分享疫情期间应急方案企业模板的知识,包括公司疫情防控措施方案范文(精选5篇)的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录公司疫情防

2026年1月3日 21:00

es6 阮一峰(来自一位react新手的react入门须知)

es6 阮一峰(来自一位react新手的react入门须知)

本篇文章给大家谈谈es6 阮一峰,以及来自一位react新手的react入门须知对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录来自一位react新手的react入门须知『ES6参考链接汇总』 By 吃码小妖ES6 之 asy

2025年8月26日 09:30

devops k8s 编译(k8s经典换到哪里了)

devops k8s 编译(k8s经典换到哪里了)

本篇文章给大家谈谈devops k8s 编译,以及k8s经典换到哪里了对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录k8s经典换到哪里了K8s subPathk8s经典换到哪里了Kbuernetes存储资源PV和Storag

2026年8月2日 21:30

西班牙与摩洛哥(西班牙与摩洛哥是同种人吗)

西班牙与摩洛哥(西班牙与摩洛哥是同种人吗)

这篇文章给大家聊聊关于西班牙与摩洛哥,以及西班牙与摩洛哥是同种人吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录西班牙与摩洛哥是同种人吗西班牙在摩洛哥的飞地有几块西班牙和摩洛哥之间的海峡加什么西班牙与摩洛哥是同种人吗是。西班

2026年1月12日 11:00

common翻译(common ,ordinary,general,usual,normal,natural区别)

common翻译(common ,ordinary,general,usual,normal,natural区别)

今天给各位分享common ,ordinary,general,usual,normal,natural区别的知识,其中也会对common ,ordinary,general,usual,normal,natural区别进行解释,如果能碰巧

2026年2月18日 14:30

微信怎么打开html文件(html网页怎么微信打开)

微信怎么打开html文件(html网页怎么微信打开)

本篇文章给大家谈谈微信怎么打开html文件,以及html网页怎么微信打开对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录html网页怎么微信

2026年9月3日 18:15

discuz自适应模板下载(请问discuz论坛下载的模板安装问题)

discuz自适应模板下载(请问discuz论坛下载的模板安装问题)

本篇文章给大家谈谈discuz自适应模板下载,以及请问discuz论坛下载的模板安装问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录请问discuz论坛下载的模板安装问题discuz如何导入模板discuz 怎么添加自定义

2025年9月17日 01:45

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索