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

正文內(nèi)容

基于單片機(jī)的led數(shù)碼管數(shù)字電子鐘智能儀表課程設(shè)計(jì)-閱讀頁

2024-09-16 14:54本頁面
  

【正文】 第二個(gè)按鍵是加鍵,第三個(gè)按鍵是減鍵,最后一個(gè)是切換鍵。按一下 k4 鍵顯示時(shí)、分、秒,并且走時(shí)顯示,此為正常工作模式,按兩次 k4 鍵顯示年,月,日,按下三次后顯示秒表。其硬件連接如圖 。 DS1302 的 X1 和 X2管腳外接標(biāo) DS1302 的復(fù)位引腳通過把 RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。當(dāng) RST 為高電平時(shí),所 有的數(shù)據(jù)傳送被初始化,允許對 DS1302 進(jìn)行操作。上電運(yùn)行時(shí),在 Vcc≥ 之前, RST 必須保持低電平。其連接線路如圖 圖 時(shí)鐘芯片電路 11 第 4 章 軟件設(shè)計(jì) 程序流程圖 本實(shí)驗(yàn)由 C 語言編寫完成。這次設(shè)計(jì)運(yùn)用到的知識(shí)很多方面,尤其是單片機(jī),像 AT89C52,引腳多,硬件內(nèi)部線路接通,所以用起來很方便,還有 ds1302 芯片與單片機(jī)之間的連接,以及如入使用 ds1302 芯片。主要就是電路原理圖,還有對引腳的作用熟悉。我們最大的成功之處是在這整個(gè)過程,動(dòng)腦尋求解決一個(gè)一個(gè)問題的辦 法,對程序是不斷思索,務(wù)必寫出很簡單的程序來,使得電子時(shí)鐘能做成功!同時(shí),通過這次的設(shè)計(jì),讓我學(xué)會(huì)了去跟別人合作的精神,這將是我在以后的工作中的一筆巨大的財(cái)富。由于我個(gè)人的知識(shí)學(xué)得不夠好,經(jīng)常遇到無法解決的問題。 15 附 錄 A:硬件原理圖 16 附錄 B: C 語言源程序 include include define uchar unsigned char uchar miao,shi,fen,s1num,s4num。 define uint unsigned sbit IO=P3^3。 //ds1302 時(shí)鐘信號段(時(shí)鐘線) sbit RST=P3^5。 //LED 數(shù)據(jù)端口 sbit DISPLAY_CLK=P1^1。 //功能鍵 sbit s2=P1^5。 //減鍵 sbit s4=P1^7。 char set_miao=0,set_fen=0,set_shi=12。 //數(shù)碼管位碼 uchar display_buffer[]={0x00,0x00,10,0x00,0x00,10,0x00,0x00}。 _nop_()。 _nop_()。 } void delayxms(uint z) //延時(shí)程序 { uint x,y。x0。y0。 } void write_a_byte_to_1302 (uchar dat) //向 DS1302 寫入一個(gè)字節(jié) { unsigned char i。i8。 delay()。 IO=CY。 delay()。 unsigned char temp=0x00。 for(i=0。i++) { SCLK=0。 temp=temp1。 SCLK=1。 } return temp/16*10+temp%16。 RST=0。 SCLK=0。 RST=1。 write_a_byte_to_1302(addr)。 SCLK=1。 return dat。 delay()。 delay()。 delay()。 write_a_byte_to_1302(dat)。 RST=0。 // 秒 current_time[1]=read_data(0x83)。 // 時(shí) current_time[3]=read_data(0x87)。 //月 current_time[5]=read_data(0x8D)。 //秒個(gè)位 display_buffer[1]=current_time[0]/10。 //—— display_buffer[3]=current_time[1]%10。 display_buffer[5]=10。 display_buffer[7]=current_time[2]/10。 //天各位 display_buffer[1]=current_time[3]/10。 //—— display_buffer[3]=current_time[4]%10。 display_buffer[5]=10。 display_buffer[7]=current_time[5]%100/10。 //秒個(gè)位 display_buffer[1]=current_time[0]/10。 display_buffer[3]=0。 display_buffer[5]=10。 display_buffer[7]=0。 if(s1==0) { while(!s1)。 //功能鍵按下次數(shù)記錄 switch(s1num) { case 1: //調(diào)秒 TR0=0。//取消寫保護(hù) write_data(0x8e,0x80)。 break。 write_data(0x82,0x00)。 case 3: //調(diào)時(shí) write_data(0x8e,0x00)。 break。 write_data(0x8e,0x80)。 break。 if(s2==0) { while(!s2)。 //則調(diào)整秒加 1 if(miao==60) //若滿 60 后清零 miao=0。 //將調(diào)整后的秒寫入 1302( BCD 碼的轉(zhuǎn)換) break。 //則調(diào)整分加 1 if(fen==60) //若滿 60 后清零 fen=0。 //將調(diào)整后的分寫入 1302 break。 //則調(diào)整時(shí)加 1 if(shi==24) //若滿 24 后清零 shi=0。 //將調(diào)整后的時(shí)寫入 1302 break。 if(s3==0) { while(!s3)。 if(miao==1) miao=59。 break。 if(fen==1) fen=59。 break。 if(shi==1) shi=23。 break。 TH0=0。 EA=1。 TR0=1。 //顯示時(shí)分秒 break。 //顯示年月日 break。 //顯示秒表 break。 if(s4==0) { s4num++。 } } } void main() { char i,j。 init()。 changetime()。 key4()。} for(j=0。j++) { ddd=SMG[display_buffer[j]]。i8。 if((dddamp。 } else { DISPLAY_DAT=0。 DISPLAY_CLK=0。 } } delayxms(1000)?;趩纹瑱C(jī)的時(shí)鐘設(shè)計(jì) [J]。2020 年 01 期
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1