51单片机做的电子时钟
更新时间:2023-10-04 02:57:01 阅读量: 综合文库 文档下载
/************************************************
用定时器T0方式一控制P10,P11每250ms闪烁一次, 用定时器T1方式1控制时分秒,数码管前两个为时针(fe,fd) 中间为分针(f7,ef),最后两个为秒针(bf,7f) *************************************************/ #include
#define uchar unsigned char #define uint unsigned int sbit P10=P1^0; sbit P11=P1^1; sbit S4=P3^2; sbit S3=P3^3; sbit S2=P3^4; sbit S1=P3^5;
uchar t,fenshi,fenge,miaoshi,shishi,shige,miaoge,nu1m=0,nu2m=0,nu3m=0; unsigned int nu4m=0,nu5m=0; unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管段选数组 unsigned char code tabletwo[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管段选数组
/******************************* 1ms延时函数
*******************************/ void delay1ms(uint t) { uchar j; while(t--) {for(j=0;j<115;j++) //1ms基准延时程序 {;} } }
/****************************************************** 秒针显示子函数
*******************************************************/ void displaymiao(uchar miaoshi,uchar miaoge) //秒针显示子函数 {P0=table[miaoshi]; P2=0xbf; //打开数码管P24 delay1ms(1);
P0=table[miaoge]; P2=0x7f; //打开数码管P23 delay1ms(1);
}
/***************************************************** 分针显示子函数
*****************************************************/ void displayfen(uchar fenshi,uchar fenge) //分钟显示子函数 {P0=tabletwo[fenshi]; P2=0xf7; //打开数码管P24 delay1ms(1);
P0=tabletwo[fenge]; P2=0xef; //打开数码管P23 delay1ms(1); }
/****************************************************** 时针显示子函数
******************************************************/ void displayshi(uchar shishi,uchar shige)//时针显示子函数 {P0=table[shige]; P2=0xfd; delay1ms(1); P0=table[shishi]; P2=0xfe; delay1ms(1); }
/******************************************************** 按键控制函数,每按S1(P17)一次,T1开始或停止 每按S2(P16)一次,秒针加一,加满60归0; 每安S3(P15)一次,分针加一,加满60归0; 每按S4(P14)一次,时针加一,加满60归0; ********************************************************/ void keyscan() { if(S1==0) { delay1ms(10); if(S1==0) { while(!S1); { TR1=~TR1; //启动或停止定时器T1,既时分秒 } } } if(S2==0) {
delay1ms(10); //按键消抖 if(S2==0) { while(!S2); //等待按键释放 nu3m++; if(nu3m==60) { nu3m=0; //清0 } } } if(S3==0) { delay1ms(10); //按键消抖 if(S3==0) { nu4m++; if(nu4m==60) { nu4m=0; //清0 } while(!S3); //释放按键 } } if(S4==0) { delay1ms(10); //消抖 if(S4==0) { nu5m++; if(nu5m==24) { nu5m=0; //清0 } while(!S4); //释放按键 } } }
/*************************************************** 主函数
****************************************************/ void main() {P10=1; //初始LED关闭
P11=1; //初始LED关闭 TMOD=0x11; //T0,T1做定时器工作在工作方式1,00010001B TH0=(65536-45872)/256; //T0装入初值 TL0=(65536-45872)%6;
TH1=(65536-45872)/256; //T1装入初值 TL1=(65536-45872)%6; EA=1; //打开总中断 ET0=1; //打开定时器0中断 ET1=1; //ET打开定时器1中断 TR0=1; //启动定时器0 TR1=1; //启动定时器1 while(1) //等待中断 {displaymiao(miaoshi,miaoge); displayfen(fenshi,fenge); displayshi(shishi,shige); keyscan(); } }
void T0_time() interrupt 1 //T0中断
{ TH0=(65536-45872)/256; //t0装入初值 TL0=(65536-45872)%6; nu1m++; if(nu1m==5) { nu1m=0; P10=~P10; P11=~P11; } }
/*************************************
定时器T1中断,nu3m为秒针,nu4m为分针 nu5m为时针,miaoshi就是秒针的十位, miaoge就是秒针的个位; fenshi分针的十位, fenge分针的个位; shishi时针的十位, shige时针的个位; o(︶︿︶)o 唉,英语不好伤不起,用汉语拼音挺时尚的吧。 元芳,你怎么看?
*************************************/ void T1_time() interrupt 3
{ TH1=(65536-45872)/256; //T1装入初值 TL1=(65536-45872)%6; nu2m++; if(nu2m==20) {nu2m=0; nu3m++; if(nu3m==60) {nu3m=0; nu4m++; } miaoshi=nu3m/10; miaoge=nu3m; if(nu4m==60) { nu4m=0; nu5m++; } fenshi=nu4m/10; fenge=nu4m; if(nu5m==24) { nu5m=0; } shishi=nu5m/10; shige=nu5m; } }
正在阅读:
51单片机做的电子时钟10-04
6.1.3平方根第三课时08-10
食品营养与生命运动10-14
公共基础知识汇总06-11
linux试题答案03-12
透析烟草品牌与烟草营销(上)(一)01-05
2018年上半年XX镇政府大气污染防治攻坚战工作情况汇报09-15
学校和大型以上餐饮店申办范本1104-16
冲压模具行业发展现状及技术趋势现状04-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单片机
- 时钟
- 电子
- 湘教版八年级地理上第三节中国的河流 - 滚滚长江教案
- 自动控制原理试题及参考答案2
- 马基材料分析题
- 蛋白质的分解代谢复习题
- 51单片机+带字库液晶12864+DS1302数字时钟C源程序(无按键修改功能)
- 索绪尔
- 2016届高考岳麓版历史一轮复习 第2单元 第1讲 古希腊和古罗马的政治制度 课时提升作业
- 如何引导大学生树立正确的理想信念
- 中国心理学会注册心理督导师名单
- 江苏省无锡市惠山三校联考2013-2014学年八年级上学期英语期中试题(word版含答案)
- 手动、电动工具管理规定
- 新闽教版四年级上册信息技术教案
- 卷烟营销中级技能鉴定真题及答案(市场技能部分)
- 空中华西村钢结构网架监理细则
- 西南大学17秋0950《数学教育评价》在线作业(参考资料)
- 浅谈歌唱中的呼吸
- 劳动法最全笔记
- 中学开展校际“骨干教师同课异构”活动实施方
- 管理会计(一)练习题
- 改革靠“顶层设计”还是“底层推动”?