资源简介
基于单片机的简易数字时钟仿真,课程设计结果。
(1)时间可调整。
(2)有闹钟功能。
(3)利用数码管或者液晶显示器显示时间(XX-XX-XX 由左向右分别为:时、分、秒,且每秒更新一次)。
(4)整点报时
代码片段和文件信息
#include
#include “8.h“
SYSTEMTIME time1;
SYSTEMTIME clocktime;
void displaytime()
{
DS1302_GetTime(&time1);
if(Change12_24)
time1.Hour %= 12;
TimeToStr(&time1);
GotoXY(71);
Print(time1.TimeString);
}
void clock()
{
GotoXY(00);
Print(“clock: “);
TimeToStr(&clocktime);
GotoXY(70);
Print(clocktime.TimeString);
while((key1 == 1) || (key2 == 1)) //按键key1或key2默认为高电平,此句进入循环
{
if(key1 == 0) //key1键调时间
{
Delay1ms(100);
if(key1 == 0)
{
if(option == 0)
{
clocktime.Hour++;
if(Change12_24)
clocktime.Hour %= 12;
else
clocktime.Hour %= 24;
}
else if(option == 1)
{
clocktime.Minute++;
clocktime.Minute %= 60;
}
else
{
clocktime.Second++;
clocktime.Second %= 60;
}
TimeToStr(&clocktime);
GotoXY(70);
Print(clocktime.TimeString);
}
}
if(key2 == 0) //key2键选择时分秒
{
Delay1ms(100);
if(key2 == 0)
{
option ++;
option %= 3;
}
}
if(key0 == 0) //key0退出
{
Delay1ms(100);
if(key0 == 0)
break;
}
displaytime();
}
}
void time_set()
{
GotoXY(00);
Print(“chang: “);
DS1302_GetTime(&time1);
if(Change12_24)
time1.Hour %= 12;
TimeToStr(&time1);
GotoXY(70);
Print(time1.TimeString);
while((key1 == 1) || (key2 == 1))
{
if(key1 == 0) //key1调节时间
{
Delay1ms(100);
if(key1 == 0)
{
if(option == 0)
{
time1.Hour++;
if(Change12_24)
time1.Hour %= 12;
else
time1.Hour %= 24;
}
else if(option == 1)
{
time1.Minute++;
time1.Minute %= 60;
}
else
{
time1.Second++;
time1.Second %= 60;
}
DS1302_SetTime(ds_hour time1.Hour);
DS1302_SetTime(ds_minute time1.Minute);
DS1302_SetTime(ds_second time1.Second);
DS1302_GetTime(&time1);
if(Change12_24)
time1.Hour %= 12;
TimeToStr(&time1);
GotoXY(70);
Print(time1.TimeString);
}
}
if(key2 == 0) //key2选择时分秒
{
Delay1ms(100);
if(key2 == 0)
{
option ++;
option %= 3;
}
}
if(key0 == 0) //key0退出
{
Delay1ms(100);
if(key0 == 0)
break;
}
displaytime();
}
}
void sec_watch()
{
char secondwatch[9];
unsigned int count = 0;
secondwatch[8] = ‘\0‘;
GotoXY(00);
Print(“watch: 00:00:00“);
while((key1 == 1) || (key2 == 1))
{
if(key1 == 0) //key1开始计时
{
Delay1ms(100);
if(key1 == 0)
{
while(key2 == 1) //key2停止计时
{
Delay1ms(10);
count++;
secondwatch[0] = count/3600/10 + ‘0‘;
secondwatch[1] = count/3600%10 + ‘0‘;
secondwatch[2] = ‘:‘;
secondwatch[3] = (count/60%60)/10 + ‘0‘;
secondwatch[4] = (count/60%60)%10 + ‘0‘;
secondwatch[5] = ‘:‘;
secondwatch[6] = count%60/10 + ‘0‘;
secondwatch[7] =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-12-30 15:59 数字时钟\
目录 0 2016-12-30 16:40 数字时钟\数字时钟4\
文件 13796 2010-12-28 20:59 数字时钟\数字时钟4\1228.LST
文件 9732 2010-12-28 20:59 数字时钟\数字时钟4\1228.OBJ
文件 26571 2010-12-29 08:26 数字时钟\数字时钟4\4
文件 6701 2010-12-29 08:26 数字时钟\数字时钟4\4.hex
文件 35 2010-12-29 08:26 数字时钟\数字时钟4\4.lnp
文件 32758 2010-12-29 08:26 数字时钟\数字时钟4\4.M51
文件 1344 2010-12-29 08:30 数字时钟\数字时钟4\4.Opt
文件 9879 2010-12-29 08:30 数字时钟\数字时钟4\4.plg
文件 2141 2010-12-29 08:28 数字时钟\数字时钟4\4.Uv2
文件 1345 2010-12-29 08:28 数字时钟\数字时钟4\4_Opt.Bak
文件 2143 2010-12-28 21:01 数字时钟\数字时钟4\4_Uv2.Bak
文件 5588 2010-12-29 08:26 数字时钟\数字时钟4\8.c
文件 6027 2010-12-29 08:01 数字时钟\数字时钟4\8.h
文件 18316 2010-12-29 08:26 数字时钟\数字时钟4\8.LST
文件 30402 2010-12-29 08:26 数字时钟\数字时钟4\8.OBJ
文件 6376 2005-03-22 15:22 数字时钟\数字时钟4\STARTUP.A51
文件 14048 2010-12-28 20:30 数字时钟\数字时钟4\STARTUP.LST
文件 749 2010-12-28 20:30 数字时钟\数字时钟4\STARTUP.OBJ
文件 118983 2010-12-29 08:29 数字时钟\数字时钟4\时钟仿真.DSN
文件 935 2016-12-30 16:40 数字时钟\数字时钟4\时钟仿真.PWI
- 上一篇:客户端对服务器端的pdf文件进行自动打印
- 下一篇:Pano2vr 全景图皮肤
相关资源
- 9——数字时钟.DSN
- 基于单片机控制的智能洗衣机设计的
- 基于51单片机的ds18b20的proteus仿真
- 单片机微波雷达信号检测程序
- 全功能MODBUS-TCP从站仿真软件
- 汇编语言的饮水机控制程序
- 51单片机12864液晶屏proteus仿真源代码
- 单片机简易计算器项目
- STC15系列单片机原理图/PCB库
- 通信系统仿真
- 基于单片机的数字电能表 程序设计
- 模拟电梯控制模拟电梯控制
- MULISM电路仿真模拟乘法器
- 基于51单片机的自动量程数字电压表
- 瑞利莱斯对数正态分布仿真
- 基于AT89C52单片机的智能交通灯系统设
- 基于STC89C52RC单片机的交通灯设计
- modbus RTU 的C51源程序单片机89S52编译器
- OFDM频偏估计算法的仿真
- 路灯控制系统完整版+PROTEUS仿真
- 基于msp430单片机PWM调速
- saber逆变仿真原理图文件
- 双积分AD仿真
- 多种波形发生器 的电路仿真 pcb
- VL53l0x的51单片机程序
- 铁电存储器FM25xx驱动程序15单片机
- [程序源代码]MSP430单片机原理与应用—
- proteus电子音乐闹钟
- omnet++下仿真100个节点的路由协议
- 单片机毕业设计。基于单片机的智能
评论
共有 条评论