51 单片机电子日历课程设计程序代码:/****************************************************************************//* 电子日历,有时间显示、闹铃、日期、秒表及键盘设立功能 *//* 功能键 A: 设立位数字+1 闹钟模式下为闹钟开关 秒表模式下为记时开关 *//* 功能键 B: 设立位数字-1 闹钟模式下为闹钟开关 *//* 功能键 C:设立模式及设立位选取 秒表模式下为清零键 */ /* 功能键 D:在四种工作模式下切换 设立闹钟开关 */ /* 曹宇 03 电子 029 *//* .6.3 更新 *//****************************************************************************/#include #include /***************这里设立程序初始化时显示时间****************/#define SET_HOUR 12 /*设立初始化小时*/#define SET_MINUTE 00 /*设立初始化分钟*/#define SET_SECOND 00 /*设立初始化秒数*//*************************系统地址****************************/#define BASE_PORT 0x8000 /*选通基地址*/#define KEY_LINE BASE_PORT+1 /*键盘行线地址*/#define KEY_COLUMN BASE_PORT+2 /*键盘列线地址*/#define LED_SEG BASE_PORT+4 /*数码管段选地址*/#define LED_BIT BASE_PORT+2 /*数码管位选地址*/#define LED_ON(x) XBYTE[LED_BIT]=(0x01<#define LED_OFF XBYTE[LED_SEG]=0x00 /*LED 显示空*//**************在设立模式下对秒分时宏定义*****************/#define SECOND 0 /*相应数码管右边两位*/#define MINUTE 1 /*相应数码管中间两位*/#define HOUR 2 /*相应数码管左边两位*//********************定义四种工作模式***********************/#define CLOCK clockstr /*时钟模式*/#define ALART alartstr /*闹钟模式*/#define DATE datestr /*日期模式*/#define TIMER timerstr /*秒表模式*//****************如下是所有子函数声明*********************/void sys_init(void); /*系统初始化程序*/void display(void); /*动态刷新一次数码管子程序*/void clockplus(void); /*时间加 1S 子程序*/void update_clockstr(void); /*更新时间显示编码*/void update_alartstr(void); /*更新闹钟时间显示编码*/void update_datestr(void); /*更新日期显示编码*/void update_timerstr(void); /*更新秒表时间显示编码*/void deley(int); /*延时子程序*/void update...