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

正文內(nèi)容

基于stc89c52單片機(jī)的定時插座設(shè)計(參考版)

2024-12-10 01:18本頁面
  

【正文】 if(s1==0) { 。 } } /***************按鍵處理程序 *************/ void keyscan() { uchar num。num3++) { write_data(table18[num3])。 for(num3=0。 delay(10)。num311。 write_(0x80)。 } void lcall3() { uchar num3。 write_sfm(0x09,hh[0])。 write_sfm(3,ff[1])。 write_nyr(0x0c,kk[1])。 write_nyr(6,ee[2])。} write_nyr(0,ee[0])。numnum2++) { write_data(table2[num2])。} write_(0xc0)。numnum2++) { write_data(table1[num2])。 write_(0x80)。 } void lcall5() //寫入定時開關(guān)時間 { uchar num2。 delay(1)。num18。 } write_(0xc0)。num1++) { write_data(table5[num1])。 for(num1=0。 write_(0x01)。 default:break。 33 }。num++) { write_data(table13[num])。 case 7: for(num=0。 }。num++) { write_data(table12[num])。 case 6: for(num=0。 }。num++) { write_data(table11[num])。 case 5: for(num=0。 }。num++) { write_data(table10[num])。 case 4: for(num=0。 }。num++) { write_data(table9[num])。 case 3: for(num=0。 }。num++) { write_data(table8[num])。 case 2: for(num=0。 }。num++) { write_data(table7[num])。 switch(zhou) {case 1: for(num=0。 } void write_zhou() //星期處理 { uchar num。 write_data(0x30+sw)。 gw=date%10。 write_data(0x30+gw)。 write_(0x80+0x40+add)。//禁止渦流充電 } void write_sfm(uchar add,uchar date) { sw=date/10。 Write_DS1302(0x80,0x00)。 } } void init_DS1302() //ds1302 初始化 { RST=0。 p++。n0。 } Write_DS1302(0x8e,0x80)。 p++。 bb=(sw4)|gw。n) {sw=(*p)/10。//寫控制字,允許寫操作 for(。 } //設(shè)置初始時間 void Set_DS1302(uchar addr,uchar *p,uchar n)//寫入 n 個數(shù)據(jù) {uchar bb。 31 SCLK=0。 backdata=DS1302_rbyte()。 RST=1。 SCLK=0。 DS1302_wbyte(indata)。 } //往 ds1302 的某個地址寫入數(shù)據(jù) void Write_DS1302(uchar cmd,uchar indata) { RST=1。 temp=temp1。0x7f。 if(IO==1) temp=temp|0x80。i0。 IO=1。 inbyte=inbyte1。 SCLK=1。0x01) IO=1。i) 30 { SCLK=0。 for(i=8。 } } /*********DS1302 程序 *********/ void delay1(uint num) { while( num )。num++) { write_data(table6[num])。 for(num=0。 delay(1)。num8。 write_(0x80)。 } delay(5)。num++) { write_data(table4[num])。 for(num=0。 delay(5)。num16。 write_(0x80)。 write_(0x80)。 write_(0x06)。 29 write_(0x38)。 } void init() //lcd 初始化 { uchar num。 delay(5)。 delay(5)。 lcden=0。 lcden=0。 lcden=1。 P1=。 } void write_(uchar ) //lcd 寫指令 { lcdrs=0。j0。i0。 void delay(uint i) { uint j。 uchar s1num,s2num。 char miao,fen,shi,ri,yue,zhou,nian。 uchar gg[6]。 uchar kk[2]={11,2}。 uchar ee[3]={11,0,0}。 uchar dd[7]。 uchar mon_code_count=0。 uchar key=255。 uint buf_key_code=0。 uchar code table17[]=Mode Choice。 uchar code table15[]=Set the Mode。 uchar code table13[]=SUN。 uchar code table11[]=FRI。 uchar code table9[]=WED 。 uchar code table7[]=MON。 uchar code table5[]=20 。 uchar code table3[]= Wele to 。 uchar code table1[]= : : : 。 sbit s3=P2^2。 sbit s1=P2^0。 sbit P0_1=P0^1。 sbit beep=P0^4。 sbit IO=P0^6。 sbit inf=P3^3。 sbit lcdrw=P3^6。在此謹(jǐn)向他們表示衷心的 感謝。在此期間,洪老師定期召集同組人員開會指導(dǎo)工作,在整個設(shè)計中不斷給予我們良好的建議,使我們的設(shè)計更加順利。但是,在這過程中,我也發(fā)現(xiàn)了自己所學(xué)知識的不足,在今后仍需不斷努力學(xué)習(xí)。 設(shè)計過程 中 有喜有 憂 ,但是經(jīng)過多次反復(fù)的問題 分析和系統(tǒng)調(diào)試 ,還是解決了各個難題,也使我在設(shè)計電路及分析電路問題上學(xué)到了很多。 6. 結(jié)束語 本次 畢業(yè) 設(shè)計基于單片機(jī)的定時插座到此就告一段落了,所設(shè)計的硬件和軟件都可以正常工作,各項設(shè)計均達(dá)到了設(shè)計任務(wù)的要求。 另外 ,本次設(shè)計中所使用的紅外遙控器基本只能在同一室內(nèi)控制插座,如果采用無線電遙控器等更加先進(jìn)的遙控器的話,人們或許就可以在室內(nèi)的任何 地方 隨時控制家電的開關(guān)狀態(tài)了 。 因而,如果在設(shè)計時多加入幾路的插座控制,而且各路控制互不干擾,各司其職的話,用戶只需要將要定時控制的用電器具都插在定時插座上,通過各自的定時 設(shè)置, 就可以 使各電器按照人們的習(xí)慣有規(guī)律地工作, 很大程度上 方便人們的日常生活。 設(shè)計中存在的不足 及其改進(jìn) 本次設(shè)計的定時插座雖然可以 實現(xiàn) 定時控制一路插座的功能 ,但是可定時的 路數(shù)和定時組數(shù)仍然不夠 。當(dāng)定時插座變換工作狀態(tài)時,蜂鳴器發(fā)出短暫的蜂鳴。該 定時插座可以控制一路 220V/10A 的插座,可以設(shè)置在一天 24 小時內(nèi)的兩組任意定時開關(guān)時間和 6 組一小時內(nèi)的固定模式定時。 設(shè)計結(jié)果 通過一番努力,終于在此次設(shè)計中完成了 預(yù)期設(shè)計任務(wù) 。定時插座設(shè)置時間有時候需要快速定時,如果通過按鍵設(shè)置 一定 時間段的定時可能比較耗時,于是就加入了固定 定時 模式,可以在簡單的操作中設(shè)置一個小時內(nèi)的 6 組固定模式定時。 而在控制定時方面,開始只是讓系統(tǒng)可以通過獨(dú)立式按鍵設(shè)置一組定時開關(guān)時間,后面意識到可 設(shè)置的定時 組數(shù) 太少,功能過于簡單,就再加入了一組定時設(shè)置, 使 系統(tǒng)可以通 23 過獨(dú)立式按鍵設(shè)置兩組定時開關(guān)時間。 問題可能出在 系統(tǒng)只能執(zhí)行一種控制模式,而不能同時有兩種控制模式,程序可能在 紅外檢測解碼 過程 中 出問題,也可能 在中斷控制過程 。通過修改程序 后發(fā)現(xiàn)系統(tǒng)可以正常工作,設(shè)置定時正常,顯示也正常了。針對這個問題, 我非常不解, 因為先前對紅外編碼解碼原理和編程不了解,一時找不出具體原因。當(dāng)分 模塊調(diào)試時單片機(jī)確實可以接收到紅外編碼信號,也可以將解碼得到的鍵值顯示在流水燈上。 至于后期需要繼續(xù)擴(kuò)展功能可以繼續(xù)添加。當(dāng)把獨(dú)立式按鍵掃描程序加入總程序時,發(fā)現(xiàn)時間不動了,原因可能是單片機(jī)無法 從 DS1302 里面讀取數(shù)據(jù)了,也可能是采集到的數(shù)據(jù)無法在 顯示器上 顯示,或者是在按鍵處理過程中出現(xiàn)了問題。有了這些流程后才能在編程過程中減少一些不 必要的麻煩 【 11】 。然后通過獨(dú)立式按鍵設(shè)置顯示菜單,執(zhí)行相應(yīng)的功能。 首先是 LCD1602 顯示程序,通過編寫過的程序掌握了 1602 的顯示原理及其顯示過程用到的指令如清屏,開關(guān)顯示等。 外接插座上,開始選擇將插座內(nèi)部電線引出,再連接到印制電路板上,后來發(fā)現(xiàn)這樣不夠安全,所以選擇通過改裝 內(nèi)部 電路,使得排插的兩個插座連成一線,這樣就可以直接用如圖 16 所示 的連接方法構(gòu)成安全的 定時插座 電路 ,使得上下兩個插座 只要其中一個導(dǎo)通,另一個就可以構(gòu)成可用插座。開始認(rèn)為是三極管問題導(dǎo)致電路兩端不能構(gòu)成超過 的電壓差才不響,更換三極管后發(fā)現(xiàn)還是不響。 其中蜂鳴器電路出現(xiàn)的問題最大,所設(shè)計的蜂鳴器電路是低電平時發(fā)出響聲的,可是當(dāng)給蜂鳴器低電平時,發(fā)現(xiàn)不響。 繼電器部分的電路檢查時開始用 3 節(jié)干電池給單片機(jī)供電,發(fā)現(xiàn)繼電器無法工作,檢查原因后才知道繼電器的供電電壓不足,因而用 12V 轉(zhuǎn) 5V 的穩(wěn)壓電源時工作正常。 連接接地端后單片機(jī)流水燈程序可以正常運(yùn)行,表明單片機(jī)正常工作??墒菃栴}還是沒有解決,然后把單片機(jī)拔出放到可用單片機(jī)板上下載流水燈程序后再放置在所制作的電路板上,發(fā)現(xiàn)流水燈程序沒有執(zhí)行,單片機(jī) I/O 仍然保持高電平輸出狀態(tài)。當(dāng)然,有問題就要想辦法解決,冷靜下來仔細(xì)再檢查了 Protel 上的原理圖,沒有發(fā)現(xiàn)錯誤,檢查了電路的電源部分,發(fā)現(xiàn)電源輸入 5V 正確。 緊接著在認(rèn)真修改錯誤后繼續(xù)制作電路板,焊接元器件,懷著滿心的喜悅 完成了 硬件電路的制作。雖然軟件沒有檢測出錯誤,但是實際是個錯誤的電路。在設(shè)計電路圖的過程中由于對繼電器不熟,開始沒有繼電器的封裝,通過查閱書籍,請教同學(xué)等方式最后完成了電路原理圖的設(shè)計和電路 PCB 板的設(shè)計。 初步熟悉這些主要器件的外部電路后,在條件允許的情況下先分別 制作主要模塊的電路,測試其可用性,比如繼電器部分的電路,因為之前沒有使用過繼電器,對這塊的外部電路完全不熟,只能先制作模塊部分的電路測試是否可用。 Key_Handle()。 //顯示時間 } dingshi()。 keyscan()。 主函數(shù)的編寫如下所示 : void main() //主函數(shù) {sysinit()。break。break。gg[5]=fen+60。P0_2=0。break。gg[4]=fen+50。P0_2=0。break。gg[3]=fen+40。P0_2=0。break。 gg[2]=fen+30。P0_2=0。break。 gg[1]=fen+20。P0_2=0。break。 gg[0]=fen+10。P0_2=0。break。P0_2=~P0_2。當(dāng)檢測
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1