以C语言编写的单片机程序为例,程序总是从主程序开始,然后依次执行,直到main。 可见,程序必须包含且只能包含一个主程序,通常称为主程序。
主要的()
主程序的内容。 。 。 。 。 。
在实际使用中,还需要在主程序中建立主循环体while或do while。 主循环体可以是无限循环,也可以是条件循环,如下:
main()2 I- l5 q。 e, B" t4 i) ~9 H: U
{" r h7 F) J5 G$ C5 C
同时(1)
无限循环中的程序会循环执行 * E& K) T7 c7 a7 u
/////////////////////////////////////////////////////////////////////////////////////////// /// ///////
主要的()
2 ep# y- J! 电压/输出
同时(标志)
{$ Z8 Y6 y' }$ m5 z( k
条件循环体中的程序将根据Flag值的变化执行循环或跳出循环。
}" J% @0 q* p0 ?: s& C
}4 Z2 E. ^* K2 [ u+ @. {
/////////////////////////////////////////////////////////////////////////////////////////// /// ///////。 u" D6 h!E( 米
main()& ?6 l7 i! x# q+ W/ u
程序将按顺序执行
同时(1); //停在这里
/////////////////////////////////////////////////////////////////////////////////////////// /// //////
一般来说,第一种是最常用的。 所有需要循环执行的程序都放在主循环体中,然后里面可以添加多个条件循环体。
主程序开始时一般做什么工作? 在单片机中,C语言在进入主程序入口时会自动添加一些单片机的初始化工作,使单片机处于准备状态。但是仅仅单片机内部所做的事情似乎并不一定是我们需要什么,所以在主程序的开始我们还需要一些初始化代码,比如开机时各个端口的状态,声明的一些变量的初始化值,定时器或者其他外设的初始化等等..,所有第一次需要设置的部分都在这部分完成。 然后就到了主循环的 while 部分。 既然是循环,就意味着循环体内的程序是顺序循环执行的。 需要什么语句将其放入其中呢? 即需要随时改变的端口数量、数值等,例如时钟。 时钟是不断变化的,所以需要循环读取时钟的值,然后将数据更新到显示设备(数码管)或者液晶屏或者电脑),我们再以按钮为例,因为我们不不知道按钮什么时候会被按下,所以最简单的方法就是不断检测按钮端口的变化。 这也必须放置在主循环体中以确保检测到按钮。 及时性
例如:通电后,P1.1 所连接的 LED 亮起,然后按下按钮 LED 熄灭,松开按钮 LED 又亮起。 设置P3.4端口按钮3
sbit LED=P1^1;* k/ ]- L( H.w: `1 B
sbit KEY=P3^4; //定义关键端口,可以根据不同的硬件连接改为其他端口) i* C; r* m" O- x! ~3 }
9 b9 Z, w* j3 ]
主要的()
{。 】! d& v6 [1 E7 z4 h& o
LED=0;//这里以低位照明LED为例。 该语句是初始化端口8 p+ h* Q4 B- m! @
同时(1)/e. a: u( Q1 O. @6 |8 _
{* w; W# F6 E+ ; r8 RP:我
if(KEY) //检测按键端口是否为1,如果为1则表示没有按下。 如果为0,则表示按键被按下 %Q% G4 e$ X* ]3 e% ` L
LED=0; //如果不按下,LED灯亮:['b8~)k&Q3h'Cr
别的
LED=1; //按下 LED 将关闭 + ]# L& U' D/ _) K' Y4 J
}% d) D6 g8 9 a2 s5 K1 |$ _* P! 哦