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

正文內(nèi)容

基于51單片機(jī)鬧鐘設(shè)計(jì)(編輯修改稿)

2025-02-14 14:52 本頁面
 

【文章內(nèi)容簡介】 6553616666)%256。 TR0=1。 ET0=1。 //秒表 EA=1。 Con=1。 while(1) { P1=0x50+disp[minute1]。 P1=0x60+disp[minute2]。 P1=0x00+disp[second1]。 P1=0x20+disp[second2]。 P1=0x90+disp[(hour1%10)]。 P1=0xa0+disp[(hour1/10)]。 press()。 sec()。 sec1()。 sec2()。 clr()。 if(KeyV==0x7e) {rotate()。} }}clock(){ KeyV=0。 TMOD=0x01。 TH0=(6553616666)/256。 TL0=(6553616666)%256。 TR0=1。 TR1=0。 ET0=1。 //時鐘 EA=1。 Con=63。 while(1) { P1=0x50+disp[minute1]。 P1=0x60+disp[minute2]。 P1=0x00+disp[second1]。 P1=0x20+disp[second2]。 P1=0x90+disp[(hour1%10)]。 P1=0xa0+disp[(hour1/10)]。 scan1()。 press()。 if(KeyV==0x7e) {second()。} }}screen(){ KeyV=0。 TMOD=0x01。 TH1=(6553640000)/256。 TL1=(6553640000)%256。 TR1=1。 TR0=0。 ET1=1。 //時鐘 EA=1。 //dly()。 while(1) { press()。 display()。 if(KeyV==0x7e) {clock()。} }}Klock(){ unsigned char i,t。 V=0。 while(1) { KeyV=11。 V=0。 press()。 ldisplay()。 if(KeyV!=11amp。amp。KeyV!=0x7bamp。amp。KeyV!=0x7e) lscan()。 if(KeyV==0x7b) { for(i=0。i=7。i++) {if(Pin[i]==Lock[i]) V++。} if(V!=8){for(i=0。i=7。i++) Lock[i]=0。} if(V==8){for(i=0。i=7。i++) Lock[i]=8。t=V。}//等于8證明八個數(shù)都相等開鎖 } if(t==8amp。amp。KeyV==0x7e)break。 }}void main(){ dly()。 while(1) { Klock()。 screen()。 }} 暑期實(shí)習(xí)課題一:基于51單片機(jī)的鬧鐘設(shè)計(jì) 材料材料:STC89C52單片機(jī)開發(fā)板一塊,1602液晶一片,12c887時鐘芯片,ps2鍵盤,下載線,個人計(jì)算機(jī)編譯軟件:wave及keil下載程序軟件:STC專用下載串口軟件 芯片及硬件資料一、芯片DS12c887DS12C887 能夠自動產(chǎn)生世紀(jì)、 年、月、日、時、分、秒 等時間信息,其內(nèi) 部又增加了世紀(jì)寄存器,從而利用硬件電路 解決子 “千年”問題;DS12C887 中自帶有鋰電 池,外部掉電時,其內(nèi)部時間 信息還能夠保 持 10 年之久;對于一天內(nèi)的時間記錄,有 12 小時制和 24 小時制兩種模式。在 12 小時 制模式中,用 AM 和 PM 區(qū)分上午和下午;2. 、引腳功能: DS12C887 的引腳排列如圖 1 所示,各管腳的功能說明如下: GND、VCC:直流電源,其中 VCC 接+5V 輸入,GND 接地,當(dāng) VCC 輸入為+5V 時,用 戶可以訪問 DS12C887 內(nèi) RAM 中的數(shù)據(jù),并可對其進(jìn)行讀、寫操作;當(dāng) VCC 的輸入小于 + 時,禁止用戶對內(nèi)部 RAM 進(jìn)行讀、寫操作,此時用戶不能正確獲取芯片內(nèi)的時間信 息;當(dāng) VCC 的輸入小于+3V 時,DS12C887 會自動將電源發(fā)換到內(nèi)部自帶的鋰電池上,以保證 內(nèi)部的電路能夠正常工作。 圖13. 圖 2是用 8031 單片機(jī)和 DS12C887 構(gòu)成的時間獲取電路圖 即對應(yīng)的管腳為如下: |DS1288751 |DS1288751 |DS1288751 | | | | |ASALE | | | || | | || | | || 圖 24. 下圖為 DS12C887地址分布圖, 則結(jié)合上圖及其管腳知其基地址為: 0x0fe0 圖35. 、相應(yīng)的程序采用 C51 語言編寫,由于Mot接地則以 Intel 工作模式。 即可以將各個引腳宏定義如下,并放入頭文件中:define DS12887_Sec XBYTE[0x0fe00] //秒define DS12887_Min XBYTE[0x0fe02] //分define DS12887_Hour XBYTE[0x0fe04] //時define DS12887_Week XBYTE[0x0fe06] //星期define DS12887_Day XBYTE[0x0fe07] //日define DS12887_Mon XBYTE[0x0fe08] //月define DS12887_Year XBYTE[0x0fe09] //年define DS12887_A XBYTE[0x0fe0a] //寄存器Adefine DS12887_B XBYTE[0x0fe0b] //寄存器Bdefine DS12887_C XBYTE[0x0fe0c] //寄存器Cdefine DS12887_D XBYTE[0x0fe0d] //寄存器Ddefine DS12887_AlarmSec XBYTE[0x0fe01] //秒鬧鐘define DS12887_AlarmMin XBYTE[0x0fe03] //分鐘鬧鐘define DS12887_AlarmHour XBYTE[0x0fe05] //小時鬧 思路分析 時間及日期顯示:要有鬧鐘功能,及先應(yīng)該有時鐘顯示,可先將某一時間初值賦值給各個AD管腳,然后又以掃描方式將時間調(diào)出來,并用Lcd顯示,并在第二次下載程序之前,將原有時間屏蔽,即可實(shí)現(xiàn)。 時間及日期修改:如果時間不準(zhǔn),可以通過軟件重設(shè)時間,但是現(xiàn)實(shí)時鐘不允許軟件改時間,為了與現(xiàn)實(shí)鬧鐘功能一致,必須實(shí)現(xiàn)用硬件修改時間,及必先有輸入設(shè)備。用ps2鍵盤,結(jié)合頭文件可編程實(shí)現(xiàn)該功能。 鬧鐘設(shè)置:用一個數(shù)組記錄三個數(shù)據(jù),分別定義為鬧鐘時分秒,并通過掃描與當(dāng)前時間對比,如果一一對應(yīng),則開始鬧鐘。鬧鐘過程可將開發(fā)板上的Led點(diǎn)亮,然后按某件實(shí)現(xiàn)關(guān)閉??闪硇性黾幼约旱南敕üδ?,如懶豬功能延時,自行延時等。 鬧鐘屏蔽:如果設(shè)置了鬧鐘,在主界面上可以通過某個符號顯示,如果沒有則通過另一個符號顯示。如果顯示沒有鬧鐘,則可屏蔽鬧鐘,即使設(shè)置了也不能到點(diǎn)鬧。該功能可通過按下某鍵改變某變量實(shí)現(xiàn)。 功能及實(shí)現(xiàn) 時間日期星期顯示:從頭文件中調(diào)用函數(shù)SetTime(unsigned char hour,unsigned char min,unsigned char sec)和SetDate(unsigned char year,unsigned char mon,unsigned char day)將時間日期分別賦值給對應(yīng)變量。并將各個值分別賦值給數(shù)組: Date_Time[6]=DS12887_Sec。 //秒 Date_Time[5]=DS12887_Min。 //分 Date_Time[4]=DS12887_Hour。 //時 Date_Time[3]=DS12887_Week 。 //星期 Date_Time[2]=DS12887_Day。 //日 Date_Time[1]=DS12887_Mon。 //月 Date_Time[0]=DS12887_Year。在主函數(shù)中用while(1)循環(huán)掃描記錄各值。將時分秒及月日用如下方式分離成十位和個位:Date_Time[i]/10)+48)。(Date_Time[i]%10)+48)注意要顯示字符,必須加上48,因?yàn)長cd只能顯示字符為char型。定義displaytime()函數(shù),用 DispOneChar(x,y,(Date_Time[i]/10)+48)。語句將分離后的時分秒及日月顯示在液晶適當(dāng)?shù)奈恢?。由于星期只能用字符串顯示,只能另外編寫函數(shù),因?yàn)镈ate_Time[3]為記錄星期的數(shù)組元素,其值從1到7,分別對應(yīng)星期日到星期一。可編寫星期函數(shù)如下:void week(){ if(Date_Time[3]==6) Display(5,0,Fri);...}整個時間顯示結(jié)構(gòu)如下:mian(){SetTime( );SetDate();While(1){Date_Time[i]=DS12887_...;week()。displaytime();}}時間星期日期的調(diào)整:日期及星期的調(diào)整可在主界面上進(jìn)行,調(diào)用Ps2頭文件,在while循環(huán)中用if判斷如果有鍵按下則星期加減同時日期同步加減, if(KeyChar==39。w39。){DS12887_Day+=1。DS12887_Week+=1。if(DS12887_Week7) DS12887_Week=1。KeyChar=0。} //設(shè)置新日期if(KeyChar==39。j39。){DS12887_Day=1。DS12887_Week=1。if(DS12887_Week1) DS12887_Week=7。KeyChar=0。}注意星期只能從1到7變化。月份的調(diào)整要簡單些 if(KeyChar==39。m39。){DS12887_Mon+=1。KeyChar=0。} //設(shè)置新月份 if(KeyChar==39。_39。){DS12887_Mon=1。KeyChar=0。}時分秒的調(diào)整由于變量太多,可設(shè)置跳入另一界面實(shí)現(xiàn),如果
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1