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

正文內(nèi)容

單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-基于stc89c52rc的電子萬年歷設(shè)計(jì)-資料下載頁

2025-10-13 15:58本頁面

【導(dǎo)讀】描模塊、LCD顯示模塊、蜂鳴器電路、電源電路、復(fù)位電路、晶振電路幾個(gè)模塊,主控模塊采用STC89C52RC單片機(jī),按鍵模塊用5個(gè)按鍵,實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)對(duì)時(shí)間,日期的操作。我們選用STC89C52RC單片機(jī)作為中央處理器,如圖2所示。此電路在加電后延遲大約10ms振蕩。晶振的頻率決定。復(fù)位電路由電阻和極性電容組成,如圖4所示,通過高電平使單片機(jī)復(fù)位,循環(huán)或程序“跑飛”等情況,通過手動(dòng)復(fù)位就可以實(shí)現(xiàn)重新啟動(dòng)的操作。鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和。毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。行接口,占用引腳少,如圖5所示。電平,通過檢測(cè)這一低電平就可以判斷是哪個(gè)鍵按下,從而作相應(yīng)的操作。是讀出指令,7至14腳為LCD1602的數(shù)據(jù)口,將數(shù)傳送到LCD1602中。通過控制三極管的導(dǎo)通和截止來實(shí)現(xiàn)蜂鳴器的響與

  

