云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

  • 62 次阅读
  • 3 次下载
  • 2025/6/23 15:20:24

{

clocksing=0; } } else {

clocksing=1; } } else {

clocksing=1; }

if(keyscan()==0xff) continue; keypro(); } }

/******************键扫描程序******************/ unsigned char keyscan(void) {

P3=0xff; keyval=P3;

if(keyval==0xff) {

return 0xff; }

delay(10000); if(keyval!=P3) {

return 0xff; } else {

while(P3!=0xff); return keyval; } }

/******************时钟中断及显示程序******************/ void t0int(void) interrupt 1 using 1 {

TH0=(0-2000)/256; //2ms TL0=(0-2000)%6;

P0=0xff; P1=0xff;

P1=bittab[dispindex];

if(mode==4&&P1==0xfd) //秒表处显示小数点的if语句 {

P0=segtab_dot[dispbuf[dispindex]]; } else {

P0=segtab[dispbuf[dispindex]]; }

if((dispindex==pos)&&(flash==1)&&(mode==2||(mode==3&&clock_shanshuo==0)))//闪烁控制程序 {

P0=0xff; P1=0xf0; }

dispindex++;

dispindex=dispindex&0x03; cnt++; cnt1++;

if(cnt1>=250) //0.5ms闪烁 {

cnt1=0;

flash=~flash; }

if(cnt>=500) //2ms*500=1s {

cnt=0; ss++;

if(ss>=60) {

ss=0; mm++;

if(mm>=60) {

mm=0; hh++;

if(hh>=24) {

hh=0;

} } }

if(mode==0) {

dispbuf[0]=mm/10; dispbuf[1]=mm; dispbuf[2]=ss/10; dispbuf[3]=ss; }

else if(mode==1||(mode==3&&clock_shanshuo==1)) {

dispbuf[0]=hh/10; dispbuf[1]=hh; dispbuf[2]=mm/10; dispbuf[3]=mm;

} } }

/******************按键选择,进入不同模式******************/ void keypro(void) {

switch(mode) {

case 0://显示分秒

if(keyval==0x7f) {

mode=1;

dispbuf[0]=hh/10; dispbuf[1]=hh; dispbuf[2]=mm/10; dispbuf[3]=mm; }

break;

case 1://显示时分

if(keyval==0x7f) {

mode=2;

dispbuf[0]=hh/10; dispbuf[1]=hh; dispbuf[2]=mm/10; dispbuf[3]=mm; }

break;

case 2://时间调整(只调整时分)

if(keyval==0x7f) //按键1 调整模式 进入闹钟模式 { mode=3; clock_hh=0; clock_mm=0;

clock_shanshuo=0;

hh=dispbuf[0]*10+dispbuf[1]; //保存调整后的时间 mm=dispbuf[2]*10+dispbuf[3];

dispbuf[0]=clock_hh/10; //显示闹钟的初始时间 dispbuf[1]=clock_hh; dispbuf[2]=clock_mm/10; dispbuf[3]=clock_mm; TR0=1; }

else if(keyval==0xbf) //按键2 加 {

if(pos==0) {

dispbuf[pos]++; if(dispbuf[pos]==3) {

dispbuf[pos]=0; } }

else if(pos==1) {

if(dispbuf[0]==0||dispbuf[0]==1) {

dispbuf[pos]++;

dispbuf[pos]=dispbuf[pos]; }

if(dispbuf[0]==2) {

dispbuf[pos]++;

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

{ clocksing=0; } } else { clocksing=1; } } else { clocksing=1; } if(keyscan()==0xff) continue; keypro(); } } /******************键扫描程序******************/ unsigned char keyscan(void) { P3=0xff; keyval=P3; if(keyval==0xff) { return 0xff; } delay(10000); if(keyval!=P3)

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com