freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

以ds1302實時時鐘芯片和液晶顯示屏cd1602為基礎(chǔ)設(shè)計的電子鐘-資料下載頁

2025-06-29 01:26本頁面
  

【正文】 0。 DS1302_RST = 1。 DS1302InputByte(ucAddr|0x01)。 // 地址,命令 ucData = DS1302OutputByte()。 // 讀1字節(jié)數(shù)據(jù) DS1302_CLK = 1。 DS1302_RST = 0。 return(ucData)。}void DS1302_SetProtect(bit flag) //是否寫保護{ if(flag) Write1302(0x8E,0x80)。 //0x8E 控制字節(jié)地址,bit7=WP WP=1 禁止數(shù)據(jù)寫入DS1302 else Write1302(0x8E,0x00)。 //WP=0 允許寫入DS1302}void DS1302_SetTime(unsigned char Address, unsigned char Value) // 設(shè)置時間函數(shù){ DS1302_SetProtect(0)。 Write1302(Address, ((Value/10)4 | (Value%10)))。 //讀寫數(shù)據(jù)時要特別注意數(shù)據(jù)的處理,要寫的數(shù)據(jù)要進行拼湊,將Value數(shù)據(jù)的十位取出,放入高四位,Value的個位放在低四位上}void DS1302_GetTime(SYSTEMTIME *Time){ unsigned char ReadValue。 //用來傳遞讀取1302的數(shù)據(jù) ReadValue = Read1302(DS1302_SECOND)。?//讀取秒數(shù),存放在ReadValue變量中 TimeSecond = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。 //將ReadValue數(shù)據(jù)的第6位取出,實際上就是秒數(shù)的十位,但是以二進制的形式表示,所以要進行移位,向右移四位,在乘以10,在加上ReadValue變量中秒數(shù)的,將十六進制的數(shù)化成十進制數(shù)表示,并放在TimeSecond中 ReadValue = Read1302(DS1302_MINUTE)。 TimeMinute = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。//同上 ReadValue = Read1302(DS1302_HOUR)。 TimeHour = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。 //同上 ReadValue = Read1302(DS1302_DAY)。 TimeDay = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。 //同上 ReadValue = Read1302(DS1302_WEEK)。 TimeWeek = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。 //同上 ReadValue = Read1302(DS1302_MONTH)。 TimeMonth = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。 //同上 ReadValue = Read1302(DS1302_YEAR)。 TimeYear = ((ReadValueamp。0x70)4)*10 + (ReadValueamp。0x0F)。 //同上}void DateToStr(SYSTEMTIME *Time) //年份轉(zhuǎn)換成可供lcd顯示的字段子程序{ TimeDateString[0] = TimeYear/10 + 39。039。 //TimeDateString[0]中存放的就是要顯示年的十位 TimeDateString[1] = TimeYear%10 + 39。039。 //TimeDateString[1]中存放的就是要顯示年的個位 TimeDateString[2] = 39。39。 //年和月份之間用分開 TimeDateString[3] = TimeMonth/10 + 39。039。 //TimeDateString[3]中存放的就是要顯示月份的十位 TimeDateString[4] = TimeMonth%10 + 39。039。 //TimeDateString[4]中存放的就是要顯示月份的個位 TimeDateString[5] = 39。39。 TimeDateString[6] = TimeDay/10 + 39。039。 //TimeDateString[6]中存放的就是要顯示日的十位 TimeDateString[7] = TimeDay%10 + 39。039。 //TimeDateString[7]中存放的就是要顯示日的個位 TimeDateString[8] = 39。\039。 //記住,結(jié)束時要添加39。\039。,以作為結(jié)束標(biāo)志}void TimeToStr(SYSTEMTIME *Time) //時間轉(zhuǎn)換成可供lcd顯示的字段子程序{ TimeTimeString[0] = TimeHour/10 + 39。039。 TimeTimeString[1] = TimeHour%10 + 39。039。 TimeTimeString[2] = 39。:39。 TimeTimeString[3] = TimeMinute/10 + 39。039。 TimeTimeString[4] = TimeMinute%10 + 39。039。 TimeTimeString[5] = 39。:39。 TimeTimeString[6] = TimeSecond/10 + 39。039。 TimeTimeString[7] = TimeSecond%10 + 39。039。 TimeTimeString[8] = 39。\039。}void Initial_DS1302(void) //DS1302的初始化程序{ unsigned char Second=Read1302(DS1302_SECOND)。 if(Secondamp。0x80) //BIT7=CH CH=0振蕩器允許工作,CH=1,振蕩器停止 DS1302_SetTime(DS1302_SECOND,0)。}endifds18b20頭文件include include define uchar unsigned chardefine uint unsigned intuint temp。 // 溫度變量sbit DS=P1^0。 //定義數(shù)據(jù)傳輸接口void delay1(uchar count) //延時{ while(count0) count。}void reset(void) //送初值和初始命令{ DS=0。 delay1(100)。 DS=1。 delay1(4)。 delay1(200)。}bit read_bit(void) //讀一比特,特別注意對于18b20,要讀數(shù)據(jù)時,一定要產(chǎn)生DS正脈沖,然后才傳送數(shù)據(jù){ bit temp。 DS=0。 _nop_()。 DS=1。 _nop_()。 temp=DS。 delay1(200)。 return temp。 }uchar read_byte(void) //讀一字節(jié)的數(shù)據(jù){ uchar i,byte=0。 bit j。 for(i=0。i8。i++) { byte=_cror_(byte ,1)。 //將byte數(shù)據(jù)向右循環(huán)一位,每次都取出最高位 j=read_bit()。 //設(shè)定j為讀取進來的一比特數(shù) if(j==0) byte=byte|0x00。 //當(dāng)j=0時,即讀取一字節(jié)數(shù)完畢,取出次字節(jié)數(shù) else byte=byte|0x80。 //每次取出最高位 } return byte。 //返回字節(jié)數(shù)}void write_byte(uchar mand) //寫一字節(jié)到18b20{ uchar i。 for(i=0。i8。i++) //用i來設(shè)定一字節(jié)的數(shù)據(jù) { if((mand amp。 0x01)==0) //取出最低位為零時,DS要產(chǎn)生一個負脈沖脈沖 { DS=0。 delay1(8)。 DS=1。 _nop_()。 } else //否則產(chǎn)生一上升沿 { DS=0。 _nop_()。 DS=1。 delay1(8)。 } mand=_cror_(mand,1)。 } }void tmpchange(void) //啟動18b20{ reset()。 write_byte(0xcc)。 //直接向18b20發(fā)送溫度變換命令 write_byte(0x44)。 //啟動18b20進行溫度轉(zhuǎn)換} uint tmp() //獲取溫度{ float tt。 uchar a,b。 reset()。 write_byte(0xcc)。 //直接向18b20發(fā)送溫度變換命令 write_byte(0xbe)。 //讀取溫度寄存器的溫度值 a=read_byte()。//讀低八位 b=read_byte()。//讀高八位 temp=b。 temp=8。 //因為18b20處理接受到的數(shù)據(jù)要進行處理,先將高八位左移4位 temp=temp|a。 //在和低八位相或,整合取得的數(shù)據(jù) tt=temp*。 temp=tt*10+。 return temp。}
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1