标题:
数字电子钟 共阳数码管显示,带开启关闭键,调时调分调秒键
[打印本页]
作者:
对着背影说爱你
时间:
2016-11-11 19:19
标题:
数字电子钟 共阳数码管显示,带开启关闭键,调时调分调秒键
数字电子钟,很基础的,用得共阳数码管显示,四个按键,分别是开启关闭键,调时调分调秒键。和大家一起学习。
0.png
(58.7 KB, 下载次数: 91)
下载附件
2016-11-12 19:22 上传
完整的代码下载:
Practice1--要求1.zip
(73.99 KB, 下载次数: 34)
2016-11-11 19:17 上传
点击文件名下载附件
这是比较基本的电子钟,用数码管显示
下载积分: 黑币 -5
/*******************************************************************
程 序 名:数字电子时钟模块化程序(缓冲数组)
编 写 者:龙皓明
指导老师:王韧
时 间 :2016.8.12
功 能 :显示时分秒,设有四个功能键:启动/停止,调时,调分,调秒
使用说明:将单片机的P2口用排线连于J31即73ls573位选(P20对I11),P0口
连于J32即数码管段选(P00对O11),P1口连接J16(P10--P7...S1--S7)
********************************************************************/
#include <reg52.h>
#include "delay.h" //延时头文件
#include "display.h" //显示函数头文件
#include "set_find_code.h" //设置缓冲数组文件
#include "key.h" //键扫描函数文件
uchar find_code[8];
bit sign=0;
uchar i,hour,minute,second,keyzhi,c=0;
/*****************主函数****************/
void main()
{ hour=8; //设置小时初始值
minute=30; //设置分钟初始值
second=0; //设置秒钟初始值
TMOD=0x01; //设置定时器0为工作方式1
TH0=(65536-50000)/256; //定时50ms高8位求模
TL0=(65536-50000)%256; //定时50ms低8位求模
EA=1; //开总中断
ET0=1; //开定时器0中断
//TR0=1;
set_find_code(12,12,12,12,12,12,12,10);//显示系统提示符“P.”
while(1)
{
display(find_code);
keyzhi=key_scan(); //键扫函数,提取返回值(即键值)
if(keyzhi==0x01)
{
sign=~sign; //取反,判定开启/暂停
if(sign==1) //判定开启电子钟
{
TR0=1; //开启定时器0,电子钟运行
display(find_code); //电子钟显示
}
if(sign==0) //判定暂停电子钟,进入调节模式
{
TR0=0; //关闭定时器0,电子钟停止运行
keyzhi=key_scan();
while(keyzhi!=0x01) //如果开启/暂停键没有按下
{
keyzhi=key_scan();//读取键值
switch(keyzhi) //进入调时/分/秒模式
{
case 0x02: hour++;if(hour==24) //调时键按下并释放后时钟+1
{
hour=0; //调到24时时清零
}
set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);
break;
case 0x04: minute++;if(minute==60)//调分键按下并释放后分钟+1
{
minute=0; //调到60分时清零
}
set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);
break;
case 0x08: second++;if(second==60)//调秒键按下并释放后秒钟+1
{
second=0; //秒调到60时清零
}
set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);
break;
default : display(find_code);break; //稳定显示所有数据
}
}
}
}
}
}
void timer0() interrupt 1 //定时器0中断入口
{
TH0=(65536-50000)/256; //定时器重赋初值
TL0=(65536-50000)%256;
c++; //中断次数
if(c==20)
{
c=0;
second++;
if(second==60) //计时一分钟后清零
{
second=0;
minute++; //秒钟每计时一分钟,分钟自+1
if(minute==60) //计时一小时后清零
{
minute=0;
hour++; //分钟每计时一小时,时钟自+1
if(hour==24) //24小时倒计时到
{
hour=0; //清零
}
}
}
}
set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);
} //送显示数据
复制代码
作者:
songsiyuan
时间:
2017-2-10 09:02
没有钱下载不下来
作者:
对着背影说爱你
时间:
2017-8-8 11:09
songsiyuan 发表于 2017-2-10 09:02
没有钱下载不下来
你要的话我可以发给你
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1