《51单片机的24c02电子时钟程序和电路图》.doc

《51单片机的24c02电子时钟程序和电路图》.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《51单片机的24c02电子时钟程序和电路图》.doc

这是一个基于51,24C02的时钟教程,程序已经在protues中仿真,仿真图在下方!! 这个程序由1602显示,通过开发板测试了,还有结合了24c02pdf,24c02时序图,有了这些24c02时序序就没问题了!下面的有详细的程序解说。 主要的还有就是些按键程序,都比较简单的 -------------血顶猎鹰2011-4-13 程序如下,有注释 002.c #includereg52.h //52库文件 #includeintrins.h //1us延时库文件 #define uint unsigned int //宏定义 #define uchar unsigned char #include24c02.h //包含24c02头文件 sbit lcdrs=P2^4; //液晶的控制角 sbit lcdrw=P2^5; sbit lcden=P2^6; sbit s1=P3^0; //三个调时钟的按键 sbit s2=P3^1; sbit s3=P3^2; sbit beep=P2^3; //蜂鸣器 uchar count,s1num; char miao,shi,fen; uchar code table[]=2011-04-09 SAT ; void delayms(uint z) //延时毫秒的程序 { uint x,y; for(x=z;x0;x--) for(y=112;y0;y--); } void di() //蜂鸣器的响 { beep=0; delayms(100); beep=1; } void write_cmd(uchar cmd) //液晶写命令程序 { lcden=0; lcdrs=0; lcdrw=0; P0=cmd; _nop_(); lcden=1; delayms(1); lcden=0; _nop_(); } void write_dat(uchar dat) //液晶写数据程序 { lcden=0; lcdrs=1; P0=dat; _nop_(); lcden=1; delayms(1); lcden=0; _nop_(); } void lcdint() //液晶初始化程序 { lcden=0; write_cmd(0x38); write_cmd(0x0c); write_cmd(0x06); write_cmd(0x01); delayms(1); } void write_sfm(uchar s,uchar f,uchar m) //数据在液晶显示 { uchar ss,sg,fs,fg,ms,mg; ss=s/10;sg=s%10; fs=f/10;fg=f%10; ms=m/10;mg=m%10; write_cmd(0xc0+4); write_dat(0x30+ss); write_dat(0x30+sg); write_cmd(0xc0+7); write_dat(0x30+fs); write_dat(0x30+fg); write_cmd(0xc0+10); write_dat(0x30+ms); write_dat(0x30+mg); } void keyscan() { if(s1==0) //如果功能按键1按下 { delayms(5); //去抖动 if(s1==0) { while(!s1); //等待松手 s1num++; //主要还是记下次数 di(); //蜂鸣器响 if(s1num==1) //按一下秒钟 { TR0=0; write_cmd(0xc0+10); //指针显示闪烁 write_cmd(0x0f); } if(s1num==2) { write_cmd(0xc0+7); } if(s1num==3) { write_cmd(0xc0+4); } if(s1num==4) { s1num=0; count=0; write_cmd(0x0c); TR0=1; } } } if(s1num!=0) { if(s2==0) //如果按键2按下执行加 { delayms(5); if(s2==0) { while(!s2); di(); if(s1num==1) //对应调整分秒时 {

文档评论(0)

jykt + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档