久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
DS1302程序(帶校準),LCD1602顯示
[打印本頁]
作者:
1536730359
時間:
2017-3-19 16:18
標題:
DS1302程序(帶校準),LCD1602顯示
DS1302(帶校準),LCD1602顯示
0.png
(24.82 KB, 下載次數: 33)
下載附件
2017-3-19 22:02 上傳
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar a,miao,shi,fen,ri,yue,nian,week,flag,temp,key1n;
#define yh 0x80 //第一行的初始位置
#define er 0x80+0x40 //第二行初始位置
sbit dula=P2^6;
sbit wela=P2^7;
sbit wr=P1^1;
sbit rs=P1^0;
sbit en=P2^5;
sbit SCLK=P0^1; // 6 P1.1
sbit IO=P0^2; // 7 P1.0
sbit RST=P0^3; //時鐘 5 P1.2
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
sbit key1=P3^5;
sbit key2=P3^6;
sbit key3=P3^7;
uchar code tab1[]={"2009- - THU"};
uchar code tab2[]={" : : "};
void delay(uint xms)//延時函數
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
/******************液晶寫入************************/
write_1602com(uchar com)//液晶寫入指令函數
{
rs=0;//置為寫入命令
P0=com;//送入數據
delay(1);
en=1;//拉高使能端
delay(1);
en=0;//完成高脈沖
}
write_1602dat(uchar dat)
{
rs=1;//置為寫入數據
P0=dat;//送入數據
delay(1);
en=1;
delay(1);
en=0;
}
/*********************over***********************/
/********************ds1302****************************/
void write_byte(uchar dat)
{
ACC=dat;
RST=1;
for(a=8;a>0;a--)
{
IO=ACC0;
SCLK=0;
SCLK=1;
ACC=ACC>>1;
}
}
uchar read_byte()
{
RST=1;
for(a=8;a>0;a--)
{
ACC7=IO;
SCLK=1;
SCLK=0;
ACC=ACC>>1;
}
return (ACC);
}
void write_1302(uchar add,uchar dat)
{
RST=0;
SCLK=0;
RST=1;
write_byte(add);
write_byte(dat);
SCLK=1;
RST=0;
}
uchar read_1302(uchar add)
{
uchar temp;
RST=0;
SCLK=0;
RST=1;
write_byte(add);
temp=read_byte();
SCLK=1;
RST=0;
return(temp);
}
uchar BCD_Decimal(uchar bcd)
{
uchar Decimal;
Decimal=bcd>>4;
return(Decimal=Decimal*10+(bcd&=0x0F));
}
void ds1302_init()
{
RST=0;
SCLK=0;
write_1302(0x80,miao|0x00);//允許寫
}
void write_sfm(uchar add,uchar dat)//寫時分秒
{
uchar gw,sw;
gw=dat%10;
sw=dat/10;
write_1602com(er+add);
write_1602dat(0x30+sw);
write_1602dat(0x30+gw);
}
void write_nyr(uchar add,uchar dat)
{
uchar gw,sw;
gw=dat%10;
sw=dat/10;
write_1602com(yh+add);
write_1602dat(0x30+sw);
write_1602dat(0x30+gw);
}
void write_week(uchar week)//寫星期函數
{
write_1602com(yh+0x0d);
switch(week)
{
case 1:write_1602dat('M');
write_1602dat('O');
write_1602dat('N');
break;
case 2:write_1602dat('T');
write_1602dat('U');
write_1602dat('E');
break;
case 3:write_1602dat('W');
write_1602dat('E');
write_1602dat('D');
break;
case 4:write_1602dat('T');
write_1602dat('H');
write_1602dat('U');
break;
case 5:write_1602dat('F');
write_1602dat('R');
write_1602dat('I');
break;
case 6:write_1602dat('S');
write_1602dat('T');
write_1602dat('A');
break;
case 7:write_1602dat('S');
write_1602dat('U');
write_1602dat('N');
break;
}
}
lcd_init()//液晶初始化函數
{ wr=0;
write_1602com(0x38);//設置液晶工作模式
write_1602com(0x0c);//開顯示不顯示光標
write_1602com(0x06);//整屏不移動,指針加一
write_1602com(0x01);
write_1602com(yh+2);//字符寫入的位置
for(a=0;a<14;a++)
{
write_1602dat(tab1[a]);
//delay(3);
}
write_1602com(er+4);
for(a=0;a<8;a++)
{
write_1602dat(tab2[a]);
//delay(3);
}
}
void keyscan()
{
if(key1==0)//key1為功能鍵
{
delay(5);
if(key1==0)
{
while(!key1);
key1n++;
if(key1n==9)
key1n=1;
switch(key1n)
{
case 1: TR0=0;//關閉定時器
//TR1=0;
write_1602com(er+0x0b);//寫入光標位置
write_1602com(0x0f);//設置光標為閃爍
temp=(miao)/10*16+(miao)%10;
write_1302(0x8e,0x00);
write_1302(0x80,0x80|temp);//miao
write_1302(0x8e,0x80);
break;
case 2: write_1602com(er+8);//fen
//write_1602com(0x0f);
break;
case 3: write_1602com(er+5);//shi
//write_1602com(0x0f);
break;
case 4: write_1602com(yh+0x0f);//week
//write_1602com(0x0f);
break;
case 5: write_1602com(yh+0x0b);//ri
//write_1602com(0x0f);
break;
case 6: write_1602com(yh+0x08);//yue
//write_1602com(0x0f);
break;
case 7: write_1602com(yh+0x05);//nian
//write_1602com(0x0f);
break;
case 8:
write_1602com(0x0c);//設置光標不閃爍
TR0=1;//打開定時器
temp=(miao)/10*16+(miao)%10;
write_1302(0x8e,0x00);
write_1302(0x80,0x00|temp);//miao
write_1302(0x8e,0x80);
break;
}
}
}
if(key1n!=0)//當key1按下以下。再按以下鍵才有效
{
if(key2==0) //上調鍵
{
delay(5);
if(key2==0)
{
while(!key2);
switch(key1n)
{
case 1:miao++;
if(miao==60)
miao=0;
write_sfm(0x0a,miao);//寫入新的秒數
temp=(miao)/10*16+(miao)%10;
write_1302(0x8e,0x00);
write_1302(0x80,0x80|temp);
write_1302(0x8e,0x80);
write_1602com(er+0x0b);//因為設置液晶的模式是寫入數據后,指針自動加一,在這里是寫回原來的位置
//write_1602com(0x0b);
break;
case 2:fen++;
if(fen==60)
fen=0;
write_sfm(0x07,fen);
temp=(fen)/10*16+(fen)%10;
write_1302(0x8e,0x00);
write_1302(0x82,temp);
write_1302(0x8e,0x80);
write_1602com(er+8);
break;
case 3:shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);
temp=(shi)/10*16+(shi)%10;
write_1302(0x8e,0x00);
write_1302(0x84,temp);
write_1302(0x8e,0x80);
write_1602com(er+5);
break;
case 4:week++;
if(week==8)
week=0;
write_week(week);
temp=(week)/10*16+(week)%10;
write_1302(0x8e,0x00);
write_1302(0x8a,temp);
write_1302(0x8e,0x80);
write_1602com(yh+0x0f);
break;
case 5:ri++;
if(ri==31)
ri=0;
write_nyr(10,ri);
temp=(ri)/10*16+(ri)%10;
write_1302(0x8e,0x00);
write_1302(0x86,temp);
write_1302(0x8e,0x80);
write_1602com(yh+11);
break;
case 6:yue++;
if(yue==13)
yue=0;
write_nyr(7,yue);
temp=(yue)/10*16+(yue)%10;
write_1302(0x8e,0x00);
write_1302(0x88,temp);
write_1302(0x8e,0x80);
write_1602com(yh+8);
break;
case 7:nian++;
if(nian==100)
nian=0;
write_nyr(4,nian);
temp=(nian)/10*16+(nian)%10;
write_1302(0x8e,0x00);
write_1302(0x8c,temp);
write_1302(0x8e,0x80);
write_1602com(yh+5);
break;
}
}
}
if(key3==0)
{
delay(5);
if(key3==0)
{
while(!key3);
switch(key1n)
{
case 1:miao--;
if(miao==-1)
miao=59;
write_sfm(0x0a,miao);//寫入新的秒數
write_1602com(er+0x0b);//因為設置液晶的模式是寫入數據后,指針自動加一,在這里是寫回原來的位置
//write_1602com(0x0b);
break;
case 2:fen--;
if(fen==-1)
fen=59;
write_sfm(7,fen);
temp=(fen)/10*16+(fen)%10;
…………余下代碼請下載附件…………
復制代碼
0.png
(77.08 KB, 下載次數: 35)
下載附件
2017-3-19 22:03 上傳
完整代碼下載:
DS1302 時鐘內部數據校準 LCD1602顯示.rar
(72.29 KB, 下載次數: 60)
2017-3-19 16:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
神奇神
時間:
2017-9-1 16:11
改完時間怎么確定啊
作者:
神奇神
時間:
2017-9-1 16:13
請問改完時間后確定鍵是哪個?
作者:
piplxh
時間:
2017-9-2 15:02
學習啦!
作者:
jhczy
時間:
2017-9-4 11:13
內部時間校準是什么意思?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品久久久免费
|
成人小视频在线观看
|
国产伦精品一区二区三区照片91
|
欧美日韩精品综合
|
国产精品美女久久久久aⅴ国产馆
|
午夜精品一区二区三区在线视频
|
色秀网站
|
男女爱爱网站
|
人成精品
|
四虎首页
|
情侣黄网站免费看
|
国产精品久久精品
|
成人午夜电影在线观看
|
五月天激情综合网
|
av免费电影在线
|
久久蜜桃av一区二区天堂
|
日韩av一区二区在线观看
|
精品九九久久
|
欧美在线视频网站
|
成人亚洲
|
黄色网址免费在线观看
|
精品国产伦一区二区三区观看方式
|
亚洲成av
|
国产视频一区二区
|
香蕉视频在线播放
|
日本一区二区三区免费观看
|
中文字幕一区二区三区四区五区
|
久久免费看
|
亚洲一区成人
|
久久久99国产精品免费
|
一区二区视频在线
|
91国产视频在线观看
|
日韩电影中文字幕在线观看
|
成人国产精品久久
|
久热久热
|
日韩aⅴ片
|
欧美一区二区三区在线看
|
人人人人干
|
国产精品欧美一区二区三区
|
日本福利片
|
日韩欧美手机在线
|