Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 179|回復: 0

單片機壆習——用ds1302制作一個精密電子鍾,按鍵調節

[複製鏈接]

873

主題

877

帖子

2691

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
2691
發表於 2018-6-13 11:48:37 | 顯示全部樓層 |閱讀模式
void write_byte(uchar dat)//寫入一個字節
{
uchar i;
ACC=dat;
for(i=8;i>0;i--)
{
ds1302_io=acc0;
ds1302_sclk=1;
ds1302_sclk=0;
ACC=ACC>>1;
}
}
uchar read_byte() //讀出一個字節
{
uchar i;
for(i=8;i>0;i--)
{
ACC=ACC>>1;
acc7=ds1302_io;
ds1302_sclk=1;
ds1302_sclk=0;
}
return(ACC);
}
return(temp);
}
void set_ds1302(uchar *pClock)//設寘ds1302的時間
{
uchar i;
uchar add=0x80;
EA=0;
s_write(0x8e,0x00);
for(i=7;i>0;i--)
{
s_write(add,*pClock);
pClock++;
add+=2;
}
s_write(0x8e,0x80);
EA=1;
}
void rw_ds1302() //讀寫ds1302
{
EA=0;
sec=s_read(0x81);
write_time(8,sec);
write_com(0x80+0x40+9);
min=s_read(0x83);
write_time(5,min);
write_com(0x80+0x40+6);
hour=s_read(0x85);
write_time(2,hour);
write_com(0x80+0x40+3);
week=s_read(0x8b);
write_xingqi(week);
write_com(0x80+0x0d);
day=s_read(0x87);
write_riqi(8,day);
write_com(0x80+9);
month=s_read(0x89);
write_riqi(5,month);
write_com(0x80+6);
year=s_read(0x8d);
write_riqi(2,year);
write_com(0x80+3);
EA=1;
}
void write_com(uchar com) //寫命令子函數
{
lcde=0;
lcdrw=0;
lcdrs=0;
delay(1);
lcde=1;
delay(1);
P0=com;
delay(1);
lcde=0;
}
void write_data(uchar dat)//寫數据子函數
{
lcde=0;
lcdrw=0,宜蘭親子民宿包棟;
lcdrs=1;
delay(1);
lcde=1;
delay(1);
P0=dat;
delay(1);
lcde=0;
}
void init()
{
s_write(0x90,0xa5);
set_ds1302(time);
delay(5);
lcde=0; //LCD1602初始化
le=0;
leden=0;
write_com(0x38);
delay(100);
write_com(0x38);
delay(50);
write_com(0x38);
delay(10);
write_com(0x08);
write_com(0x01);
write_com(0x0c);
write_com(0x80);
題目:用ds1302制作一個精密的電子時鍾,且實現按鍵調節時間
for(num=0;num0;j--)
for(i=250;i>0;i--) ;
}
}
}

#include
#include
#define uchar unsigned char
#define uint unsigned int
#define DEC2BCD(X) ((X/10) //用於將十進制轉成BCD碼的宏
#define BCD2DEC(X) (((X&0x70)>>4)*10 + (X&0x0F)) //用於將BCD碼轉成十進制的宏
void write_com(uchar com);
void write_data(uchar dat);
void init();
void write_time(uchar add,uchar dat);
void write_riqi(uchar add,uchar dat);
void write_xingqi(uchar dat);
void write_byte(uchar dat);
uchar read_byte();
void s_write(uchar add,uchar dat);
void s_write(uchar add,uchar dat);
uchar s_read(uchar add);
void set_ds1302(uchar *pClock);
void rw_ds1302();
void keyscan();
void main()//main函數
{
s_write(0x8e,0x80);
init();
P0=0xff;
while(1)
{
keyscan();
if(flag==0){
rw_ds1302();
}
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|台灣自行車用品製造廠論壇  

鐵皮屋, 高雄當舖, 高雄機車借款, 字幕機, 電視牆, 燈具, 民間小額借貸, 刷卡換現金, 身分證借款, 借錢網站, 借錢網, 借錢管道, 借錢網桃園, 借錢網高雄, 借錢管道高雄, 借錢管道台中, 借錢管道台北, 民間借錢, 民間借貸, 宜蘭民宿 佛牌, 台中搬家, 禮品, 贈品, 印章, 鐵門, 採光罩, 高雄招牌, 中壢當鋪, 中壢汽車借款, 中壢機車借款, 楊梅當鋪, 平鎮當鋪, 隔空減脂, 被動元件, 電感器, 租遊覽車, 台中汽車借款, 台中機車借款, 外牆防水, 台中當舖, 貴金屬回收, 高雄借錢, 人工植牙, 電感器, 高雄當舖, 三民區當舖, 指紋鎖, 電子鎖, 台中搬家, 電子鎖, 放大鏡 台北汽車借款 台北當舖 台北借款

GMT+8, 2019-6-19 04:28 , Processed in 0.061493 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表