




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建工施工合同的利益分配3篇
- 化妆品研发员试用合同范例2篇
- 2025中职语文教师教学工作计划(3篇)
- 技术改造借款申请书(5篇)
- 企业合作经营合同集锦(15篇)
- 村集体小产权房屋买卖合同(19篇)
- 新任班主任工作计划(15篇)
- 维修合同范本(19篇)
- 机工工作总结(5篇)
- 缝制设备数字化设计与制造考核试卷
- 2024年离婚不离家互不干涉的婚姻协议书范文
- 2024秋期国家开放大学《可编程控制器应用实训》一平台在线形考(形成任务1)试题及答案
- 对我国地方档案立法原则的探讨
- 新209道100以内四个数字的加减法混合题目
- 山东省烟台市2024-2025学年高二地理下学期期末考试试题
- 非油气探矿权转让申请书
- 企业员工心理健康培训主题:构建和谐职场促进员工福祉
- 第七章第四节创新实验葡萄糖银镜反应实验的改进设计课件高一下学期化学人教版
- 2023年法律职业资格《客观题卷一》真题及答案
- 民宿合同转让协议书
- 航天科工网上测评题库
评论
0/150
提交评论