网站大量收购闲置独家精品文档,联系QQ:2885784924

单片机液晶时钟显示模块的C程序.doc

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

#include reg52.h #define uchar unsigned char #define uint unsigned int uchar code tabledu[]={ 0,1,2,3,4,5,6,7,8,9}; uchar code tablewe[]={20, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; uchar code *tableweek[7]={ MON,TUE,WED,THU,FRI,SAT,SUN}; sbit rs=P1^0; sbit rw=P1^1; sbit lcden=P1^2; sbit keybe=P3^2; sbit keysw=P3^3; sbit keyin=P0^0; sbit ring=P3^4; sbit L1=P0^4; void second(uchar,uchar); void minute(uchar,uchar); void hour(uchar,uchar); void day(uchar,uchar); void month(uchar,uchar); void year(uchar,uchar,uchar,uchar); void week(uchar); void delay(uchar); void delay1(uchar); uint dissec,dismin,dishou,disweek,disday,dismon,disyear; uchar count,a,num1=0,num2=0,sec1=0,sec2=0,min1=0,min2=0,hou1=0,hou2=0,week1=0,day1=0,day2=0,mon1=0,mon2=0,year1=0,year2=0,year3=0,year4=0; void write_com(uchar com) //液晶控制 { rs=0; P2=com; delay(1); lcden=1; delay(1); lcden=0; } void write_date(uchar date) //数据控制 { rs=1; P2=date; delay1(1); lcden=1; delay1(1); lcden=0; } void init() //初始化 { lcden=0; rw=0; write_com(0x38); //显示模式的设置 delay(2); write_com(0x0c); //开显示 delay(2); write_com(0x06); //读或者写入数据光标自动加1 delay(2); write_com(0x01); //清0,复位可重新开始 delay(2); } void string() //日期分隔符号 { write_com(0x84); delay(1); write_date(-); delay(1); write_com(0x87); delay(1); write_date(-); delay(1); write_com(0xc7); delay(1); write_date(:); delay(1); write_com(0xca); delay(1); write_date(:); delay(1); } void main() //主函数 { while(1){ init(); second(sec2,sec1); minute(min2,min1); hour(hou2,hou1); week(week1); day(day2,day1); month(mon2,mon1); year(year4,year3,year2,year1); L1=0; if(0==keysw) //按S18键可进行位调换 { delay(1); if(0==keysw) { num2++; if(num2==16) num2=1; } }while(!keysw); if(0==keyin) //按S1可进行数值增加 { delay(1); if(0==keyin) { switch(tablewe[num2]) { case 1:sec1++;if(10==sec1)sec1=0;break; case 2:sec2++;if(6==sec2)sec2=0;break; case 3:min1++;if(10==min1)min1=0;brea

文档评论(0)

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

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

1亿VIP精品文档

相关文档