【正文】 。break。 case 12:if(ril==0) ril=31。break。 default:break。 } write_nyr(9,ril)。 write_1602(yh+10)。//因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位 break。 case 4:weekl。 if(weekl==0) weekl=7。 write_1602(yh+0x0C)。//指定 39。加 39。后的周數(shù)據(jù)顯示位置 write_week(weekl)。//指定周數(shù)據(jù)顯示內(nèi)容 write_1602(yh+0x0e)。//因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光 標(biāo)回位 break。 case 5:shi1。 if(shi1==1) shi1=23。 write_sfm(2,shi1)。 write_1602(er2+3)。//因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位 break。 case 6:fen1。 if(fen1==1) fen1=59。 write_sfm(5,fen1)。 write_1602(er2+6)。//因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,在這里是寫回原來的位置 break。 case 7:miao1。 if(miao1==1) miao1=59。//秒數(shù)據(jù)減到 1 時(shí)自動(dòng)變成 59 write_sfm(0x08,miao1)。//在 LCD 的正確位置顯示改變后新的秒數(shù) write_1602(er0x02+0x09)。//因?yàn)樵O(shè)置液晶的模式是寫入數(shù)據(jù)后,指針自動(dòng)加一,在這里是寫回原來的位置 break。 27 default:break。 } } } Wl=weekl。Rl=ril。Yl=yuel。Nl=nianl。W=week。R=ri。Y=yue。N=nian。 } //// // void init() //定時(shí)器、計(jì)數(shù)器設(shè)置函數(shù) { /****************定時(shí)器 2************************/ EA = 0。 /*關(guān)中斷,設(shè)置定時(shí)器 2 */ T2MOD amp。= 0xFC。 /* T2OE=0。定時(shí)器 2 輸出不允許 */ T2MOD |= 0x01。 /* DCEN=1??梢栽O(shè)置為向上 /下計(jì)數(shù) :此程序中為向上達(dá)到 0xff 時(shí)溢出 */ EXF2=0。 /* reset flag 定時(shí)器 2 外部標(biāo)志位清除 */ TCLK=0。RCLK=0。 /* disable baud rate generator 不用于波特率發(fā)生器 */ EXEN2=0。 /* ignore events on T2EX 視 T2EX()端信號(hào)無效 */ TH2=MSB_reload_value。 /* Init msb_value 填入初始化值 */ TL2=LSB_reload_value。 /* Init lsb_value */ RCAP2H=MSB_reload_value。 /* reload msb_value 重載值 */ RCAP2L=LSB_reload_value。 /* reload lsb_value */ C_T2=0。 /* timer mode 定時(shí)模式 */ CP_RL2=0。 /* reload mode 重載模式 */ /****************************************/ TMOD=0x11。 //time0 為定時(shí)器,方式 1 TH0=0x3c。 //預(yù)置計(jì)數(shù)初值 TL0=0xb0。 TH1=0xfc。 TL1=0x18。 EA=1。 ET0=1。 ET1=1。 ET2=1。 TR0=1。 TR1=0。 TR2=0。 } void clock() { if(clk_switch==1) { 28 if(shi==shi1) { if(fen==fen1) { if(miao==miao1) {TR1=1。} } } } else{TR1=0。} } //*******************主函數(shù) ************************** //*************************************************** void main() { uchar keyfuck=0xff。 lcd_init()。 //調(diào)用液晶屏初始化子函數(shù) init()。 //調(diào)用定時(shí)計(jì)數(shù)器的設(shè)置子函數(shù) buzzer=0。//蜂鳴器長響一次 delay(80)。 buzzer=1。 while(1) //無限循環(huán)下面的語句: { key16()。 //調(diào)用鍵盤掃描子函數(shù) /* keyfuck=keyboard()。 if(keyfuck!=0xff) { switch(keyfuck) { case 10:write_1602(er+0x0f)。write_1602dat(39。A39。)。break。 case 11:write_1602(er+0x0f)。write_1602dat(39。B39。)。break。 case 12:write_1602(er+0x0f)。write_1602dat(39。C39。)。break。 case 13:write_1602(er+0x0f)。write_1602dat(39。D39。)。break。 case 14:write_1602(er+0x0f)。write_1602dat(39。E39。)。break。 case 15:write_1602(er+0x0f)。write_1602dat(39。F39。)。break。 case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: 29 case 8: case 9:write_1602(er+0x0f)。write_1602dat(keyfuck+0x30)。break。 default:break。 } }*/ } } void timer0() interrupt 1 //取得并顯示日歷和時(shí)間 { //讀取秒時(shí)分周日月年七個(gè)數(shù)據(jù)( DS1302 的讀寄存器與寫寄存器不一樣): TH0=0x3c。 TL0=0xb0。 mstt++。 if(mstt=20 ) { miao++。 mstt=0。 } if(miao=60) { fen++。 miao=0。 } if(fen=60) { shi++。 fen=0。 } if(shi=24) { week++。 if(week==8) { week=0。 } else{} ri++。 run=nian%4。 if(run==0) {} 30 else {run=1。} switch(yue) { case 1 : if(ri==32) {ri=1。yue++。}break。 case 2 : if(run==0) {if(ri==30) {ri=1。yue++。}break。} else {if(ri==29) {ri=1。yue++。}break。} case 3 : if(ri==32) {ri=1。yue++。}break。 case 4 : if(ri==31) {ri=1。yue++。}break。 case 5 : if(ri==32) {ri=1。yue++。}break。 case 6 : if(ri==31) {ri=1。yue++。}break。 case 7 : if(ri==32) {ri=1。yue++。}break。 case 8 : if(ri==32) {ri=1。yue++。}break。 case 9 : if(ri==31) {ri=1。yue++。}break。 case 10: if(ri==32) {ri=1。yue++。}break。 case 11 :if(ri==31) {ri=1。yue++。}break。 case 12 :if(ri==32) {ri=1。yue++。}break。 default:break。 } shi=0。 } if(yue12) { nian++。 yue=1。 } if(clk_set==0) { //顯示、秒、時(shí)、分?jǐn)?shù)據(jù): write_week(week)。 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_1602(er+0x09)。//設(shè)置按鍵按動(dòng)一次,秒位置顯示光標(biāo) //keyscan( )。 //按鍵掃描 clock()。 //鬧鐘判斷 31 } } void timer1() interrupt 3 {if(W==Wlamp。amp。R==Rlamp。amp。Y==Ylamp。amp。N==Nl) {TH1=0xfc。 TL1=0x18。 count2++。 if(count2==20) { count1++。 count2=0。 if(count1==1) { buzzer=~buzzer。 count1=0。 count2=0。} else buzzer=0。 } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1