📄 main.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 + -