




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、求89c52单片机 c语言实现数字时钟程序悬赏分:0 - 解决时间:2009-8-30 16:12 希望朋友们帮忙,给一下stc89c52单片机 c语言实现数字时钟的程序,初学单片机,请多关照 提问者: 爱在9黎明1971 - 一级最佳答案#include #include #define rest p3_4#define sclk p3_7#define data p3_6 unsigned char code displaycode=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90;unsigned char code controlad
2、dress=0x80,0x82,0x84,0x86,0x88, 0x8a,0x8c,0x8e,0x90,0xbe;unsigned char hour,minute,second;unsigned char day,month,week,year;unsigned char clockhour,clockminute;unsigned int num;unsigned char select,oneminute;bit bdata modeselect;void delay();void writetime();void display(unsigned char temp,unsigned
3、char mode);void sound() while(num=60) minute+; second=0; if(minute=60) hour+; minute=0; if(hour=24) hour=0;void interrupt1()interrupt 2 using 3 oneminute=second-1; switch(select) case 4: hour+; if(hour=24) hour=0; break; case 5: minute+; if(minute=60) minute=0; break; case 6: second+; if(second=60)
4、second=0; break; case 2: clockhour+; if(clockhour=24) clockhour=0; break; case 3: clockminute+; if(clockminute=60) clockminute=0; break; default: modeselect=0; et2=!et2; break; void timer1()interrupt 3 using 3 if(select) if(second=oneminute) select=0; tr1=0; void timer2()interrupt 5 using 3 sound();
5、 tf2=0; if(minute!=clockminute|hour!=clockhour) tr2=0;void delay() unsigned char i=255; while(-i) ; void display(unsigned char temp,unsigned char mode) if(temp=4|temp=2) p0=0; else p0=1; if(mode) p1=displaycodehour/10; else p1=displaycodeclockhour/10; delay(); if(temp=4|temp=2) p0=0; else p0=2; if(m
6、ode) p1=displaycodehour%10; else p1=displaycodeclockhour%10; delay(); if(temp=1|temp=2|temp=3) p0=0; else p0=4; p1=0xbf; delay(); if(temp=5|temp=3) p0=0; else p0=8; if(mode) p1=displaycodeminute/10; else p1=displaycodeclockminute/10; delay(); if(temp=5|temp=3) p0=0; else p0=16; if(mode) p1=displayco
7、deminute%10; else p1=displaycodeclockminute%10; delay(); if(temp=1|temp=2|temp=3) p0=0; else p0=32; p1=0xbf; delay(); if(temp=6) p0=0; else p0=64; if(mode) p1=displaycodesecond/10; else p1=displaycode0; delay(); if(temp=6) p0=0; else p0=128; if(mode) if(et2) p1=displaycodesecond%10+128; else p1=disp
8、laycodesecond%10; else p1=displaycode0; delay();void write(unsigned char bdata) unsigned char i=8; for(;i0;i-) if(bdata&0x01) data=1; else data=0; sclk=1; sclk=0; bdata=1; void writedata(unsigned char address,bdata) rest=0; sclk=0; _nop_(); rest=1; write(address); write(bdata); rest=0;unsigned char
9、read(unsigned char bdata) unsigned char tdata=0,i=8; rest=0; sclk=0; _nop_(); rest=1; write(bdata); for(;i0;i-) tdata=1; if(data) tdata=tdata|0x80; else tdata|=0x00; sclk=1; sclk=0; return tdata;void writetime() unsigned char i,time,temp3; temp0=second; temp1=minute; temp2=hour; for(i=0;i3;i+) time=
10、tempi%10; time|=(tempi/10)4; writedata(controladdressi,time); void writeyear() unsigned char i,year0,temp4; temp0=day; temp1=month; temp2=week; temp3=year; for(i=0;i4;i+) year0=tempi%10; year0|=(tempi/10)4; writedata(controladdressi+3,year0); void readtime() unsigned char i,time,temp3; for(i=0;i4)*1
11、0; tempi=time; second=temp0; minute=temp1; hour=temp2;void readyear() unsigned char i,year0,temp4; for(i=0;i4)*10; tempi=year0; day=temp0; month=temp1; week=temp2; year=temp3;void main() initial(); sound(); writedata(0x8e,0x00); writedata(0x84,0x12); writedata(0x8f,0x00); readtime(); writeyear(); re
12、adyear(); while(1) switch(select) case 0: display(0,1); break; case 1: if(num=2500) display(1,0); else display(0,0); break; case 2: if(num=2500) display(2,0); else display(0,0); break; case 3: if(num=2500) display(3,0); else display(0,0); break; case 4: if(num=2500) display(4,1); else display(0,1); break; case 5: if(num=2500) display(5,1); else display(0,1); break; case 6: if(num=2500) display(6,1); else display(0,1); break; case 7: writetime(); writetime(); writetime(); s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 帮别人车辆过户委托书
- 文秘工作心得体会
- 2024年湘中幼儿师范高等专科学校辅导员考试真题
- 历史城市文化政策研究基础知识点归纳
- 2025年产品开发和设计阶段试题
- 智慧空间下高校学生未来学习需求分析
- 特种纸企业经营管理方案
- 2025至2030年中国电动遥控双开门控制器行业投资前景及策略咨询报告
- 2025至2030年中国珐琅门行业投资前景及策略咨询报告
- 小学六年级作文写事
- 四川省英语高考试题及解答参考(2025年)
- 《传染病防治法》课件
- 中南运控课设-四辊可逆冷轧机的卷取机直流调速系统设计
- 风景园林专业中级职称《法律法规及技术标准》考试题及答案
- DB11T 893-2021 地质灾害危险性评估技术规范
- 呼吸系统测试题(含参考答案)
- 欧洲文明概论学习通超星期末考试答案章节答案2024年
- 民兵知识小常识
- 山西省大同市平城区2023-2024学年六年级下学期期末考试英语试卷
- 2023年高考真题-地理(河北卷) 含答案
- 大学本科教学指导委员会章程
评论
0/150
提交评论