急急急急!
1设计内容:
(1)显示时间:使用四位数码管显示时间(小时、分钟),熟悉并使用ATC2051单片机进行时间控制,设置RESET复位键驱动单片机。
(2)定时:使用12M的晶振焊接到单片机上
(3)附加功能:
①.时间误差调节:便成使单片机能正确读取按钮信息,设计调节按钮连接电路使数字时钟的时间与实际时间出现误差的时候能用按钮进行选择调整。
②.LED灯报时:将LED灯能按单片机设定的程序定时闪烁,做报时提醒,到了定点时间便闪烁报时。
2主要内容(包括课题来源及选题依据、课题工作计划、技术路线、实验(实践)方案、预期结果等)
有的话马上发我邮箱270940650@qq.com
//我这里有一个定时的闹钟,你把蜂鸣器的中断改为LED就行了,可以通过P2^0--P2^3实现秒表的显示和以及调时调分和调节闹钟以及闹钟的开关,有问题可以给我留言QQ834589429
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
code unsigned char tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9
sbit A1=P2^0;
sbit A2=P2^1;
sbit A3=P2^2;
sbit A4=P2^3;
sbit beep=P1^4;
unsigned char Shiwan;
unsigned char Wanwei;
unsigned char Qianwei;
unsigned char Baiwei;
unsigned char Shiwei;//定义十位
unsigned char Gewei,Naoling1,Naoling2,Naoling3,Naoling4; //定义个位
static unsigned char hour=12,minute=30,second=0,count=0;
static unsigned char alarmhour=12,alarmminute=29,i=0,j=0,k;
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
void xianshi(void)
{
Gewei=tab[second%10]; //个位显示处理
Shiwei=tab[second/10];//十位显示值处理
if(second%2==0)
{
Baiwei=tab[minute%10];
Qianwei=tab[minute/10];// 千位
}
else
{
Baiwei=(tab[minute%10]|0x80);//百位显示处理:加点的字码
Qianwei=(tab[minute/10]|0x80);
}
if(second%2!=0)
{
Wanwei=tab[hour%10];
Shiwan=tab[hour/10];
}
else
{
Wanwei=(tab[hour%10]|0x80);
Shiwan=(tab[hour/10]|0x80);
}
Naoling1=~tab[alarmhour%10];
Naoling2=~tab[alarmhour/10];
Naoling3=~tab[alarmminute%10];
Naoling4=~tab[alarmminute/10];
}
void timer0() interrupt 3 using 1
{
TH1=0x3c; //中断设置初始化
TL1=0xb0;
if(alarmhour==hour&&alarmminute==minute&&j==1)
{
beep=0;
}
}
/******************************************************************/
/* 定时器中断函数 */
/******************************************************************/
void timer1() interrupt 1 using 0
{
TH0=0xd8; //重新赋值
TL0=0xf0;
count++;
xianshi();
if (count==99) //100x10ms=1S,大致延时时间
{
count=0;
second++; //秒加1
if(second==60)
minute++;
{
if(second==60)
second=0;
{
if(minute==60)
hour++;
{
if(minute==60)
minute=0;
{
if(hour==24)
hour=0;
}
}
}
}
}
}
/******************************************************************/
/* 主函数 */
/******************************************************************/
void main()
{
TMOD |=0x01;//定时器设置 10ms in 12M crystal,工作在模式1,16位定时
TH0=0xd8;
TL0=0xf0;
IE= 0x82; //打开中断
TR0=1; //打开定时开关
xianshi();
EA=1;ET0=1;TMOD |=0x21;TR0=1; //开中断总开关,计数器0允许中断,设置中断模式,启动计数器0
ET1=1;TR1=1;
while(1)
{
{
if(!A3)
{
delay(10000);
if(!A3)
{
i++;if(i==7)i=0;
xianshi();
}
}
}
{
if(!A4)
{
delay(10000);
if(!A4)
{
i--;if(i==255)i=6;
xianshi();
}
}
}
switch(i)
{
case 0: //正常显示控制
{
P1=0x1e; //片选个位
P0=~Baiwei; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~Qianwei;//显示十位
delay(300); //短暂延时
P1=0x1b; //片选百位
P0=~Wanwei; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~Shiwan; //显示千位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
} ;break;
case 1: //调分控制
{
if(second%2!=0)
{
P1=0x1e; //片选个位
P0=~Baiwei; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~Qianwei;//显示十位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
}
else
delay(300);
delay(300);
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
minute++;if(minute==61)minute=0;
xianshi();
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
minute--;if(minute==255)minute=59;
xianshi();
}
}
}
};break;
case 2: //调时控制
{
if(second%2==0)
{
P1=0x1b; //片选百位
P0=~Wanwei; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~Shiwan; //显示千位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
}
else
delay(300);
delay(300);
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
hour++;if(hour==24)hour=0;
xianshi();
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
hour--;if(hour==255)hour=23;
xianshi();
}
}
}
};break;
case 3: //秒显示控制
{
P1=0x1e; //片选个位
P0=~Gewei; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~Shiwei;//显示十位
delay(300); //短暂延时
P1=0x1f;
P0=0xff;
delay(300);
delay(300);
delay(300);
};break;
case 4://闹钟控制
{
if((!A1)||(!A2))
{
delay(10000);
if((!A1)||(!A2))j++;
if(j==2)
j=0;
}
switch (j)
{
case 0:{
P1=0x1e; //片选个位
P0=~0x71; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~0x71;//显示十位
delay(300); //短暂延时
P1=0x1b; //片选百位
P0=~0x3f; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~0x40; //显示千位
delay(300); //短暂延时
delay(300);
};break;
case 1:{
P1=0x1e; //片选个位
P0=~0x37; //显示个位
delay(300); //短暂延时
P1=0x1d; //片选十位
P0=~0x3f;//显示十位
delay(300); //短暂延时
P1=0x1b; //片选百位
P0=0xff; //显示百位
delay(300); //短暂延时
P1=0x17; //片选千位
P0=~0x40; //显示千位
delay(300); //短暂延时
delay(300);
}
}
};break;
case 5://闹铃分钟调整
{
{
P1=0x1e;
P0=Naoling3;
delay(300);
P1=0x1d;
P0=Naoling4;
delay(300);
P1=0x1f;
P0=0xff;
delay(300);
delay(300);
delay(300);
}
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
alarmminute++;if(alarmminute==61)alarmminute=0;
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
alarmminute--;if(alarmminute==255)alarmminute=59;
}
}
}
};break;
case 6://闹铃小时调整
{
{
P1=0x1b;
P0=Naoling1;
delay(300);
P1=0x17;
P0=Naoling2;
delay(300);
P1=0x1f;
P0=0xff;
delay(300);
delay(300);
delay(300);
}
{
if(!A1)
{
delay(10000);//消抖
if(!A1)
{
alarmhour++;if(alarmhour==24)alarmhour=0;
}
}//按键处理
}
{
if(!A2)
{
delay(10000);//消抖
if(!A2)
{
alarmhour--;if(alarmhour==255)alarmhour=23;
}
}
};break;
default :break;
}
}
}
}
电子时钟开题报告
(1)系统设计主要包括显示部分和数字时钟模块设计、显示接口芯片的选择、串口通讯芯片的选择、电源模块的选择。 (2)系统软件设计 (3) 系统调试和实验结果的测试 五、设计成果 在整个设计过程中,硬件方面主要设计了STC89C52单片机的最小系统、DS1302接口电路、DS18B20接口电路、闹钟及LCD显示;软件方面借助各个渠道的资料,...
基于单片机的数字时钟设计开题报告
\/\/我这里有一个定时的闹钟,你把蜂鸣器的中断改为LED就行了,可以通过P2^0--P2^3实现秒表的显示和以及调时调分和调节闹钟以及闹钟的开关,有问题可以给我留言QQ834589429 include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 code unsigned char tab[]= {0x3f,...
基于51单片机简易时钟闹钟八位数码管显示Proteus仿真
本设计旨在实现一个基于51单片机的多功能数字时钟闹钟,其主要功能包括显示时、分、秒,并能设置时间和闹钟。该设计采用单片机内部定时器实现计时功能,通过八位数码管显示当前时间。用户可以对时、分、秒进行独立设置,设置时数码管将闪烁。此外,闹钟功能可让用户设置特定时间,当时间到达,蜂鸣器将每秒鸣响...
自动报时数字钟设计
1.3数字电子时钟的基本功能与设计要求 6 2数字电子时钟的硬件原理 6 2.1数字电子时钟的设计方案 6 2.1.1AT89C2051中央处理器 6 2.1.2按键电路 6 2.1.3时钟显示电路 7 2.2数字电子时钟的硬件组成 7 2.3AT89C2051单片机说明 7 2.4数字电子时钟的硬件系统 8 2.4.1数字电子时...
单片机课程设计8位数码管电子钟at89c52代码怎么写?
设计旨在打造一个基于51单片机的多功能数字时钟闹钟,通过八位数码管进行显示,并具备多种功能。主要功能包括采用单片机内部定时器实现计时,使用八位数码管显示时分秒,实现时、分、秒的加减设置并伴有闪烁提示,设置闹钟并配置其响铃间隔与持续时间,以及手动消除闹钟。通过 Proteus 仿真软件,实现从硬件到...
计算机专业怎样写毕业设计的开题报告?
一、设计任务(数字钟的功能):1.具有时、分、秒、计数显示功能,以24小时循环计时;2.具有清零,调节小时、分钟功能;3.具有整点报时功能,整点报时的同时LED灯花样显示。扩展部分:在基础功能上添加以下几个功能:秒表,倒计时和闹钟。目的是:掌握多位计数器相连的设计方法;掌握十进制,六进制,...
电子信息工程毕业论文
825. 数字电子秤的设计 826. 基于单片机的数字电子钟设计 827. 湿度传感器在农作物生长环境参数监测仪中的应用 828. 基于单片机的数字频率计的设计 829. 简易数控直流稳压源的设计 830. 基于凌阳单片机的语音实时采集系统设计 831. 简单语音识别算法研究 832. 基于数字温度计的多点温度检测系统 833. 家用可燃气体...
单片机毕业论文答辩陈述
单片机毕业论文开题报告参考 1. 课题名称: 数字钟的设计 近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋广泛,特别是工业测控、尖端武器和日常家用电器等领域更是因为有了单片机而生辉增色,不少设备、仪器已经把单片机作为核心部分。单片机应用技术已经成为一项新的工程应用技术。尤其是...
大学医学开题报告
大学医学开题报告【1】 【北京联合大学毕业设计(论文)开题报告】 一、课题任务与目的 1.课题任务 本课题是基于单片机的脉搏波提取电路的设计。设计采用数模转换器MAX1240芯片组成AD转换电路加上带通滤波电路、放大电路进行电压数据采集,然后将采集的脉搏信号即模拟电压值转换为12位数字值输入给单片机,单片机再将此数据...
求大专机电专业毕业论文的题目,谢谢
其中这些有开题报告 1. 用单片机进行温度的控制及LCD显示系统的设计 2. 基于MultiSim 8的高频电路仿真技术 3. 简易数字电压表的设计 4. 虚拟信号发生器设计及远程实现 5. 智能物业管理器的设计 6. 信号高精度测频方法设计 7. 三相电机的保护控制系统的分析与研究 8. 温度监控系统设计 9. 数字式温度计的设计...