单片机程序100例,51单片机程序100例?

单片机是数字计算机发展的最高阶段,它将早期数字计算机的输入设备控制、输出设备控制和数字运算单元集中在单个的芯片上,形成了一个“单芯片的数字计算机”。自然最简单最能反映单片机特点的C语言程序不是“Hello, World!”,而应该是一个计算数字加法的程序。

(1)下图是在STC8H8K64U单片机上运行的计算加法“Z=X+Y”的C语言程序:

单片机程序100例,51单片机程序100例?

最简单的单片机程序

(2)所有单片机程序都包括两个部分,一个是系统定义(第11行到第16行程序),一个是单片机主函数(第18行到第44行)。

单片机的用途非常多,从小小的台灯电饭锅到各种工业控制器,所以单片机的种类也很多,不同种类的单片机的控制方法也不一样。因此使用某种单片机并编程实现某种功能,就要在单片机程序中先定义它。第13行程序就是具体包含了本程序需要的STC8H系列单片机的SFR(特殊功能寄存器)地址信息的头文件。

单片机的核心是一个CPU,完成各种任务要靠执行二进制机器码来完成,为此软件厂商事先提供很多C语言函数库,编程者只需要访问对应的功能函数就可以实现指定的功能。比如第16行是包含C语言的标准输入输出函数库头文件。有了这个头文件,第37行程序通过调用“scanf”函数就可以从上位机接收X和Y两个数,第40行通过调用“printf”函数就可以将加法的结果Z传到上位机上显示出来。

(3)第19行开始的“main”函数在单片机程序中称为主函数。当单片机加电启动后,系统的引导程序经过一些最基本的设置后,第一个访问的就是“main”函数,通过“main”函数将单片机运行的控制权交给用户的程序。

KeilC51程序中,单片机的主函数与PC上的操作系统的可执行程序的“main”函数不一样,没有谁传递参数给它,所以是无参数函数。

(4)单片机的主函数包括两个部分,首先是只执行一次的系统设置部分,比如上面程序的第24行到32行,对单片机上的串口设备进行了设置。其次是一个无限循环,使用无限循环程序结构的目的是让用户程序永远不要退出主函数。

(5)从操作系统的视角,单片机的主函数被称为“后台任务”,对于后台任务程序是不能用“return”语句退出的,退出后的结果依赖于编译器。使用Keil的C51编译器,对小部分简单程序,退出主函数导致系统热启动,程序再来一遍,但对大部分程序,退出主函数会导致程序跑飞,结果不可预料,如果是机械控制系统,则可能产生危险后果。

(6)要点:单片机程序从“后台任务”的主函数开始,在完成进行一次性的系统设置(在arduino中对应的是“setup”函数)后,然后进入后台任务的无限循环(在arduino中对应的是“loop”函数),连续地、重复地执行用户后台任务程序。

(7)提高:模仿上面程序,编写一个从上位机键盘输入5个数:A、B、C、D和E,然后计算四则运算“X=A+B*C-D/E”的值,输出到上位机显示出来的完整的后台任务程序。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.sumdns.com/14347.html