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

正文內(nèi)容

電子鐘溫度計(jì)課程設(shè)計(jì)--電子鐘溫度計(jì)的設(shè)計(jì)-資料下載頁

2025-06-04 09:25本頁面
  

【正文】 /10*16+(yue)%10。// 十進(jìn)制轉(zhuǎn)換成 DS1302 要求的 DCB 碼 write_1302(0x8e,0x00)。// 允許寫,禁止寫保護(hù) write_1302(0x88,temp)。// 向DS1302 內(nèi)寫月份寄存器 88H 寫入調(diào)整后的月份數(shù)據(jù) BCD 碼 write_1302(0x8e,0x80)。// 打開寫保護(hù) write_1602(yh+7)。// 因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位 break。 case 7:nian。 if(nian==1) nian=99。 write_nyr(3,nian)。 temp=(nian)/10*16+(nian)%10。//十進(jìn)制轉(zhuǎn)換成 DS1302 要求的 DCB 碼 write_1302(0x8e,0x00)。// 允許寫,禁止寫保護(hù) write_1302(0x8c,temp)。// 向 19 DS1302 內(nèi)寫年份寄存器 8cH 寫入調(diào)整后的年份數(shù)據(jù) BCD 碼 write_1302(0x8e,0x80)。// 打開寫保護(hù) write_1602(yh+4)。// 因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位 break。 } } } } } void timer0() interrupt 1 //取得并顯示日歷和時(shí)間 { //Init_DS18B20()。//溫度傳感器 DS18b2初始化子函數(shù),在頭文件中 flag=ReadTemperature()。//將 18b2 頭文件運(yùn)行返回的函數(shù)結(jié)果送到變量 FLAG 中,用于顯示 //讀取秒時(shí)分周日月年七個(gè)數(shù)據(jù)( DS1302的讀寄存器與寫寄存器不一樣): miao = BCD_Decimal(read_1302(0x81))。 fen = BCD_Decimal(read_1302(0x83))。 shi = BCD_Decimal(read_1302(0x85))。 ri = BCD_Decimal(read_1302(0x87))。 yue = BCD_Decimal(read_1302(0x89))。 nian=BCD_Decimal(read_1302(0x8d))。 week=BCD_Decimal(read_1302(0x8b))。 //顯示溫度、秒、時(shí)、分?jǐn)?shù)據(jù): write_temp(12,flag)。//顯示溫度,從第二行第 12 個(gè)字符后開 始顯示 write_sfm(8,miao)。//秒,從第二行第 8 個(gè)字后開始顯示(調(diào)用時(shí)分秒顯示子函數(shù)) write_sfm(5,fen)。//分,從第二行第 5 個(gè)字符后開始顯示 write_sfm(2,shi)。//小時(shí),從第二行第 2個(gè)字符后開始顯示 //顯示日、月、年數(shù)據(jù): write_nyr(9,ri)。//日期,從第二行第 9 個(gè)字符后開始顯示 write_nyr(6,yue)。//月份,從第二行第 6 個(gè)字符后開始顯示 write_nyr(3,nian)。//年,從第二行第 3 個(gè)字符后 開始顯示 write_week(week)。 } // void init() //定時(shí)器、計(jì)數(shù)器設(shè)置函數(shù) { TMOD=0x11。 //指定定時(shí) /計(jì)數(shù)器的工作方式為 3 TH0=0。 //定時(shí)器 T0 的高四位 =0 TL0=0。 //定時(shí)器 T0 的低四位 =0 EA=1。 //系統(tǒng)允許有開放的中斷 ET0=1。 //允許 T0 中斷 TR0=1。 //開啟中斷,啟動(dòng)定時(shí)器 } //******************* 主 函 數(shù)************************** void main() { lcd_init()。 //調(diào)用液晶屏初始化子函數(shù) ds1302_init()。 //調(diào)用 DS1302 時(shí)鐘的初始化子函數(shù) init()。 //調(diào)用定時(shí)計(jì)數(shù)器的設(shè)置子函數(shù) while(1) //無限循環(huán)下面的語句: { keyscan()。 //調(diào)用鍵盤掃描子函數(shù) } } 20 附錄二: DS18B20 部分程序 sbit DQ = P2^3。 // 定義DQ 引腳為 /**** 延時(shí)函數(shù) *****/ void DS18_delay(int useconds) { int s。 for (s=0。 suseconds。s++)。 } unsigned char ow_reset(void) { /*復(fù)位函數(shù) */ unsigned char presence。 DQ = 0。 // 將 DQ 線拉低 DS18_delay(29)。 // 保持 480μ s DQ = 1。 // DQ 返回高電平 DS18_delay(3)。 // 等待存在脈沖 presence = DQ。 // 獲得存在信號(hào) DS18_delay(25)。 // 等待時(shí)間隙結(jié)束 return(presence)。 // 返回存在信號(hào), 0 = 器件存在 , 1 = 無器件 } /**** 位寫入函數(shù) ****/ void write_bit(char bitval) { DQ = 0。 // 將 DQ 拉低開始寫時(shí)間隙 if(bitval==1) DQ =1。 // 如果寫 1, DQ 返回高電平 DS18_delay(5)。 // 在 時(shí)間隙內(nèi)保持電平值, DQ = 1。 // DS18_delay 函數(shù)每次循環(huán)延時(shí)16μ s,因此 DS18_delay(5) = 104μ s } /**** 字節(jié)寫入函數(shù) *****/ void ds18write_byte(char val) { unsigned char i。 unsigned char temp。 for (i=0。 i8。 i++) {// 寫入字節(jié) , 每次寫入一位 temp = vali。 temp amp。= 0x01。 write_bit(temp)。 } DS18_delay(5)。 } /****位讀取函數(shù) ****/ unsigned char read_bit(void) { unsigned char i。 DQ = 0。 //將 DQ 拉低開始讀時(shí)間隙 DQ = 1。 // then return high for (i=0。 i3。 i++)。 // 延時(shí) 15μ s return(DQ)。 // 返回 DQ 線上的電平值 } /**** 字節(jié)讀取函數(shù) ****/ unsigned char DSread_byte(void) { unsigned char i。 unsigned char value = 0。 for (i=0。i8。i++) { // 讀取字節(jié),每次讀取一個(gè)字節(jié) if(read_bit()) value|=0x01i。 // 然 后將其左移 DS18_delay(6)。 } return(value)。 } /***** 讀取溫度函數(shù) *****/ unsigned int ReadTemperature(void) { unsigned char get[10]。 unsigned char temp_lsb,temp_msb。 unsigned int t。 unsigned char k。 ow_reset()。 ds18write_byte(0xCC)。 // 跳過 ROM ds18write_byte(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 DS18_delay(5)。 ow_reset()。 ds18write_byte(0xCC)。 // 跳過 ROM ds18write_byte(0xBE)。 // 讀暫存器 for (k=0。k2。k++){get[k]=DSread_byte()。} temp_msb = get[1]。 // Sign byte + lsbit temp_lsb = get[0]。 // Temp data plus lsb t=temp_msb*256+temp_lsb。 t=tamp。0x0ff0。 if(t0xffamp。amp。t0xf0) t=(1)*t。 return t4。 //temp_f = (((int)temp_c)* 9)/5 + 32。 // 輸出華氏溫度值 }
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1