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

正文內(nèi)容

畢業(yè)論文-基于stc89c52單片機(jī)的定時(shí)插座設(shè)計(jì)(參考版)

2025-01-19 22:31本頁(yè)面
  

【正文】 } void lcall3() { 。 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() //寫(xiě)入定時(shí)開(kāi)關(guān)時(shí)間 { 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。//寫(xiě)控制字,允 許寫(xiě)操作 for(。 } //設(shè)置初始時(shí)間 void Set_DS1302(uchar addr,uchar *p,uchar n)//寫(xiě)入 n 個(gè)數(shù)據(jù) {uchar bb。 31 SCLK=0。 backdata=DS1302_rbyte()。 RST=1。 SCLK=0。 DS1302_wbyte(indata)。 } //往 ds1302 的某個(gè)地址寫(xiě)入數(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 寫(xiě)指令 { 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)向他們表示衷心的 感謝。在此期間,洪老師定期召集同組人員開(kāi)會(huì)指導(dǎo)工作,在整個(gè)設(shè)計(jì)中不斷給予我們良好的建議,使我們的設(shè)計(jì)更加順利。但是,在這過(guò)程中,我也發(fā)現(xiàn)了自己所學(xué)知識(shí)的不足,在今后仍需不斷努力學(xué)習(xí)。 設(shè)計(jì)過(guò)程 中 有喜有 憂 ,但是經(jīng)過(guò)多次反復(fù)的問(wèn)題分析和系統(tǒng)調(diào)試 ,還是解決了各個(gè)難題,也使我在設(shè)計(jì)電路及分析電路問(wèn)題上學(xué)到了很多。 6. 結(jié)束語(yǔ) 本次 畢業(yè) 設(shè)計(jì)基于單片機(jī)的定時(shí)插座到此就告一段落了,所設(shè)計(jì)的硬件和軟件都可以正常工作,各項(xiàng)設(shè)計(jì)均達(dá)到了設(shè)計(jì)任務(wù)的要求。 另外 ,本次設(shè)計(jì)中所使用的紅外遙控器基本只能在同一室內(nèi)控制插座,如果采用無(wú)線電遙控器等更加先進(jìn)的遙控器的話,人們或許就可以在室內(nèi)的任何 地方 隨時(shí)控制家電的開(kāi)關(guān)狀態(tài)了 。 因而,如果在設(shè)計(jì)時(shí)多加入幾路的插座控制, 而且各路控制互不干擾,各司其職的話,用戶只需要將要定時(shí)控制的用電器具都插在定時(shí)插座上,通過(guò)各自的定時(shí) 設(shè)置, 就可以 使各電器按照人們的習(xí)慣有規(guī)律地工作, 很大程度上 方便人們的日常生活。 設(shè)計(jì)中存在的不足 及其改進(jìn) 本次設(shè)計(jì)的定時(shí)插座雖然可以 實(shí)現(xiàn) 定時(shí)控制一路插座的功能 ,但是可定時(shí)的 路數(shù)和定時(shí)組數(shù)仍然不夠 。當(dāng)定時(shí)插座變換工作狀態(tài)時(shí),蜂鳴器發(fā)出短暫的蜂鳴。該定時(shí)插座可以控制一路 220V/10A 的插座,可以設(shè)置在一天 24 小時(shí)內(nèi)的兩組任意定時(shí)開(kāi)關(guān)時(shí)間和 6 組一小 時(shí)內(nèi)的固定模式定時(shí)。 設(shè)計(jì)結(jié)果 通過(guò)一番努力,終于在此次設(shè)計(jì)中完成了 預(yù)期設(shè)計(jì)任務(wù) 。定時(shí)插座設(shè)置時(shí)間有時(shí)候需要快速定時(shí),如果通過(guò)按鍵設(shè)置 一定 時(shí)間段的定時(shí)可能比較耗時(shí),于是就加入了固定 定時(shí) 模式,可以在簡(jiǎn)單的操作中設(shè)置一個(gè)小時(shí)內(nèi)的 6 組固定模式定時(shí)。 而在控制定時(shí)方面,開(kāi)始只是讓系統(tǒng)可以通過(guò)獨(dú)立式按鍵設(shè)置一組定時(shí)開(kāi)關(guān)時(shí)間,后面意識(shí)到可設(shè)置的定時(shí) 組數(shù) 太少,功能過(guò)于簡(jiǎn)單,就再加入了一組定時(shí)設(shè)置, 使 系統(tǒng)可以通 23 過(guò)獨(dú)立式按鍵設(shè)置兩組定時(shí)開(kāi)關(guān)時(shí) 間。 問(wèn)題可能出在 系統(tǒng)只能執(zhí)行一種控制模式,而不能同時(shí)有兩種控制模式,程序可能在 紅外檢測(cè)解碼 過(guò)程 中 出問(wèn)題,也可能 在中斷控制過(guò)程 。通過(guò)修改程序后發(fā)現(xiàn)系統(tǒng)可以正常工作,設(shè)置定時(shí)正常,顯示也正常了。針對(duì)這個(gè)問(wèn)題, 我非常不解, 因?yàn)橄惹皩?duì)紅外編碼解碼原理和編程不了解,一時(shí)找不出具體原因。當(dāng)分模塊調(diào)試時(shí)單片機(jī)確實(shí)可以接收到紅外編碼信號(hào),也可以將解碼得到的鍵值顯示在流水燈上。 至于后期需要繼續(xù)擴(kuò)展功能可以繼續(xù)添加。當(dāng)把獨(dú)立式按鍵掃描程序加入總程序時(shí),發(fā)現(xiàn)時(shí)間不動(dòng)了,原因可能是單片機(jī)無(wú)法 從 DS1302 里面讀取數(shù)據(jù)了,也可能是采集到的數(shù)據(jù)無(wú)法在 顯示器上 顯示,或者是在按鍵處理過(guò)程中出現(xiàn)了問(wèn)題。有了這些流程后才能在編程過(guò)程中減少一些不必要的麻煩 【 11】 。然后通過(guò)獨(dú)立式按鍵設(shè)置顯示菜單,執(zhí)行相應(yīng)的功能。 首先是 LCD1602 顯示程序,通過(guò)編寫(xiě)過(guò)的程序掌握了 1602 的顯示原理及其顯示過(guò)程用到的指令如清屏,開(kāi)關(guān)顯示等。 外接插座上,開(kāi)始選擇將插座內(nèi)部電線引出,再連接到印制電路板上,后來(lái)發(fā)現(xiàn)這樣不夠安全,所以選擇通過(guò)改裝 內(nèi)部 電路,使得排插的兩個(gè)插座連成一線,這樣就可以直接用如圖 16 所示 的連接方法構(gòu)成安全的 定時(shí)插座 電路 ,使得上下兩個(gè)插座 只要其中一個(gè)導(dǎo)通,另一個(gè)就可以構(gòu)成可用插座。開(kāi)始認(rèn)為是三極管問(wèn)題導(dǎo)致電路兩端不能構(gòu)成超過(guò) 的電壓差才不響,更換三極管后發(fā)現(xiàn)還是不響。 其中蜂鳴器電路出現(xiàn)的問(wèn)題最大,所設(shè)計(jì)的蜂鳴器電路是低電平時(shí)發(fā)出響聲的,可是當(dāng)給蜂鳴器低電平時(shí),發(fā)現(xiàn)不響。 繼電器部分的電路檢查時(shí)開(kāi)始用 3 節(jié)干電池給單片機(jī)供電,發(fā)現(xiàn) 繼電器無(wú)法工作,檢查原因后才知道繼電器的供電電壓不足,因而用 12V 轉(zhuǎn) 5V 的穩(wěn)壓電源時(shí)工作正常。 連接接地端后單片機(jī)流水燈程序可以正常運(yùn)行,表明單片機(jī)正常工作。可是問(wèn)題還是沒(méi)有解決,然后把單片機(jī)拔出放到可用單片機(jī)板上下載流水燈程序后再放置在所制作 的電路板上,發(fā)現(xiàn)流水燈程序沒(méi)有執(zhí)行,單片機(jī) I/O 仍然保持高電平輸出狀態(tài)。當(dāng)然,有問(wèn)題就要想辦法解決,冷靜下來(lái)仔細(xì)再檢查了 Protel 上的原理圖,沒(méi)有發(fā)現(xiàn)錯(cuò)誤,檢查了電路的電源部分,發(fā)現(xiàn)電源輸入 5V 正確。 緊接著在認(rèn)真修改錯(cuò)誤后繼續(xù)制作電路板,焊接元器件,懷著滿心的喜悅 完成了 硬件電路的制作。雖然軟件沒(méi)有檢測(cè)出錯(cuò)誤,但是實(shí)際是個(gè)錯(cuò) 誤的電路。在設(shè)計(jì)電路圖的過(guò)程中由于對(duì)繼電器不熟,開(kāi)始沒(méi)有繼電器的封裝,通過(guò)查閱書(shū)籍,請(qǐng)教同學(xué)等方式最后完成了電路原理圖的設(shè)計(jì)和電路 PCB 板的設(shè)計(jì)。 初步熟悉這些主要器件的外部電路后,在條件允許的情況下先分別制作主要模塊的電路,測(cè)試其可用性,比如繼電器部分的電路,因?yàn)橹皼](méi)有使用過(guò)繼電器,對(duì)這塊的外部電路完 全不熟,只能先制作模塊部分的電路測(cè)試是否可用。 Key_Handle()。 //顯示時(shí)間 } dingshi()。 keyscan()。 主函數(shù)的編寫(xiě)如下所示 : 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)檢測(cè)到電源鍵被按下時(shí) 即可執(zhí)行定時(shí)插座的開(kāi)機(jī)與關(guān)機(jī);當(dāng)檢測(cè)到數(shù)字鍵 1~6按鍵時(shí)則進(jìn)行相應(yīng)的模式定時(shí)設(shè)置,同時(shí)開(kāi)啟定時(shí)插座,待到下一定時(shí)時(shí)間關(guān)閉定時(shí)插座。 基本操作時(shí)序: 讀狀態(tài):輸入 : RS=L,RW=H,E=H 輸出: DO~D7=狀態(tài)字 寫(xiě)狀態(tài):輸入: RS=L,RW=L,D0~D7=指令碼 ,E=高脈沖 輸出:無(wú) 讀數(shù)據(jù):輸入: RS=H,RW=H,E=H 輸出: DO~D7=數(shù)據(jù) 寫(xiě)數(shù)據(jù):輸入: RS=H,RW=L,D0~D7=數(shù)據(jù) ,E=高脈沖 輸
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1