1602显示汉字加时间.docVIP

  • 32
  • 0
  • 约5.1千字
  • 约 7页
  • 2016-10-23 发布于浙江
  • 举报
1602显示汉字加时间

/********************************************************************** 功能 :1602显示汉字(年月日)走时 WEB :WWW.QXMCU.COM QQ :863888999 测试单片机 :STC89C52RC 外部晶振 :11.0592M 调试环境 :KEIL3 调试硬件平台:使用 清翔电子科技 QX-MCS51单片机开发板测试通过 备注 :张强提供 日期 : 文件名 : //-------------------------程序功能-------------------------// 利用定时器0走时,1602显示,按键可调时间。 //---------------------------备注---------------------------// //-------------------------使用说明-------------------------// 硬件平台:QX-X3; KEY13选择调节时分秒,KEY14加,KEY15减。 硬件平台:QX-MCS; S2选择调节时分秒,S3加,S4减,S5确认。 **********************************************************************/ #include reg52.h #define uchar unsigned char #define uint unsigned int sbit lcdrs = P3^5; //液晶引脚定义 sbit led_cs = P3^6; sbit lcden = P3^4; sbit dx = P2^7;//数码管引脚定义 sbit wx = P2^6; sbit key1 = P3^0; sbit key2 = P3^1; sbit key3 = P3^2; sbit keyE = P3^3; uchar num,key1num,count,hour,min,sec; uchar code cg_1602[]={ 0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02, 0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00, 0x0f,0x09,0x09,0x0f,0x09,0x09,0x0f,0x00};//年月日 /*延时函数*/ void delay(uint xms) { uint i,j; for(i=xms;i0;i--) for(j=114;j0;j--); } /*1602液晶*/ void write_com(uchar com)//写命令 { lcdrs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date)//写数据 { lcdrs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; } void write_by_xy(uchar x,uchar y)//坐标定位 { uchar address; if(y==0) address=0x80+x;//y=0,写第一行 else address=0xc0+x;//y=1,写第二行 write_com(address); } /*void write_char(uchar x,uchar y,uchar date)//坐标定位显示 { write_by_xy(x,y);//先定位 write_data(date);//后写数 }*/ void write_string(uchar x,uchar y,uchar *s)//写字符串 { write_by_xy(x,y);//设定显示位置 while(*s)//write character { P0=*s; write_data(*s); s++; } } void write_sfm(uchar add,uchar date)//写时分秒函数 { uchar hour,ge; hour=date/10;//分解一个2位数的十位和个位 ge=date%10; write_com(0x80+0x40+add);//设置显示位置 write_data(0x30+hour);//送去液晶显示十位 write_data(0x30+ge); //送去液晶显示个位 } void write_cg()//写

文档评论(0)

1亿VIP精品文档

相关文档