单片机实现电子钟万年历秒表闹铃.doc
文本预览下载声明
.
. . .
程序清单
***************************************************************/
//项目名称: 数字电子钟
//项目设计者:
//项目设计时间: 2011年12月23日
//项目功能: 电子钟上电或按键复位后能自动显示系统提示符“P.”, 并不断闪烁进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。电子钟能显示年月日时分秒、秒表,任意时间闹铃,整点闹铃
/**************************************************************/
/* crystal=12Mhz */
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
sbit kaig=P1^0; /*启动/调制键*/
sbit ksec=P1^1; /*调整秒/日/秒表开关*/
sbit kmin=P1^2; /*调整分/月/显示秒表*/
sbit khour=P1^3; /*调整时/年的低两位*/
sbit date=P1^4; /*显示日期开关*/
sbit bai=P1^5; /*调整年高二位/整点闹钟开关*/
sbit save=P1^6; /*保存设置的闹铃时间*/
sbit offl=P1^7; /*闹铃开关*/
sbit loud=P3^1; /*扬声器*/
uint num=0,sec=0,min=0,hour=0,hao=0,miao=0,fen=0,shi=0;
// 计时 秒 分 时 毫秒 秒 分 时
uint day=1,mou=1,year=2000,dx=0,co=0,stopnao=0,shour=0,smin=2;
// 日 月 年 显示 整点//闹铃开关 时 分
uchar secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
//时间 秒个位 秒十位 分个位 分十位 时个位 时十位
uchar i=0, flag=0, j=0, yearqian=0, yearbai=0;
// 上电标志 电子钟启停标志 秒表启动标志 年千位 年百位
uchar moushi=0,mouge=0,dayge=0,dayshi=0,yearshi=0,yearge=0;
// 月十位 月个位 日个位 日十位 年十位 年个位
uchar haoshi=0,haoge=0,miaoshi=0,miaoge=0,fenge=0,fenshi=0,shige=0,shishi=0;
//秒表 毫秒十位 个位 秒十位 秒个位 分个位 分十位 时个位 时十位
Unsigned char code
table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
/* ********0***1****2****3****4****5****6****7****8***9************/
void delay(unsigned int z); //延时1ms函数
void time0(); // 定时器0中断方式工作
void time1(); // 定时器1中断方式工作
void display(); //显示子程序
void keyscan(); //键扫描键功能子程序
/********************************************************************/
//函数名: main()
//功能: 主函数
//调用函数:display(),keyscan()
/***************************************************************
显示全部