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

c语言 提示时间 程序(带声音提示时间、就是闹铃)要在DOS在运行的。做好了加50分

发布网友 发布时间:2023-04-28 15:44

我来回答

1个回答

热心网友 时间:2023-10-29 02:37

#include <at89x52.h>
#include <DS1302.h>
//定义共阳极字型码0123456789-
unsigned char code dispcode[]=;
unsigned char time[]=;//用来储存时间
unsigned char date[]=;//用来储存日期
unsigned char year[]=;//用来储存年份
unsigned char week[]=;//用来储存星期

SYSTEMTIME time1; //在ds1302.h文件中已经定义了一个名字为SYSTEMTIME的结构体,在这里我们定义一个变量名
//为time的SYSTEMTIME结构体
void delay(unsigned char i) //延时子程序
{
unsigned char j;
while((i--)!=0)
{
for(j=123;j>0;j--);
}
}
unsigned char button_time(n,x,y) //时钟调整子程序
unsigned char n,x,y;
{
if(P1_7==0)
{
delay(50);
if(P1_7==0)
{
n++;
if(n==x)
n=0;
while(P1_7==0); //等待按键释放
}
}

if(P1_5==0)
{
delay(50);
if(P1_5==0)
{
if(n==0)
n=y;
else
n--;
while(P1_5==0);
}
}
return n;
}

unsigned char button_date(n,x,y) //日期调整子程序
unsigned char n,x,y;
{
if(P1_7==0)
{
delay(50);
if(P1_7==0)
{
n++;
if(n==x)
n=1;
while(P1_7==0);
}
}

if(P1_5==0)
{
delay(50);
if(P1_5==0)
{
if(n==1)
n=y;
else
n--;
while(P1_5==0);
}
}
return n;
}
unsigned char button_year(n,x,y) //年份调整子程序
unsigned char n,x,y;
{
if(P1_7==0)
{
delay(50);
if(P1_7==0)
{
n++;
if(n==x)
n=2;
while(P1_7==0);
}
}

if(P1_5==0)
{
delay(50);
if(P1_5==0)
{
if(n==2)
n=y;
else
n--;
while(P1_5==0);
}
}
return n;
}
void display(minute10,minute1,hour10,hour1) //显示子程序
unsigned char minute10,minute1,hour10,hour1;
{

P2=0xfe;
P0=dispcode[minute10];//显示分的十位
delay(1);

P2=0xfd;
P0=dispcode[minute1]; //显示分的个位
delay(1);

P2=0xfb;
P0=dispcode[hour10]; //显示时的十位
delay(1);

P2=0xf7;
P0=dispcode[hour1]; //显示时的个位
delay(1);
}
void display1(week1)
unsigned char week1;
{

P2=0xef;
P0=dispcode[week1];
delay(1);
}

