┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
while(1) //无限循环
{ if(P3_5==0) //与P3_5引脚连接的按键按下
{ for(i=20;i>0;i--) //循环语句延时
for(j=248;j>0;j--); //循环语句延时
if(P3_5==0) //如果按键确实按下
{ keycnt++; //次数变量加1
switch(keycnt) //根据次数变量的值分支选择
{ case 1: //若是次数变量等于1
TH0=0x06;
TL0=0x06; //定时器初值为6,所以溢出计数值为250μs,时钟为12MHz
TR0=1; //启动定时器0运行
break;
case 2: //若是次数变量等于2
TR0=0; //停止定时器0运行
break;
case 3: //若是次数变量等于3
keycnt=0; //次数变量清 0
second=0; //秒变量清0
break;
} //分支选择结束
while(P3_5==0); //等待按键抬起
} }
P1=dispcode[second/10]; //显示秒变量十位
P0=dispcode[second%10]; //显示秒变量个位
} }
void t0(void) interrupt 1 using 0 //定时器0中断服务程序
{
tcnt++; //每中断1次,tcnt加1
if(tcnt==400) //如果tcnt=400 ,则执行如下语句
{ //0.25ms*400=100ms
tcnt=0; //将tcnt清0
second++; //秒变量加1
if(second==100) //如果秒变量等于100
{ second=0; } //将秒变量清0
} }
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |