单片机编程主函数的特点
来源:互联网 发布:数据库工程师发展前景 编辑:程序博客网 时间:2024/04/30 11:44
在给一些单片机初学者解答问题的时候,我发现了一个现象,可能是因为受到电脑上学习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; }}
- 单片机编程主函数的特点
- AT90S8535单片机的特点
- S51单片机的特点
- MSP430 单片机的特点
- 单片机,ARM,FPGA和嵌入式的特点
- 单片机的技术特点及应用系统
- 8051单片机的指令系统有什么特点?
- 编程的一些特点
- 函数重载的特点
- scanf函数的特点
- JavaScript 函数的特点
- 单片机的模块化编程
- 极限编程的基本特点
- 各种编程语言的特点
- 面向对象编程的特点
- Linux内核编程的特点
- 51系列单片机的区别与特点介绍
- PIC 8位单片机的分类和特点
- Web墨卡托坐标与WGS84坐标互转
- linux 查看磁盘使用情况命令
- Asp.Net MVC3+ExtJS4
- C++与QML文档之间传复杂数据结构(如结构体)
- 道法自然,不执着,多思考
- 单片机编程主函数的特点
- PHP 正则表达式
- Inno Setup 编译器编辑功能增强版 (build 110319)
- 工行网银 火狐浏览器
- bit Number Converter
- IBM IPAT笔试题大搜刮
- 如何取得View的位置之View.getLocationInWindow()的小秘密
- 为什么我要转载文章?
- eclipse juno不显示AVD的菜单及小机器人图标