void main()
{
unsigned char flag,aa=2,bb=0;
Initial_DS1302(); //初始化DS1302这个时钟芯片,
while(1)
{
DS1302_GetTime(&time1); //读取时间参数

time[3]=(time1.Minute)%10; //把分的个位数据存入time[3]
time[2]=(time1.Minute)/10; //把分的十位数据存入time[2]
time[1]=(time1.Hour)%10; //把时的个位数据存入time[1]
time[0]=(time1.Hour)/10; //把时的十位数据存入time[0]
date[3]=(time1.Day)%10;
date[2]=(time1.Day)/10;
date[1]=(time1.Month)%10;
date[0]=(time1.Month)/10;
year[1]=(time1.Year)%10;
year[0]=(time1.Year)/10;
week[0]=(time1.Week);

display1(week[0]); //显示星期

if(P1_4==0) //如果按下Time Start键一下,时钟开始正常显示时间,再按一下,显示日期,再按一下,显示年份
{
delay(50);
if(P1_4==0)
{
flag++;
if(flag>2)
{
flag=0;
}
}
while(P1_4==0);
}
if(P1_6==0) //如果按下Time Set键一下,开始显示日期,再按一下开始显示年份,再按一下,进入年份,日期,星期和时间的调节模式
{
delay(50);
if(P1_6==0)
{
flag++;
if(flag>8)
{
flag=0;
}
}
while(P1_6==0);
}

switch(flag)
{
case 0:display(time[0],time[1],time[2],time[3]); //调用子函数display,把存入数组time的数据给显示出来
break;

case 1:display(date[0],date[1],date[2],date[3]); //调用子函数display,把存入数组date的数据给显示出来
break;
case 2:display(aa,bb,year[0],year[1]); //调用子函数display,把存入数组year的数据给显示出来
break;

case 3:time1.Year=button_year(time1.Year,2099,2098); //调整年
DS1302_SetTime(0x8c,time1.Year);
display(aa,bb,year[0],year[1]);
break;

case 4:time1.Month=button_date(time1.Month,13,12); //调整月
DS1302_SetTime(0x88,time1.Month);
display(date[0],date[1],10,10);
break;

case 5:time1.Day=button_date(time1.Day,32,31); //调整日
DS1302_SetTime(0x86,time1.Day);
display(10,10,date[2],date[3]);
break;
case 6:time1.Week=button_date(time1.Week,8,7); //调整星期
DS1302_SetTime(0x8a,time1.Week);
display1(week[0]);
break;

case 7:time1.Hour=button_time(time1.Hour,24,23); //调整时
DS1302_SetTime(0x84,time1.Hour);
display(time[0],time[1],10,10);
break;

case 8:time1.Minute=button_time(time1.Minute,60,59); //调整分
DS1302_SetTime(0x82,time1.Minute);
display(10,10,time[2],time[3]);
break;

}

}

}
追问#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar temp;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
P1=0xfe;
temp=P1;
while(1)
{
temp=_crol_(temp,1);
P1=temp;
delay(50);
}
}中的delay是库函数吗?还是随意写个词都行?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
振宇教育创始人简介 北京金振宇科贸有限公司怎么样? 中农振宇(北京)生物技术有限公司怎么样? 标准单元库设计流程 标准单元库的介绍 怎么恢复已拉下黑名单的QQ好友 把qq好友加入黑名单怎么恢复 若在衡水滏阳中学复读已经交费,又被其他大学录取,所交费怎么处理? 衡水一中入学条件 衡水中学复读生什么时候报名缴费啊? 哪里有带音效的时钟FLASH呀~~~急~~~ 请问一下?哪里可以买到不静音的挂钟喜欢秒钟走动的声音! 这种类型的钟叫什么名字? 五四青年节赞美青春的唯美句子大全 半年不用的苹果手机会不会卡 社保卡年检和认证 社保卡怎么年检? 我想在周大福买一个玉手镯要一万左右不知道这样的镯子好不好呢 周大福卖的翡翠怎么样天然的吗价钱公道吗比他好的品牌有哪些 自己在家怎么用土豆做薯条 薯条是用土豆炸的还是红薯炸的 为什么好多西安公办园的邮箱后面都是@163.com 金喜善的love 的歌词什么意思 hebe的love歌词想要表达的是什么东西呢 neonlove这首歌表达的含义 电脑不玩游戏之前不卡 玩了游戏之后看视频会变得很卡很卡直接蓝屏重启? &#xFEFF;纷纭杂沓什么意思?有什么典故? 抖音直播佛像被封禁同质化博眼球是什么意思 音波收入是什么意思? 圣诞节平安夜在线漫画的手抄报 圣诞节手抄报 额外的意思额外的意思是什么 俄罗斯人怎样去加里宁格勒的,可以随意通过波兰和立陶宛吗 可以隐藏游戏的软件有哪些手机软件隐藏软件推荐 用微商助手加好友会封吗? 财付通的快捷支付是不是不用往财付通里冲钱直接从银行卡里扣 水杯底部7代表什么 水杯底部7的解释 刷国开网是什么 国家开放大学官方报名网站在哪里?怎么报名? 山东省国开大学电大怎么报名?2023年最新报名入口 湖北省国家开放大学(武汉电大)2023年春季报名入口(官方) 湖北省国家开放大学可以自己在官网报名吗?自己报名和找机构有什么区别 国开网上传附件不传影响分数吗 2023年春湖北省国家开放大学(电大)官方报名咨询入口 厨房水龙头水太凉冬天怎幺办? 水龙头冷热接反可以吗 增额红利法与现金红利法中的购买交清保额有什么区别? ... 常见的感冒类型 支付宝过路费如何缴纳 三宥什么意思 吞并的解释 二字诗意淡雅古风女名 且行且珍惜年华自成诗是什么意思?