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

📄 main.c

📁 单片机C语言程序设计实训100例--基于AVR+PROTEUS仿真
💻 C
字号:
//-----------------------------------------------------------------
//  名称:用PG12864LCD设计的指针式电子钟
//-----------------------------------------------------------------
//  说明:本例利用PG12864LCD设计了指针式电子钟,电子钟由表盘、
//       时针、分针、秒针等构成.
//       时钟运行过程中可进行时分秒的调节和保存.
//
//-----------------------------------------------------------------
#define F_CPU 4000000UL
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdio.h>
#include "PG12864.h"
#define INT8U  unsigned char
#define INT16U unsigned int 
//如果引入头文件math.h则可以直接使用PI的符号常量定义: M_PI
#define PI 3.1415926
extern void cls();                                //清屏
extern INT8U LCD_Initialise();                    //LCD初始化
extern INT8U LCD_Write_Command(INT8U cmd);        //写无参数的命令
                                                  //写双参数命令
extern INT8U LCD_Write_Command_P2(INT8U cmd,INT8U para1,INT8U para2); 
extern INT8U LCD_Write_Data(INT8U dat);           //写数据
extern void Set_LCD_POS(INT8U row, INT8U col);    //设置当前地址
                                                  //绘制线条   
extern void Line(INT8U x1,INT8U y1, INT8U x2,INT8U y2, INT8U Mode);
extern void Pixel(INT8U x,INT8U y, INT8U Mode);   //画点函数
                                                  //显示字符串
extern INT8U Display_Str_at_xy(INT8U x,INT8U y,char *fmt); 
extern INT8U LCD_WIDTH;
extern INT8U LCD_HEIGHT;
extern void GetDateTime();                        //从DS1302获取时间
extern void SetDateTime();                        //设置时间

//按键定义










//所读取的日期时间
extern INT8U DateTime[7]; 
//当前调节的时间对象:秒,分,时(0,1,2),为-1时表示时钟正常运行.
char Adjust_Index = -1;
//保存前一秒,分,时数据,用于在绘制当前新的指针时擦除上次绘制的指针
INT8U TimeBack[] = {-1, -1, -1};
//秒,分,时针的长度
INT8U HMS_Hand_Length[] = {24,20,15};
//数字式时钟的显示串缓冲
char DisplayBuffer[] = "00:00:00";
//-----------------------------------------------------------------
// 显示数字式时钟
//-----------------------------------------------------------------
void ShowDigitTime()
{


}

//-----------------------------------------------------------------
// 绘制电子钟圆形面板
//-----------------------------------------------------------------
void Clock_Plate()
{

    
} 

//-----------------------------------------------------------------
// 重绘HMS中的某一指针(参数0,1,2分别为秒,分,时)
//-----------------------------------------------------------------
void Repaint_A_Hand(INT8U i) 
{


}

//-----------------------------------------------------------------
// 时间变化时重绘
// 秒针与分针时钟接近重叠,或分钟与时针接近重叠时也要重绘
//-----------------------------------------------------------------
void Display_HMS_Hand()
{


}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{    


}

//-----------------------------------------------------------------
// T0定时器刷新LCD时间显示    
//-----------------------------------------------------------------
ISR (TIMER0_OVF_vect)
{


}

//-----------------------------------------------------------------
// 键盘中断(INT0) 
//-----------------------------------------------------------------
ISR (INT0_vect)
{ 


}

⌨️ 快捷键说明

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