单片机编程主函数的特点

在给一些单片机初学者解答问题的时候,我发现了一个现象,可能是因为受到电脑上学习C程序设计的影响,很多人会写出类似这样的程序:

#include <reg52.h>
void main()
{P1=0x00;
}

或者是这样的程序

#include <reg52.h>
int main()
{P1=0xab;return 0;
}


如果是在电脑上运行类似这样的程序,程序执行结束,控制权交给系统,有返回值的返回给系统,是完全可行的,但是在单片机上就不一样了,对于不依靠操作系统的单片机程序,main函数就是操作系统,应该是不能终止运行的,而应该是一个while(1)死循环。


没有加while(1)的程序执行结束会出现不可预知的结果(具体要根据汇编语言PC指针指向的位置判断),也就是程序跑飞。

虽然实际上用的时候STC单片机会循环执行程序(执行结束单片机复位,所有变量重置),但这个在芯片手册中并没有给出官方说明,所以并不一定总能如此。


单片机程序执行终止,这样就会大大降低可靠性。试想你的单片机在控制一台大型机器,如果发生不可预知的结果,后果很严重;如果你的手表是单片机,程序停止运行会怎样?就停止显示了;如果电脑的操作系统运行终止(关机除外),也会出现问题。


所以单片机的程序必然是一个死循环,一般都会有while(1),另外不需要有返回值,形如下面两种情况。

#include <reg52.h>
void main()
{P1=0x00;while(1);
}


#include <reg52.h>
void main()
{while(1) {P1=0x00;}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Best Free Network Performance Test tool – Iperf

According to wikipedia Iperf “is a commonly used network testing tool that can create TCP and UDP data streams and measure the throughput of a network that is carrying them. Iperf is a modern tool for network performance measurement written in C.” This t…

51单片机程序下载、ISP及串口基础知识

本文详细介绍了串口、51单片机的ISP下载等基础知识&#xff0c;已经学过单片机的也可以看看&#xff0c;加强一下对这方面的了解。串口串行接口简称串口&#xff0c;也称串行通信接口&#xff0c;是采用串行通信方式的扩展接口。我们比较熟悉的USB接口&#xff0c;全名通用串行…

世界排名前20的大学毕业生去做银行柜员,柜员工资是不是很高?

说到银行柜员估计很多人都五味杂陈&#xff0c;特别是做过银行柜员的更知道其中的酸甜苦辣。柜员表面看起来是在银行工作&#xff0c;但做却做的是最基层的工作&#xff0c;每天要处理各种琐碎的事情&#xff0c;还要分到各种任务&#xff0c;每个月面临各种考核&#xff0c;每…

中国房地产市值已经超过450万亿,为何还不见房价下跌?

大家都知道&#xff0c;目前我国的房价比较高&#xff0c;特别是在北上广深等城市&#xff0c;一平米动不动就五六万块钱&#xff0c;贵的甚至十几万都有&#xff0c;房价已经远远超过普通老百姓的承受范围&#xff0c;所以很多老百姓只能望房兴叹。目前我国的房地产市值已经超…

51单片机使用定时器进行数码管动态扫描程序

数码管是51单片机学习中比较基础的一个模块&#xff0c;为简化电路连接&#xff0c;提高系统可靠性&#xff0c;降低制造成本&#xff0c;多位数码管广泛采用动态扫描的方式进行显示。如果程序编写不当&#xff0c;数码管动态扫描容易出现亮度不均匀、亮度过低、重影等现象。很…

Gartner Magic Quadrant for Enterprise Network Firewall (2018,2017,2016,2015,2014,2013,2011,2010)

Based on Gartner’s definition, the enterprise network firewall ” is composed primarily of purpose-built appliances for securing enterprise corporate networks. Products must be able to support single-enterprise firewall deployments and large and/or comple…

怎么样从一个疯狂下载者成为一个学习者

怎么样从一个疯狂下载者成为一个学习者为了方便广大网友&#xff0c;各种网站也应运而生。当网络的建设和发展正进行的如火如荼&#xff0c;喧闹之中&#xff0c;搭配学习这壶美酒的&#xff0c;竟是一瓶名叫资料下载的毒药&#xff0c;更糟糕的是&#xff0c;美酒和毒药已经被…

avr-gcc中关于delay延时函数的应用修改版[ourdev]

在51中我们的延时函数都是自己编写的&#xff0c;无论是在汇编中还是在C言语中。虽然有模板&#xff0c;有时还是有点烦。呵呵。不过在应用avr 单片机的时候我们就有福了。因为avr-gcc 提供给我们很方便的delay 延时函数, 只有在源文件包含&#xff1a; #include <util/dela…

laravel数据库相关操作

SQL查询配置好数据库连接后&#xff0c;可以使用 DB facade 运行查询。DB facade 为每种类型的查询提供了方法&#xff1a;select、update、insert、delete 和 statement。 select查询数据1234567891011121314use Illuminate\Support\Facades\DB;//select方法一$users DB::sel…

Laravel 的 Eloquent ORM学习

创建模型首先&#xff0c;创建一个 Eloquent 模型&#xff0c;生成的模型通常放在 app 目录中&#xff0c;但你可以通过 composer.json 随意地将它们放在可被自动加载的地方。所有的 Eloquent 模型都继承了 Illuminate\Database\Eloquent\Model 类。 示例&#xff1a; 12345678…

最后半天时间,支付宝等第三方支付机构备付金必须100%上交

这几天支付宝、微信等第三支付机构备付金100%上交央行的新闻相信大家已经看到很多&#xff0c;对于备付金可能大家都不是很了解&#xff0c;甚至很多人认为这是不是银行又跟支付宝等第三方支付机构过意不去了&#xff0c;今天我们就带大家来了解下事情的经过以及真相。央行铁令…

在WinAVR中设置Makefile自动编译多个源文件

初次使用WinAVR&#xff0c;了解到需要通过Makefile文件来设定程序编译时的一些值&#xff0c;发现当一个工程中加入多个源文件时不能同时编译&#xff0c;网上查了一下&#xff0c;需要修改Makefile文件&#xff1a; # List C source files here. (C dependencies are automat…

顺丰负债300亿就压力山大,而万达曾经负债4000亿却稳如泰山

近段顺丰负债300亿的消息闹得沸沸扬扬&#xff0c;作为国内快递一哥&#xff0c;顺丰借壳上市后市值曾经超过3000亿人民币&#xff0c;然而目前却负债300亿&#xff0c;这对于一家轻资产的快递公司来说可不得了。顺丰目前的处境难免让人联想到2017年的时候万达负债4000个亿的情…

2019年各大银行最新存款利率,这么存可以获得更多的利息!

2019年怎么存款才能获得最高的利率&#xff1f;这个相信口袋里有点钱的人都会关心的问题&#xff0c;今天我们就来跟大家仔细说一下。先来看一下2019年各大银行最新存款利率是多少。目前各大银行的存款利率跟2018年年底其实没有多大的差别&#xff0c;虽然已经过了2018年12月份…

怎样学习MSP430单片机

MSP430是Texas Instrument(TI&#xff0c;德州仪器)推出的一款超低功耗单片机。TI是一个非常有实力的、全球领先的芯片制造公司&#xff0c;MSP430不仅因为其优秀的设计&#xff0c;更因为TI提供的强有力的技术支持&#xff0c;而很快成为今天市场上非常受欢迎的一款单片机。 使…

【原创】“三次握手,四次挥手”你真的懂吗?

记得刚毕业找工作面试的时候&#xff0c;经常会被问到&#xff1a;你知道“3次握手&#xff0c;4次挥手”吗&#xff1f;这时候我会“胸有成竹”地“背诵”前期准备好的“答案”&#xff0c;第一次怎么怎么&#xff0c;第二次……答完就没有下文了&#xff0c;面试官貌似也没有…

17年前存款11万,取款时银行以销户为由拒绝,法院判银行全额赔付

1999年年底&#xff0c;陈伯在某银行的存折中存入2.6万元&#xff0c;加上这一笔&#xff0c;当时存折里总共有116703元&#xff0c;之后存折遗失。2016年&#xff0c;陈伯在搬家时找到这个存折。从2017年开始&#xff0c;陈伯多次拿着存折到银行取款&#xff0c;均被银行告知账…

VS2010 + OpenCV 2.4.1 环境配置

VS2010 OpenCV 2.4.1 环境配置 &#xff08;Windows 7 x64 中文旗舰版&#xff1b;Visual Studio 2010 中文旗舰版&#xff1b;OpenCV2.4.1。&#xff09; 1.用户环境变量&#xff08;或系统环境变量&#xff09;&#xff0c;新建或添加 PATH D:\Program Fil…

上市公司降价200万卖房仍然无人接手,有的甚至降价1900万

房价降价200万甩卖房子还卖不出去&#xff1f;看到这估计很多人不相信&#xff0c;因为通过各种数据统计&#xff0c;我们可以看到2018年中国大部分城市的房价都是上涨的&#xff0c;而且部分城市甚至上涨40%以上&#xff0c;但我们普通老百姓看到的却是有些业主降价几十万甚至…