单片机 c语言程序框架详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*单片机avr 流水灯源程序文件名:led.c */
#include
void delay(uint time_c) //子函数,实现延时功能,void 表示此函数无返回值,delay 函数名,time_c 函数的参数-无符号的整形数值
{
int i,j; //变量声明
while(time_c--)
{
for (j=0;j<1200;j++)
{; }; //函数体内的语句以';'分号结尾,表示一条语句的结束,分号需要用英文标点输入
}
}
void main (void) //主函数
{ //程序的初始化
DDRA=0xFF; //DDRA -PA口的方向寄存器,1为输出,0为输入,PA的8个I/O口全部设为输出。
PORTA=0xFF; //PORTA -PA口的输出控制寄存器,1为输出高电平,0为输出低电平,此处,PA口全部输出高电平。
while(1) // 死循环
{
PORTA=0xFE; //PA口的第0位清0,点亮第一个灯
delay(500); // 延时
PORTA=0xFD; //点亮第二个灯
delay(500);
PORTA=0xFB; //点亮第三个灯
delay(500);
PORTA=0xF7; //点亮第四个灯
dealy(500);
PORTA=0xEF; //点亮第五个灯
dealy(500);
PORTA=0xDF; //点亮第六个灯
dealy(500);
PORTA=0xBF; //点亮第七个灯
delay(500);
PORTA=0x7F; //点亮第八个灯
delay(500);
}
}
/* 流水灯程序结束*/
-------------------------------------------------------------------------------------------------------------------------------
#include
void delay(unit time_c) { } ;为自定义的子函数,实现某一特定功能的函数,c语言函数的内容都放在{}中;delay(500)为子函数调用,实现延时功能,500为函数的实参,time_c 称为形式参数,单片机的运行速度非常快,如果不加延时,所有的灯看起来都是亮的,人眼无法分辨,可以增加,或减少延时的时间看看结果的变化。
void main(void)
{
..............
while(1) { .........};
}
main 为主函数,是每一个c语言程序中必须有的,也必须只能有一个。它是单片机程序运行开始的入口处,在main函数中都有一个while(1)死循环,程序将在while所包含的语句中周而复始的运行。
/*单片机avr 流水灯源程序文件名:led.c */ 在c语言中在 '/* 和 '*/' 之间的内容为程序的注释,方便程序的阅读,可以对多行进行注释,'//':只能进行单行注释。
常量:在程序运行过程中数值不变的数据。
变量:在程序运行过程中,其值可以改变的数据
在书写变量说明时,应注意以下几点:
1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。
2.最后一个变量名之后必须以“;”号结尾。
3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。
标识符:用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。一个标识符由字符串
数字,和下划线组成,第一个字符必须是字母或下划线。如: time_c, time12, 像12time,@ab,是错误的。
流水灯原理图
小企鹅diy科学探究学习网
更多文章转到:/wqb_lmkj/blog文章分类下的单片机