问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机时钟电子钟程序

发布网友 发布时间:2022-05-06 23:36

我来回答

3个回答

热心网友 时间:2023-10-08 15:26

#include <reg51.h>
sbit sec=P1^7;//秒显示
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_6=P2^6;
static int i=1;//LED位控制
static int key;//键盘
static char keytime;
static int second_T0;//T0秒计数
static int second_T1;//T1秒计数
unsigned char count_s;//秒
unsigned char count_m;//分
unsigned char count_h;//时
static bit flag_1=1;//LED分钟个位显示标志位
static bit flag_2=1;//LED分钟十位显示标志位
static bit flag_3=1;//LED小时个位显示标志位
static bit flag_4=1;//LED小时十位显示标志位
int m1,m2,h1,h2;//LED取值
unsigned char led[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
main()
{
void delay_10ms();//延时10ms
bit flag_m,flag_h;//分、时标志位
unsigned char x_temp,y_temp,readkey;//键盘变量
TMOD=0x11;
TH0=0xfc;
TL0=0x18;//1ms
TH1=0x3c;
TL1=0xb0;//50ms
EA=1;//总中断
IP=1;//优先级
ET0=1;//T0中断
ET1=1;//T1中断
PT0=1;//T0优先
TR0=1;//打开T0
TR1=1;//打开T1
P0=0;//LED输出
P2=0xf7;//置P2为11110111
keytime=0xe;
second_T0=1000;//计数1000
second_T1=10;//计数18
while(1)
{
if(count_s==0x3c)//秒计数60
{
count_m++;//分钟
flag_m=1;//分钟进位标志
count_s=0;//秒清零
}
if(count_m==0x3c&&flag_m==1)//分60
{
count_h++;//小时
flag_h=1;//小时进位标志
count_m=0;//分钟清零
}
if(count_h==0x18&&flag_h==1)
{
count_h=0;//小时清零
}
m1=count_m/10;//分钟十位
m2=count_m-m1*10;//分钟个位
h1=count_h/10;//小时十位
h2=count_h-h1*10;//小时个位
if(P2_3==0)//如果P2_3为零
{
x_temp=P2&0xff;//将第一次按键保存在x_temp
delay_10ms();//延时
P2=0xf7;//置P2为11110111
y_temp=P2&0xff;//将第一次按键保存在y_temp
if(x_temp==y_temp)//x_temp是否等于y_temp
{
readkey=x_temp;//将值保存在readkey
}
else
{
readkey=0;//如果第一次和第二次按键不一样readkey为0
}
switch(readkey)//查表
{
case 0xf6:key=1;break;
case 0xf5:key=2;break;
case 0xf3:key=3;break;
default:break;
}
}
}
}
void Time_T0() interrupt 1//T0中断5ms
{
TH0=0xfc;
TL0=0x18;//重载1ms
while(second_T0==0)//循环1000次为1s
{
second_T0=1000;
sec=~sec;//秒指示灯取反
count_s++;//每秒加1
}
second_T0--;
if(i==1&&flag_1==1)//LED分钟个位显示
{
P0=(led[m2]|0x80);
}
else if(i==2&&flag_2==1)//LED分钟十位显示
{
P0=(led[m1]|0x40);
}
else if(i==3&&flag_3==1)//LED小时个位显示
{
P0=(led[h2]|0x20);
}
else if(i==4&&flag_4==1)//LED小时十位显示
{
P0=(led[h1]|0x10);
}
else if(i==5)//显示位清零
{
i=0;
}
i++; //显示位累加
}
void Time_T1() interrupt 3//T1中断
{
TH1=0x3c;
TL1=0xb0;//重载50ms
while(second_T1==0)//定时600ms循环
{
second_T1=10;//循环次数
if(key==1)//按键1
{
flag_1=~flag_1;//LED分钟个位显示取反
flag_2=~flag_2;//LED分钟十位显示取反
flag_3=1;//LED小时个位显示控制置位
flag_4=1;//LED小时十位显示控制置位
if(flag_1==0&&flag_2==0)//如果LED分钟显示控制位关闭
{
P0_7=0;//个位
P0_6=0;//十位
}
}
if(key==2)//按键2
{
flag_3=~flag_3;//LED小时个位显示取反
flag_4=~flag_4;//LED小时十位显示取反
flag_1=1;//LED分钟个位显示控制置位
flag_2=1;//LED分钟十位显示控制置位
if(flag_3==0&&flag_4==0)//如果LED小时显示控制位关闭
{
P0_5=0;//个位
P0_4=0;//十位
}
}
if(key==3)//按键3恢复显示控制位置位
{
flag_1=1;
flag_2=1;
flag_3=1;
flag_4=1;
}
}
while(keytime==0)
{
if(P2_6==0)
{
if(key==1)
{
count_m++;
if(count_m==0x3c)
{
count_m=0;
}
count_s=0;
}
if(key==2)
{
count_h++;
if(count_h==0x18)
{
count_h=0;
}
count_s=0;
}
}
keytime=0xe;
}
keytime--;
second_T1--;//递减
}
void delay_10ms()
{
int n;
int count;
for(count=10;count>=1;count--)
{
for(n=0;n<124;n++)
{
;
}
}
}

热心网友 时间:2023-10-08 15:27

这太简单了,不过20分太少了点!

热心网友 时间:2023-10-08 15:27

我有51的,
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 谁知道单片机电子钟设计的程序? 我想用单片机的显示器写一电子钟可是不知道怎么编才能调整时间望高人指教我的程序如下: 单片机设计数字电子钟的程序 取名字:陈汐*,是女孩子,前面两字确定,后面加什么字更好呢? 用单片机做一个电子时钟 单片机电子钟程序 minecraft story mode在哪下载 手机怎么玩我的世界故事模式 李佳琦付鹏合开公司,“小助理”摇身变股东,他俩当年到现在究竟有何纠葛? 《我的世界:故事模式》将登陆任天堂Wii 李佳琦与“小助理”付鹏合开公司,两人当初为何会分道扬镳? 有没有帮忙找回qq,啥都忘了?多谢各位大佬! 我的世界故事模式可以联机吗 我的qq号码丢了,有人能帮我找回来吗?重谢. 玩完Minecraft故事模式我一直有一个问题,也许是我对麦块还不太了解吧,Petra和Jesse 我的世界故事模式怎么设置中文 附中文注册表 我的世界故事模式的主要剧情 我的世界故事模式可以联机玩吗 联机方法详解 新浪微博有没有白名单设置? 我qq号被盗了,有没有网络高手,或者其他的办法帮我找回qq号,拜托了 51单片机电子时钟怎样编辑程序并输入实现计时 单片机电子时钟编程 求救!!单片机编程电子钟!!! 一个51单片机电子钟程序,求详细的解释啊急急急!!! 晴天小熊的甜嘴巴读后感是什么 梦见好多小蛇钻进自己的身体但被我打掉了 梦见大蛇钻进我身体跑一圈又出来,被我打死了 我梦见蛇进入我体内我把它咬死了是怎么回事 耽美父子胎穿宫廷宠文 华硕主板解决办法? 有没有胎穿父子的年上文,宫廷文也行,但是要是父子年上的,最好是冷漠骄傲的,谢谢 对于新手acm,哪个OJ好 找耽美穿越文。。最好是师生或者是父子的 南非进口红心柚子西柚白色部分是红色的吗?就是皮和肉中间层 电脑防浪涌保护 华硕一体机出现集电极电涌是什么原因 得把主板电涌全保护关了才能进系统 古代耽美父子宠文 帝王攻 穿越bl小说(父子文)下载 电脑玩会儿游戏就重启,华硕主板的电涌全保护功能可以关吗