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

正文內(nèi)容

電子鐘溫度計課程設(shè)計--電子鐘溫度計的設(shè)計-預(yù)覽頁

2025-07-06 09:25 上一頁面

下一頁面
 

【正文】 電電源輸入端,在寄生電源 DS18B20 時序介紹 DS18B20 的一線工作協(xié)議流程是: 初始化→ ROM 操作指令→存儲器操作指令→數(shù)據(jù)傳輸。部分功能演示如圖 51 所示 12 13 附錄一:程序 include include define uint unsigned int define uchar unsigned char uchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp。 sbit SCLK = P1^6。 sbit ACC7=ACC^7。 //減鍵 uchar code tab1[]={20 }。x0。 } /********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調(diào)用 **************/ write_1602(uchar )//****液晶寫入指令函數(shù) **** { rs=0。 en=1。//數(shù)據(jù) /指令選擇置為數(shù)據(jù) rw=0。 //en 置高電平,為制造下降沿做準備 delay(1)。//開顯示不顯示光標(biāo) write_1602(0x06)。a14。//時間顯示固定符號寫入位置,從第 2 個位置后開始顯示 for(a=0。 } } /***************DS1302 有 關(guān) 子 函 數(shù)********************/ void write_byte(uchar dat)//寫一個字節(jié) 14 { ACC=dat。a) { IO=ACC0。 } } uchar read_byte()//讀一個字節(jié) { RST=1。 SCLK=1。 } void write_1302(uchar add,uchar dat)// 向1302 芯片寫函數(shù),指定寫入地址,數(shù)據(jù) { RST=0。 write_byte(dat)。 RST=0。 temp=read_byte()。 } uchar BCD_Decimal(uchar bcd)//BCD碼轉(zhuǎn)十進制函數(shù),輸入 BCD,返回十進制 { uchar Decimal。 } // void ds1302_init() //1302 芯片初始化子函數(shù)(20210107,12:00:00,week4) { RST=0。 //向 DS1302內(nèi)寫秒寄存器 80H 寫入初始秒數(shù)據(jù) 00 //write_1302(0x82,0x00)。//向 DS1302 內(nèi)寫日期寄存器 86H 寫入初始日期數(shù)據(jù) 07 //write_1302(0x88,0x01)。 gw=dat%10。//數(shù)字 +30 得到該數(shù)字的 LCD1602 顯示碼 write_1602dat(0x30+gw)。 gw=dat%10。//數(shù)字 +30 得到該數(shù)字的 LCD1602 顯示碼 write_1602dat(0x30+gw)。//取得十位數(shù)字 write_1602(yh+add)。//星期字符的顯示 位置 switch(week) { case 1:write_1602dat(39。O39。)。)。 write_1602dat(39。 case 3:write_1602dat(39。E39。)。)。 write_1602dat(39。 case 5:write_1602dat(39。R39。)。)。 write_1602dat(39。 case 7:write_1602dat(39。U39。)。 key1n++。 write_1602(er+0x09)。 write_1302(0x80,0x80|temp)。//按 2 次fen 位置顯示光標(biāo) //write_1602(0x0f)。 break。 case 5: write_1602(yh+0x0a)。//按動6 次, yue //write_1602(0x0f)。 break。 write_1302(0x8e,0x00)。 } } } // 加鍵key2 if(key1n!=0)//當(dāng) key1 按下以下。//設(shè)置鍵按動 1 次,調(diào)秒 if(miao==60) miao=0。 //允許寫,禁止寫保護 write_1302(0x80,temp)。 break。//令 LCD在正確位置顯示 加 設(shè)定好的分數(shù)據(jù) temp=(fen)/10*16+(fen)%10。// 打開寫保護 write_1602(er+6)。 write_sfm(2,shi)。// 向DS1302 內(nèi)寫小時寄存器 84H 寫入調(diào)整后的小時數(shù)據(jù) BCD 碼 write_1302(0x8e,0x80)。 if(week==8) 17 week=1。后的周數(shù)據(jù)顯示位置 write_week(week)。// 向DS1302 內(nèi)寫周寄存器 8aH 寫入調(diào)整后的周數(shù)據(jù) BCD 碼 write_1302(0x8e,0x80)。 if(ri==32) ri=1。// 允許寫,禁止寫保護 write_1302(0x86,temp)。 case 6:yue++。// 十進制轉(zhuǎn)換成 DS1302 要求的 DCB 碼 write_1302(0x8e,0x00)。// 因為設(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,所以需要光標(biāo)回位 break。//令 LCD 在正確的位置顯示 加 設(shè)定好的年份數(shù)據(jù) temp=(nian)/10*16+(nian)%10。// 打開寫保護 write_1602(yh+4)。注釋 if(key3==0) { delay(10)。//秒數(shù)據(jù)減到 1 時自動變成 59 write_sfm(0x08,miao)。 // 向DS1302 內(nèi)寫秒寄存器 80H 寫入調(diào)整后的秒數(shù)據(jù) BCD 碼 write_1302(0x8e,0x80)。 case 2:fen。//十進制轉(zhuǎn)換成 DS1302 要求的 DCB 碼 write_1302(0x8e,0x00)。//因為設(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,在這里是寫回原來的位置 break。 temp=(shi)/10*16+(shi)%10。// 打開寫保護 write_1602(er+3)。 write_1602(yh+0x0C)。// 指定周數(shù)據(jù)顯示內(nèi)容 temp=(week)/10*16+(week)%10。// 打開寫保護 write_1602(yh+0x0e)。 write_nyr(9,ri)。// 向DS1302 內(nèi)寫日期寄存器 86H 寫入調(diào)整后的日期數(shù)據(jù) BCD 碼 write_1302(0x8e,0x80)。 if(yue==0) yue=12。// 允許寫,禁止寫保護 write_1302(0x88,temp)。 case 7:nian。//十進制轉(zhuǎn)換成 DS1302 要求的 DCB 碼 write_1302(0x8e,0x00)。// 因為設(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動加一,所以需要光標(biāo)回位 break。 fen = BCD_Decimal(read_1302(0x83))。 nian=BCD_Decimal(read_1302(0x8d))。//秒,從第二行第 8 個字后開始顯示(調(diào)用時分秒顯示子函數(shù)) write_sfm(5,fen)。//月份,從第二行第 6 個字符后開始顯示 write_nyr(3,nian)。 //定時器 T0 的高四位 =0 TL0=0。 //開啟中斷,啟動定時器 } //******************* 主 函 數(shù)************************** void main() { lcd_init()。 //調(diào)用鍵盤掃描子函數(shù) } } 20 附錄二: DS18B20 部分程序 sbit DQ = P2^3。s++)。 // 保持 480μ s DQ = 1。 // 等待時間隙結(jié)束 return(presence)。 // 在 時間隙內(nèi)保持電平值, DQ = 1。 i8。 write_bit(temp)。 //將 DQ 拉低開始讀時間隙 DQ = 1。 // 延時 15μ s return(DQ)。i8。 } /***** 讀取溫度函數(shù) *****/ unsigned int ReadTemperature(void) { unsigned char get[10]。 ow_reset()。 ow_reset()。k2。 // Temp data plus lsb t=temp_msb*256+temp_lsb。amp。 // 輸出華氏溫度值
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1