⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 freescale单片机电子时钟
💻 C
字号:
#include "GP32C.H"
#include "TIME.h"
#include "KB.h"               //键盘
#include "LCD.h"
//函数声明
//extern void SCIInit(void);
//extern void InitTime(void);
//extern void SCISendN(unsigned char n,unsigned char ch[]);
//extern void Timer1init(void);
//extern void lcdshow(unsigned char *str);
unsigned char time1[18];    //显示当前时间
unsigned char time2[7];     //保存闹钟时间
unsigned char time[7];      //存放时、分、秒
unsigned char val;
//unsigned char val1;
unsigned char sign1;  
unsigned char sign2;
//*====================================================*
//*[主程序]
void main()
 {
	 unsigned char h,l;
	 val=0;
	 //val1=0;
	 DDRD=1;
	 sign1=0;
	 sign2=0;
 	 asm("SEI");               //关总中断
 	 //SCIInit();
 	 Timer1init();             //调定时器1初始化子程序
 	 KB_Init();
 	 InitTime();               //初始化时间
 	 conver();
 	 lcdshow((unsigned char *)time1);
 	 //SCC2|=(1<<5);             //令SCC2.5=1,允许接收中断
 	 asm("CLI"); 
	 while(1)
	{
	  h=0;
	  for(l=0;l<7;l++) //闹钟
      {
         if(time[l]!=time2[l]) break;
         h++;
         if(h==7)
         {
         alarmtime(30);
         }
      }
	  if((time[6]==0)&&(time[5]==0)&&(time[4]==0))//整点报时
      {
         PTD=1;
         delay();
         PTD=0;
         delay();
      }
      if(sign1==1)
      {
        INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
        SetTime();     //设置时间
        sign1=0;
        INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
      }
      if(sign2==1)
      {
        INTKBSCR|= (1<<IntBit); //屏蔽键盘中断(IMASKK=1)
        sign2=0;
        SetAlarmClock();   //设置闹钟时间
        INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
      }
	   if (val==1)                      //时间溢出中断发生
	    {
	     conver();
 	     lcdshow((unsigned char *)time1);//每一秒更新
 	     val=0;
        }
      
    }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -