arm电子相册项目——主函数篇main.c

《arm电子相册项目——主函数篇main.c》

 

工具:keil4 , arm开发板(Mini2451)(s3c2451) , 串口线

功能:显示照片(自动切换 / 手动切换 / 暂停切换 / 可设置)

            显示时钟(精确显示 / 可设置)

进度:第2篇——main.c

描述:一个合格的项目,其中main函数应该是只用很少行的,大部分的工作都由调用的函数执行,有主有次,执行起来条清缕析

电子相册项目中,main函数主要做了一下工作:初始化各个模块,给全局变量赋初值,在未操作时,先显示一个菜单界面,保持led灯闪烁

#include "app.h"

extern void delay(unsigned int t);    声明汇编中的delay,可以调用

//全局变量
unsigned int flag;    //不同flat表示不同功能界面(界面flat)
unsigned int key;    //不同key表示不同按键(按键key)
unsigned int n;    //不同n表示不同箭头位置(小箭头的位置由n决定)
unsigned int picture;    //不同picture表示不同照片
unsigned int time;    //定时器中断每进一次,time++
unsigned int set_time;    //当time++至 time == set_time时,切换照片
unsigned int stop;    //相册自动切换暂停 / 继续
unsigned int time_stop;    //时钟显示开启 / 关闭
unsigned int clock;    //设置时钟的年月日时分秒标志位

void Main()
{
	MMU_Init();    //内存管理单元初始化(可以不写)
	rtc_init();    //时钟模块初始化
	uart_init();		//串口模块初始化
	key_init();    //中断模块初始化
	lcd_init();    //lcd屏幕模块初始化
	timer0_init();    //定时器模块初始化
	
	flag = 1;    //全局变量赋初值
	n = 1;
	picture = 1;
	time = 0;
	set_time = 3;
	stop = 2;
	time_stop = 2;
	clock = 0;
	
	lcd_dis_pck(37);    //刚进程序先设置初始化界面
	lcd_draw_chinese(80,90,"->",0x00ff0000);
	lcd_draw_chinese_string(100,90,"1.电子相册",0x00ff0000);
	lcd_draw_chinese_string(100,110,"2.实时时钟",0x00ff0000);	
	lcd_draw_chinese_string(100,130,"3.设置切换时间",0x00ff0000);	
	lcd_draw_chinese_string(100,150,"4.设置时钟时间",0x00ff0000);	
	
	GPACON = 0x0;    //led初始化(led闪烁表示系统正常运行)
	GPBCON = (0x5 << 10);
	GPBSEL = 0x0;
	
	while(1)
	{
		if(time_stop == 1)    //时钟的显示开启 / 关闭(标志位控制)
		{
			lcd_rtc();
		}
		GPADAT = 0x0;
		GPBDAT = 0x0;
		delay(0x100000);
		GPADAT = 0xffffffff;
		GPBDAT = 0xffffffff;
		delay(0x100000);
	}
}


你可能感兴趣的:(arm电子相册项目——主函数篇main.c)