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

正文內(nèi)容

基于51單片機的ds12c887時鐘芯片的時鐘電路設計-資料下載頁

2024-11-08 07:06本頁面

【導讀】時鐘芯片DS12C887,獲取時間信息,由全數(shù)字單總線結(jié)構(gòu)溫度傳感器DS18B20讀取溫度信息,經(jīng)MCU處。隨著科學技術的不斷發(fā)展,人們對時間計量的要求越來越高。在當今社會,電子時。鐘已經(jīng)得到相當廣泛的應用,產(chǎn)品多樣,發(fā)展更是多元化。軟件部分以C語言為主體,用1602LCD液晶屏顯示輸出信息,輸出信息量多,更直觀、人性化。該時鐘可實現(xiàn)人機交互,可通過提供的鍵盤對其進。在12小時模式中,用AM和PM區(qū)分上午和下午;秒表功能;整點鬧鈴和報時功能,本次設計的電子時鐘系統(tǒng)由單片機最小系統(tǒng),1602LCD液晶屏,時鐘芯片,調(diào)整按鍵,蜂鳴器,電源五大部分組成。利用內(nèi)部鋰電池供電繼續(xù)工作,在掉電重新上電后,不影響時間數(shù)據(jù),不需重新對時,方案一、利用單片機內(nèi)部定時器產(chǎn)生秒信號,通過軟件處理得到時間信息,送LCD顯示.四位無效,與符號位保持一致.溫度與數(shù)據(jù)對應關系如表.

  

【正文】 //更新 12c887 中時間的函數(shù) (供用戶設置時間函數(shù)調(diào)用 ) void Init() //程序初始化函數(shù) { =0。 =0。 =0。 =0。 =0。 =0。 =0。 time_t=time_n。 Set=1。 Set_h=1。 Set_m=1。 Set_s=1。 } void Init12c887() //初始化 12c887 控制寄存器 { DSA=0x20。 //打開 DS12C887 的內(nèi)部晶振并使 RTC(實時時鐘)記錄時間 DSB=0x0E。 //設二進制計數(shù) (匯編語言可用十進制 BCD 計數(shù) ),不定時 } void GetTime() //獲得當前時間函數(shù) { char temp2。 temp2=0x00。 temp2=DSA。 if((temp2 amp。 0x80)!=0x00) //判斷寄存器 12c887 控制寄存器 A 的最高位是否位 0(即是否可以讀數(shù) ) { return。 } =DS_S。 //讀取當前時間 =DS_M。 =DS_H。 =DS_W。 =DS_D。 =DS_Mo。 =DS_Y。 } void UpDateTime() //更新時間的函數(shù) { char temp。 temp=DSB。 temp=temp | 0x80。 DSB=temp。 //暫停走時 ,為接下來的時間更新作準備 DS_S=。 DS_M=。 DS_H=。 DS_W=。 DS_D=。 DS_Mo=。 DS_Y=。 temp=DSB。 temp=temp amp。 0x7f。 DSB=temp。 //恢復到正常的走時狀態(tài) } void ShowTime() //顯示時間函數(shù) { Display()。 //顯示秒 Display()。 //分 Display()。 //時 } void Display(int temp3) //顯示傳入?yún)?shù)的函數(shù) (串口 ) { int temp4。 temp4=temp3。 temp4=temp3%10。 temp3=temp3/10。 SBUF=LED_code_tab[temp4]。 while(!TI) { } TI=0。 temp4=temp3%10。 SBUF=LED_code_tab[temp4]。 while(!TI) { } TI=0。 } void SetTime() //用戶設置當前時間的函數(shù) { int set_st,set_mt,set_ht。 set_st=set_mt=set_ht=0。 while(Set==0) { if(Set_h==0) //按鍵按下時,置標志為 1 { set_ht=1。 } else if(Set_h==1 amp。amp。 set_ht==1) //按鍵松開且此前按鍵曾按下,置標志為 2 { set_ht=2。 } if(Set_m==0) { set_mt=1。 } else if(Set_m==1 amp。amp。 set_mt==1) { set_mt=2。 } if(Set_s==0) { set_st=1。 } else if(Set_s==1 amp。amp。 set_st==1) { set_st=2。 } if(Set_h==0) { set_ht=1。 } else if(Set_h==1 amp。amp。 set_ht==1) { set_ht=2。 } if(set_st==2) //當標志為 2,即按鍵完成一次按下動作后,將當前時間的秒鐘加 1,以下雷同 { ++。 if(=60) { =0。 } } if(set_mt==2) { ++。 if(=60) { =0。 } } if(set_ht==2) { ++。 if(=24) { =0。 } } if(set_ht==2 || set_mt==2 || set_st==2) { UpDateTime()。 //先更新時間 ,接下來獲取當前最新時間后顯示 GetTime()。 ShowTime()。 set_ht=0。 set_mt=0。 set_st=0。 } } } void main() { Init12c887()。 //初始化 12c887 Init()。 //初始化程序 ShowTime()。 while(1) { if(Set==0) { SetTime()。 } GetTime()。 if(!= || != || !=) { //只有在兩次的時間不一致時才調(diào)用顯示函數(shù) time_t=time_n。 ShowTime()。 } } } 參考文獻 [1]AT89C52datasheet. [2]LCD1602 中文資料 [3]DS12C887datasheet. [4]DS18B20datasheet.
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1