- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1602时钟
1602时钟
/*用LCD1602液晶显示器进行设置时钟,有独立键盘调节时间程序*/
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
sbit RS= P2^6;//数据/命令选择端 (H/L)
sbit RW= P2^5;//读写/选择端(H/L)
sbit EP= P2^7;//使能信号
sbit K1=P3^0; //开关定义
sbit K2=P3^1;
sbit K3=P3^2;
uchar num,t;
uchar K1num;
char s,f,m; //可取负数
uchar code table[]= 2007-8-4 FRI;//日期显示
uchar code table1[]= 00:00:00; //时间显示
void init1(); //中断子函数
void delay(uint k) //延时函数
{
uint i,j;
for(i=k;i0;i--)
for(j=110;j0;j--);
}
void write(uchar com) //命令指令函数
{
RS=0; //根据时序图来设置
P0=com;
delay(5);
EP=1;
delay(5);
EP=0;
}
void read(uchar date) //写入指令函数
{
RS=1; //根据时序图来设置
P0=date;
delay(5);
EP=1;
delay(5);
EP=0;
}
void init() //初始化函数
{
RS=0;
EP=0;
RW=0;
write(0x38); //显示设置模式
write(0x0c); //显示开关控制
write(0x06); //光标设置
write(0x01); //清屏设置
write(0x80); //数据地址初始位
for(num=0;num15;num++) //查table表数据
{
read(table[num]); //读取表中内容
delay(20);
}
write(0x80+0x40);//从新设置数据指针
for(num=0;num11;num++)
{
read(table1[num]); //读取table1表中内容
delay(20);
}
}
void write_sfm(uchar add,uchar date) // 时分秒函数设置
{
uchar shi ,ge;
shi=date/10; // 取商
ge=date%10; //取余
write(0x80+0x40+add);//设置add位地置
read(0x30+shi); //设置十位地置
read(0x30+ge); //设置个位地址
}
void key() //独立开关控制
{ if(K1==0)
{
delay(5);
if(K1==0)
{
K1num++;
while(!K1); //判断按键是否按下
if(K1num==1) //按一下调节秒
{
TR0=0; //关定时器
write(0x80+0x40+9);//找到秒位置
write(0x0f); //光标闪烁
}
}
if(K1num==2)
{
write(0x80+0x40+6);//再按一下调节分地址
}
if(K1num==3) //第三次按下调节时
{
write(0x80+0x40+3);
}
if(K1num==4) //按四次回到正常计时
{
K1num=0;
write(0x0c);//光标不闪
TR0=1;
}
}
if(K1num!=0) //有按下
{
if(K2==0) //K2开关控制时分秒加
{
delay(5);
您可能关注的文档
- 彩电屡烧行管的原因分类.doc
- (常识)常见端口关闭.doc
- 彩电性能指标1.doc
- 影响农村劳动力转移的个人因素.doc
- 影响液压泵使用寿命的外在因素分析.doc
- 影响销售成败的五个细节.doc
- 影棚八大经典用光_.doc
- 影视翻译漫谈.doc
- 影评_此情可待成追忆--《如果爱》_电影评论库.doc
- 影调【私家编导课件】.doc
- 1602LCD简单时钟显示实验C语言.doc
- 17完成进行时态.doc
- 1分数的加法和减法.doc
- 2.3.3 - 通过Java语言进行BAPI调用.doc
- 2006电子商务的创新发展和突破2.doc
- 2009年考研英语历年真题阅读理解精读笔记(一-2).doc
- 2010.3 使用C8051F32带USB接口的单片机进行数据采集和USB接口通信(三).doc
- 2010-2011学年七年级语文下册期末复习系列《成语》(无答案) 苏教版.doc
- 2010.03.27 [我的建筑认识历程—去年给一位网友的e-mail].南萧亭(2005.11.20).doc
- 2010—2011学年度上期初三物理半期考试卷.doc
文档评论(0)