日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DS1302——51

發布時間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DS1302——51 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#define ds1302_sec_add 0x80 //??陏?Y???#define ds1302_min_add 0x82 //?陏?Y???#define ds1302_hr_add 0x84 //甌陏?Y???#define ds1302_date_add 0x86 //?陏?Y???#define ds1302_month_add 0x88 //??陏?Y???#define ds1302_day_add 0x8a //D??y?Y???#define ds1302_year_add 0x8c //?覡y?Y??? #define ds1302_control_add 0x8e //????陏?Y???#define ds1302_charger_add 0x90 #define ds1302_clkburst_add 0xbesbit SCK = P1 ^ 0; sbit IO = P1 ^ 1; sbit RST = P1 ^ 2;unsigned char timebuf[7] = {23,59,50,16,8,17,4}; unsigned char tempbuf[7]; unsigned char writebuf[7]; unsigned char readbuf[7]; unsigned char disbuf[7];void ds1302_write_byte(unsigned char addr,unsigned char byte) {unsigned char i;addr = addr & 0xfe;SCK = 0;RST = 0;RST = 1;for(i = 0; i < 8; i++){IO = addr & 0x01;SCK = 0;SCK = 1;addr >>= 1;}for(i = 0; i < 8; i++){IO = byte & 0x01;SCK = 0;SCK = 1;byte >>= 1;}SCK = 0;RST = 0; }unsigned char ds1302_read_byte(unsigned char addr) {unsigned char i;unsigned char temp;addr = addr & 0xfe;SCK = 0;RST = 0;RST = 1;addr = addr + 1;for(i = 0; i < 8; i++){IO = addr & 0x01;SCK = 0;SCK = 1;addr >>= 1;}for(i = 0; i < 8; i++){SCK = 1;SCK = 0;temp >>= 1;if(IO){temp += 0x80;}}RST = 0;return temp; }void ds1302_write_time() {unsigned char temp;unsigned char temp1;unsigned char i;for(i = 0; i < 7; i++){temp = timebuf[i] / 10;temp1 = timebuf[i] % 10;writebuf[i] = (temp << 4) | temp1; }ds1302_write_byte(ds1302_control_add,0x00);ds1302_write_byte(ds1302_hr_add,writebuf[0]);ds1302_write_byte(ds1302_min_add,writebuf[1]);ds1302_write_byte(ds1302_sec_add,writebuf[2]);ds1302_write_byte(ds1302_year_add,writebuf[3]);ds1302_write_byte(ds1302_month_add,writebuf[4]);ds1302_write_byte(ds1302_date_add,writebuf[5]);ds1302_write_byte(ds1302_day_add,writebuf[6]);ds1302_write_byte(ds1302_control_add,0x80); }void ds1302_read_time() {unsigned char i;unsigned char temp;unsigned char temp1;readbuf[0] = ds1302_read_byte(ds1302_hr_add);readbuf[1] = ds1302_read_byte(ds1302_min_add);readbuf[2] = ds1302_read_byte(ds1302_sec_add);readbuf[3] = ds1302_read_byte(ds1302_year_add);readbuf[4] = ds1302_read_byte(ds1302_month_add);readbuf[5] = ds1302_read_byte(ds1302_date_add);readbuf[6] = ds1302_read_byte(ds1302_day_add); for(i = 0; i < 7; i++){temp = (readbuf[i] >> 4);temp1 = (readbuf[i] & 0x0f);disbuf[i] = temp * 10 + temp1;} }void DS1302_dis_time() {unsigned char lcddisbuf[9] = {0};unsigned char dlcddisbuf[9] = {0};unsigned char daydisbuf[4] = {0};lcddisbuf[0] = (disbuf[0] / 10) + 0x30;lcddisbuf[1] = (disbuf[0] % 10) + 0x30;lcddisbuf[2] = ':';lcddisbuf[3] = (disbuf[1] / 10) + 0x30;lcddisbuf[4] = (disbuf[1] % 10) + 0x30;lcddisbuf[5] = ':';lcddisbuf[6] = (disbuf[2] / 10) + 0x30;lcddisbuf[7] = (disbuf[2] % 10) + 0x30;dlcddisbuf[0] = (disbuf[3] / 10) + 0x30;dlcddisbuf[1] = (disbuf[3] % 10) + 0x30;dlcddisbuf[2] = '/';dlcddisbuf[3] = (disbuf[4] / 10) + 0x30;dlcddisbuf[4] = (disbuf[4] % 10) + 0x30;dlcddisbuf[5] = '/';dlcddisbuf[6] = (disbuf[5] / 10) + 0x30;dlcddisbuf[7] = (disbuf[5] % 10) + 0x30;switch(disbuf[6]){case 1:{daydisbuf[0] = 'M';daydisbuf[1] = 'o';daydisbuf[2] = 'n';break;}case 2:{daydisbuf[0] = 'T';daydisbuf[1] = 'u';daydisbuf[2] = 'e';break;}case 3:{daydisbuf[0] = 'W';daydisbuf[1] = 'e';daydisbuf[2] = 'd';break;}case 4:{daydisbuf[0] = 'T';daydisbuf[1] = 'h';daydisbuf[2] = 'u';break;}case 5:{daydisbuf[0] = 'F';daydisbuf[1] = 'r';daydisbuf[2] = 'i';break;}case 6:{daydisbuf[0] = 'S';daydisbuf[1] = 'a';daydisbuf[2] = 't';break;}case 7:{daydisbuf[0] = 'S';daydisbuf[1] = 'u';daydisbuf[2] = 'n';break;}default:{daydisbuf[0] = '-';daydisbuf[1] = '-';daydisbuf[2] = '-';break;}}lcd_write_src(0,0,lcddisbuf);lcd_write_src(0,1,dlcddisbuf);lcd_write_src(10,1,daydisbuf); }

總結

以上是生活随笔為你收集整理的DS1302——51的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。