|
使用iic
1302时间数据保存寄存器
秒 0x80
分 0x82
时 0x84
周 0x8a
日 0x86
月 0x88
年 0x8c- /*********************************************************************************
- * 【外部晶振】: 11.0592mhz
- * 【主控芯片】: STC89C52RC
- * 【编译环境】: Keil μVisio4
- * 【程序功能】: 1602液晶显示
- * 【使用说明】: 1.使用1602液晶前先拔掉数码管J6跳帽,数码管与液晶不能共用
- 2.将1602液晶接到L2排母上,液晶面向开发板外部
- 3.若程序烧写完成后,1602液晶无显示,请调节开发板右下方的电位器RV1
- S1选择调节时分秒,S2加,S3减,S4确认。
- **********************************************************************************/
- #include <reg52.h>
- #include <1602.h>
- #include <1302.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit key1 = P3^1;
- sbit key2 = P3^2;
- sbit key3 = P3^3;
- sbit keyE = P3^0;
- uchar num,key1num,count,hour,min,sec;
- uchar date_buf[8]; //存储1032的数据
- /*/主函数///显示秒ok
- void main()
- {uchar a;
- init_1602();
- a=read_all_1302(0x80);
- write_com(0x80);//写命令
- a=a>>4;
- write_data(a+0x30);
- a=read_all_1302(0x80);
- a&= 0x0f;
- write_data(a+0x30);
- }
- /*/
- ////////////////x列 y行 add:ds1320寄存器地址
- void display(uchar x,uchar y,uchar add)
- { uchar a;
- a=read_all_1302(add);//赋值
- write_by_xy(x,y);//写命令
- a=a>>4;//高位变地位
- write_data(a+0x30);
- a=read_all_1302(add);//重新赋值
- a&= 0x0f;//地位有效
- write_data(a+0x30);
- }
- ////////////////////
- void main()
- {
- init_1602();//初始化
- while(1)
- {
- display(0,0,0x8c);//年
- write_string(2,0,"/");
- display(3,0,0x88);//月
- write_string(5,0,"/");
- display(6,0,0x86);//日
- write_string(8,0,"/");
- display(9,0,0x8a);//周
- display(0,1,0x84);//时
- write_string(2,1,":");
- display(3,1,0x82);//分
- write_string(5,1,":");
- display(6,1,0x80);//秒
- }
- }
复制代码 |
|