版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 課程名稱_單片機(jī)原理與接口技術(shù) 題目名稱_家居安全監(jiān)視系統(tǒng) 學(xué)生學(xué)院 信息工程學(xué)院 專業(yè)班級 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 _ 2011 年 6 月 22 日目錄一、單片機(jī)課程設(shè)計(jì)任務(wù)書3二、家居監(jiān)視系統(tǒng)設(shè)計(jì)項(xiàng)目簡介5三、家居監(jiān)視系統(tǒng)功能描述6a、家居安全監(jiān)視系統(tǒng)基本介紹6b、家居安全監(jiān)視系統(tǒng)主要功能6c、家居安全監(jiān)視系統(tǒng)使用說明61、主機(jī)62、從機(jī)8d、家居安全監(jiān)視系統(tǒng)技術(shù)指標(biāo)81、主機(jī)82、從機(jī)9四、家居安全監(jiān)視系統(tǒng)電路原理圖9五、家居安全監(jiān)視系統(tǒng)程序框圖13六、家居安全監(jiān)視系統(tǒng)程序清單18a、主機(jī)程序清單18b、從機(jī)程序清單35七、收獲與體會44一、單片機(jī)課程設(shè)計(jì)任務(wù)書
2、(適合08級通信工程方向單片機(jī)課程設(shè)計(jì))一、 課程設(shè)計(jì)題目:單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)基于單片機(jī)的題目自擬二、 總體要求:本課程設(shè)計(jì)的題目機(jī)設(shè)計(jì)內(nèi)容自選,學(xué)生可以根據(jù)平時(shí)的觀察、了解單片機(jī)實(shí)際的應(yīng)用系統(tǒng),弄清其結(jié)構(gòu)和功能,結(jié)合單片機(jī)課程及其他相關(guān)課程的知識,充分發(fā)揮自身的想象力和創(chuàng)造力,自行選定設(shè)計(jì)項(xiàng)目,但總體應(yīng)達(dá)到以下要求:1、 用89s51cpu,12m時(shí)鐘,常規(guī)的上電和手動復(fù)位電路2、 包括3個以上的獨(dú)立式按鍵3、 至少2位led數(shù)碼顯示器及其接口4、 一路蜂鳴器輸出5、 至少有2路輸入信號,可以是模擬量或數(shù)字量三、 課程設(shè)計(jì)具體要求:選定好設(shè)計(jì)項(xiàng)目后,課程設(shè)計(jì)應(yīng)達(dá)到以下要求1、 編寫項(xiàng)目功能說
3、明書,確定應(yīng)用系統(tǒng)的功能和具體參數(shù)2、 設(shè)計(jì)電路原理圖3、 制作硬件4、 設(shè)計(jì)和調(diào)試程序5、 課程設(shè)計(jì)報(bào)告四、 課程設(shè)計(jì)報(bào)告內(nèi)容及要求1、 課程設(shè)計(jì)任務(wù)書2、 設(shè)計(jì)項(xiàng)目簡介3、 電路原理圖4、 系統(tǒng)功能描述5、 程序框圖6、 程序清單7、 收獲與體會五、 驗(yàn)收及評分標(biāo)準(zhǔn)1、 硬件制作20%2、 課程設(shè)計(jì)報(bào)告 60%3、 功能展示及答辯 20%六:參考題目:1、 基于單片機(jī)的智能電風(fēng)扇控制器2、 基于單片機(jī)的多功能洗衣機(jī)程序控制器3、 基于單片機(jī)的多功能燈光控制器4、 基于單片機(jī)的單片機(jī)多機(jī)通信系統(tǒng)5、 基于單片機(jī)的智能溫度控制系統(tǒng)6、 基于單片機(jī)的多功能數(shù)字電子鐘7、 基于單片機(jī)的多功能防盜報(bào)
4、警裝置二、家居監(jiān)視系統(tǒng)設(shè)計(jì)項(xiàng)目簡介隨著生活水平提高,人們的物質(zhì)財(cái)富越來越多,需要保護(hù)的財(cái)產(chǎn)也越來越多,對人身安全也越來越重視。使得人們對住所的安全性越來越重視,家居安防的重要性越來越大,市場對家居安防系統(tǒng)的需求增大。本家居安全監(jiān)視系統(tǒng)設(shè)計(jì)用于對家庭各個入口的監(jiān)視,使得屋主時(shí)刻掌握屋內(nèi)的安全狀態(tài)和遭遇入侵的位置,大大提高了家庭的安全性。三、家居監(jiān)視系統(tǒng)功能描述a、 家居安全監(jiān)視系統(tǒng)簡介家居安全監(jiān)視系統(tǒng)是基于89s52單片機(jī)的家居安防系統(tǒng)。該系統(tǒng)包含了三大模塊:檢測模塊、顯示模塊、控制模塊。檢測模塊僅與從機(jī)連接,由3個紅外接近開關(guān)和一個金屬接近開關(guān)組成,紅外接近開關(guān)最大檢測范圍為80cm,用于房間
5、入口物體進(jìn)出的檢測,金屬接近開關(guān)最大檢測范圍為4mm,用于大門開關(guān)檢測。顯示模塊由lcd1602(用于主機(jī))和數(shù)碼管、led燈(用于從機(jī))組成??刂颇K由輕觸開關(guān)組成,用于調(diào)整各系統(tǒng)參數(shù)。b、家居安全監(jiān)視系統(tǒng)主要功能分別給主機(jī)、從機(jī)上電后,可分別對主機(jī)、從機(jī)的時(shí)間進(jìn)行調(diào)整,其中主機(jī)嵌入了萬年歷功能,便于用戶日常生活中對時(shí)間、日期的把握和當(dāng)遇到入侵事件時(shí),對發(fā)生的時(shí)刻的掌握。從機(jī)僅有時(shí)分顯示,只用于開關(guān)監(jiān)視系統(tǒng)的判斷。將主機(jī)、從機(jī)時(shí)間調(diào)整正確后,用戶可在主機(jī)對監(jiān)視系統(tǒng)進(jìn)行監(jiān)視時(shí)間段設(shè)置和監(jiān)視系統(tǒng)總開關(guān)設(shè)置(主機(jī)同時(shí)自動將設(shè)置好的參數(shù)發(fā)送至從機(jī),設(shè)置完畢后,只要系統(tǒng)不斷電便可持續(xù)正常工作)。當(dāng)進(jìn)入
6、系統(tǒng)監(jiān)視時(shí)間段后,若監(jiān)視系統(tǒng)總開關(guān)為1(即打開),監(jiān)視系統(tǒng)開始工作,從機(jī)進(jìn)入監(jiān)視狀態(tài),處理傳感器返回?cái)?shù)據(jù),當(dāng)檢測到大門被打開或者小房間有物體進(jìn)出后,從機(jī)拉響警報(bào)、打開照明燈并顯示call 110警告入侵者,同時(shí)不斷向主機(jī)發(fā)送入侵信息,主機(jī)拉響警報(bào)并在屏幕顯示入侵位置。若用戶判定警報(bào)可解除,可在主機(jī)關(guān)閉監(jiān)視系統(tǒng)開關(guān)(將g清零),監(jiān)視系統(tǒng)關(guān)閉,警報(bào)消除。若要重新打開監(jiān)視功能,將監(jiān)視系統(tǒng)總開關(guān)重新打開即可(本系統(tǒng)也可用于家用保險(xiǎn)柜安全監(jiān)視:三個紅外接近開關(guān)安裝在保險(xiǎn)柜的三個上左右三個側(cè)面,金屬接近開關(guān)安裝于保險(xiǎn)柜柜門)。c、 家居安全監(jiān)視系統(tǒng)使用說明1、主機(jī)主機(jī)用lcd1602液晶顯示屏顯示,是用戶
7、操作主要平臺。液晶顯示器顯示內(nèi)容布局如下圖所示:當(dāng)用戶按下k1鍵時(shí)系統(tǒng)進(jìn)入模式1調(diào)秒模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式2調(diào)分模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式3調(diào)時(shí)模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式4調(diào)日模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式5調(diào)月模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式6調(diào)年模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式7監(jiān)視系統(tǒng)開啟時(shí)間設(shè)置模式。k2鍵用于增加,k3鍵用于
8、減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式8監(jiān)視系統(tǒng)關(guān)閉時(shí)間設(shè)置模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式9監(jiān)視系統(tǒng)總開關(guān)設(shè)置模式。k2鍵用于置一即開啟總開關(guān),k3鍵用于清零即關(guān)閉總開關(guān)。(發(fā)現(xiàn)入侵后,大門和房間的標(biāo)志消失)。當(dāng)用戶再次按下k1鍵時(shí),系統(tǒng)恢復(fù)正常狀態(tài)。此時(shí)k2、k3鍵無效。2、從機(jī)當(dāng)從機(jī)處于正常狀態(tài)時(shí),數(shù)碼管顯示布局如下圖所示:當(dāng)用戶按下k1鍵時(shí)系統(tǒng)進(jìn)入模式1調(diào)分模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí)系統(tǒng)進(jìn)入模式2調(diào)時(shí)模式。k2鍵用于增加,k3鍵用于減少。當(dāng)用戶再次按下k1鍵時(shí), 系統(tǒng)恢復(fù)正常狀態(tài)。此時(shí)k2、k3鍵無效。當(dāng)監(jiān)視系
9、統(tǒng)總開關(guān)處于打開狀態(tài)時(shí),led6發(fā)光。led1,2,3,4隨傳感器實(shí)時(shí)數(shù)據(jù)亮滅。當(dāng)監(jiān)視系統(tǒng)處于監(jiān)視狀態(tài)發(fā)現(xiàn)入侵后,數(shù)碼管顯示call 110。d、家居安全監(jiān)視系統(tǒng)技術(shù)指標(biāo) 1、主機(jī)輸入電壓:5v12v消耗電流 dc20ma工作環(huán)境溫度:-20+70 2、從機(jī)輸入電壓:5v12v消耗電流 dc80ma響應(yīng)時(shí)間2ms工作環(huán)境溫度:-20+55標(biāo)準(zhǔn)檢測物體:太陽光10000lx以下 白熾燈3000lx以下(紅外接近開關(guān))指向角:15,有效距離3-80cm可調(diào)(紅外接近開關(guān))檢測物體:透明或不透明體(紅外接近開關(guān))、鐵、鈷、鎳等物質(zhì)(金屬接近開關(guān))檢測距離:04mm(金屬接近開關(guān)) 四、家居安全監(jiān)視系
10、統(tǒng)電路原理圖(如后所示)五、家居安全監(jiān)視系統(tǒng)程序框圖a、主機(jī)程序運(yùn)行流程圖主機(jī)上電后進(jìn)入正常工作狀態(tài),用戶可通過k1進(jìn)行調(diào)整模式選擇,選擇完模式后,使用k2、k3進(jìn)行對當(dāng)前模式的參數(shù)進(jìn)行調(diào)整。從而實(shí)現(xiàn)萬年歷的修改、對監(jiān)視系統(tǒng)開關(guān)的控制。在模式調(diào)整或正常顯示狀態(tài)情況下,主機(jī)在后臺不斷發(fā)送監(jiān)視系統(tǒng)開關(guān)數(shù)據(jù)到從機(jī),和接收從從機(jī)發(fā)送過來的傳感器實(shí)時(shí)檢測數(shù)據(jù)并進(jìn)行進(jìn)一步處理。b、從機(jī)程序運(yùn)行流程圖從機(jī)上電后進(jìn)入正常工作狀態(tài),用戶可通過k1進(jìn)行調(diào)整模式選擇,選擇完模式后,使用k2、k3進(jìn)行對當(dāng)前模式的參數(shù)進(jìn)行調(diào)整。(從機(jī)僅提供小時(shí)和分鐘模式調(diào)整)在模式調(diào)整或正常顯示狀態(tài)情況下,從機(jī)不斷發(fā)送傳感器實(shí)時(shí)檢測數(shù)
11、據(jù)到主機(jī),并不斷接收從主機(jī)發(fā)送過來的監(jiān)視系統(tǒng)開關(guān)狀態(tài)數(shù)據(jù),并對接收到的數(shù)據(jù)進(jìn)行處理從而配合對傳感器返回?cái)?shù)據(jù)處理。c、監(jiān)視系統(tǒng)工作流程圖主機(jī)每秒發(fā)送一次監(jiān)視系統(tǒng)總開關(guān)狀態(tài)和監(jiān)視系統(tǒng)開關(guān)時(shí)間至從機(jī),發(fā)送前先判斷4dh為0還是1,當(dāng)4dh的數(shù)據(jù)為0時(shí),將time1的數(shù)據(jù)放入發(fā)送數(shù)據(jù)幀的低5位,將key放至第6位,第7位清零。當(dāng)4dh為1時(shí),將time2的數(shù)據(jù)放入數(shù)據(jù)幀低5位,將key放至第6位,第7位置一。從機(jī)接收到數(shù)據(jù)后,先判斷接收到的數(shù)據(jù)幀第7位為0還是1,決定將數(shù)據(jù)幀的低5位送至time1還是time2,同時(shí)取出數(shù)據(jù)幀中的第6位存入key。從機(jī)同樣每秒發(fā)送一次傳感器數(shù)據(jù)至主機(jī),僅占用數(shù)據(jù)幀的高
12、4位,分別為大門的金屬接近開關(guān)和房間1,2,3的紅外接近開關(guān)實(shí)時(shí)數(shù)據(jù)。d、 傳感器工作流程圖傳感器沒檢測到大門開啟或物體靠近時(shí),傳感器輸出高電平,檢測到后輸出低電平。紅外接近開關(guān)提供檢測距離可調(diào)功能,可調(diào)整范圍為380cm,金屬接近開關(guān)檢測范圍為04mm。e、萬年歷程序框圖調(diào)整模式下對萬年歷的調(diào)整情況類似于本框圖,故不再臃述。六、家居安全監(jiān)視系統(tǒng)程序清單a、主機(jī)程序清單如下:warn equ 2fh ;傳感器數(shù)據(jù)time2 equ 7ch ;監(jiān)視系統(tǒng)關(guān)閉時(shí)間time1 equ 7dh ;監(jiān)視系統(tǒng)開啟時(shí)間count0 equ 7fhcount1 equ 7ehsec equ 30hmin equ
13、 31hhou equ 32hday equ 33hmon equ 34hyeal equ 35h /年份低8位,bcd碼表示個位,十位yeah equ 36hleap bit f0 ;閏年標(biāo)志位key bit 1fh ;監(jiān)視系統(tǒng)總開關(guān)rs bit p2.5 ;lcd 數(shù)據(jù)/命令選擇端(h/l)rw bit p2.6 ;lcd讀/寫選擇端(h/l)ep bit p2.7 ;lcd 使能控制mode_reg equ 6fh ;模式寄存器mode bit p3.2up bit p3.3down bit p3.4org 0000hljmp mainorg 000bhljmp t_0org 0023h
14、ljmp sp_intorg 0030h;主程序main: mov scon,#11010000b ;采用方式三,接收允許 mov pcon,#80h ;波特率加倍 mov tmod,#00100010b /初始化定時(shí)器,模式2,定時(shí)200us mov th0,#56 mov tl0,#56 mov th1,#243 /設(shè)置波特率4808 mov tl1,#243 mov ie,#10010010b /開總中斷,串行中斷和定時(shí)器0中斷 mov ip,#00000010b/定時(shí)器中斷優(yōu)先級最高 mov count0,#25 mov count1,#200 mov sec,#45 mov min,
15、#0 mov hou,#0 mov day,#22 mov mon,#6 mov yeal,#11h mov yeah,#20h mov p2,#0ffh ;關(guān)閉數(shù)碼管顯示 mov p0,#0 ;對p0清零 mov warn,#11110000b ;對傳感器狀態(tài)賦初值,為安全狀態(tài) mov time1,#18 mov time2,#23 clr 4dh ;用于判斷傳送time1還是time2數(shù)據(jù) setb tr0;開定時(shí)器0中斷 setb tr1;開定時(shí)1中斷 ;lcd初始化; mov p0,#00000001b/清屏,光標(biāo)復(fù)位 lcall enable;寫指令 mov p0,#00111000
16、b/設(shè)置lcd 為16x2 顯示,5x7 點(diǎn)陣,八位數(shù)據(jù)接口 lcall enable mov p0,#00001100b/設(shè)置lcd 開顯示及光標(biāo)形式(光標(biāo)不閃爍,不顯示-) lcall enable mov p0,#00000110b /lcd 顯示光標(biāo)移動設(shè)置(光標(biāo)地址指針加1,整屏顯示不移動) lcall enable mov dptr,#table0/將table0地址賦給dptr寄存器 mov mode_reg,#0/將模式寄存器清零,即初始化狀態(tài)為正常顯示,不能進(jìn)行調(diào)整工作;主程序;wait: lcall key_scan lcall disp ljmp waitsend: ;發(fā)
17、送數(shù)據(jù) jnb 4dh,snext ;判斷當(dāng)前應(yīng)該發(fā)time1還是time2數(shù)據(jù) mov a,time1 ljmp snext1snext:mov a,time2 add a,#10000000bsnext1:jb key,knext ;將key即總開關(guān)狀態(tài)標(biāo)志位加入到發(fā)送數(shù)據(jù)的第6位 ljmp knext0knext: add a,#01000000bknext0:mov sbuf,a;發(fā)送sloop:jbc ti,sexit;判斷是否發(fā)送完畢 sjmp sloopsexit: ret;鍵盤掃描;key_scan:jnb mode,go_mode jnb up,go_up jnb down,
18、 go_down0 retgo_mode:inc mode_reg mov a,mode_regcjne a,#10,go_mode1mov mode_reg,#0go_mode1:lcall delay30ms jnb mode,go_mode1 jnb up,go_up jnb down,go_down0 retgo_down0:ljmp go_down;增;go_up:cjne a,#0,go_up1 retgo_up1:mov a,mode_reg xrl a,#1 jz go_up_sec0 mov a,mode_reg xrl a,#2 jz go_up_min0 mov a,mo
19、de_reg xrl a,#3 jz go_up_hou0 mov a,mode_reg xrl a,#4 jz go_up_day0 mov a,mode_reg xrl a,#5 jz go_up_mon0 mov a,mode_reg xrl a,#6 jz go_up_yea0 mov a,mode_reg xrl a,#7 jz go_up_time0 mov a,mode_reg xrl a,#8 jz go_up_time2 mov a,mode_reg xrl a,#9 jz go_up_key0 retgo_up_min0:ljmp go_up_mingo_up_sec0:l
20、jmp go_up_secgo_up_hou0:ljmp go_up_hougo_up_day0:ljmp go_up_daygo_up_mon0:ljmp go_up_mongo_up_yea0:ljmp go_up_yeago_up_time0:ljmp go_up_timego_up_time2:ljmp go_up_time3go_up_key0:ljmp go_up_key;調(diào)整報(bào)警電路開關(guān);go_up_key:setb key;監(jiān)視器總開關(guān)置一,即打開總開關(guān)go_up_key1:lcall delay30ms jnb up,go_up_key1 ret;調(diào)整開啟報(bào)警檢測電路時(shí)間go
21、_up_time:inc time1 mov a,time1cjne a,#24,go_up_time1mov time1,#0go_up_time1:lcall delay30ms jnb up,go_up_time1 ret ;調(diào)整關(guān)閉報(bào)警檢測電路時(shí)間go_up_time3:inc time2 mov a,time2cjne a,#24,go_up_time4mov time2,#0go_up_time4:lcall delay30ms jnb up,go_up_time4 ret ;調(diào)整日數(shù);go_up_day:inc day mov a,mon;判斷當(dāng)前月 cjne a,#2,no20
22、 ;是否為2月 lcall leapyear mov c,leap jc leapmon0 /是二月則先判斷是否是閏年 mov a,day ;平年2月處理 cjne a,#29,go_up_day1 mov day,#1 lcall go_up_mongo_up_day1:lcall delay30ms jnb up,go_up_day1 retleapmon0:mov a,day /閏年二月的處理,若到達(dá)29號,則回到1號 cjne a,#30,go_up_day2 mov day,#1 lcall go_up_mongo_up_day2:lcall delay30ms jnb up,go_
23、up_day2 retno20: mov a,mon /不是二月,判斷其是否是小月 xrl a,#4 jz litmon0 mov a,mon xrl a,#6 jz litmon0 mov a,mon xrl a,#9 jz litmon0 mov a,mon xrl a,#11 jz litmon0 mov a,day /是大月 cjne a,#32,go_up_day3 mov day,#1 lcall go_up_mon mov a,mongo_up_day3:lcall delay30ms jnb up,go_up_day3 retlitmon0: mov a,day /小月的處理,
24、若到達(dá)30號,則回到1號 cjne a,#31,go_up_day4 mov day,#1 lcall go_up_mongo_up_day4:lcall delay30ms jnb up,go_up_day4 ret;調(diào)整年份;年份用bcd碼存儲go_up_yea:inc yeal/年份加一 mov a,yeal anl a,#0fh /判斷加一后,yeal的低4位bcd碼是否為10 cjne a,#10,go_up_yea1 /未滿10直接跳出 mov a,yeal /滿10 后,yeal高4位bcd碼加一 anl a,#0f0h add a,#00010000b/低4位清零 mov ye
25、al,a cjne a,#10100000b,go_up_yea1 /判斷yeal高4位是否滿10 mov yeal,#0 inc yeah/yeah加一,余下處理同yeal mov a,yeah anl a,#0fh cjne a,#10,go_up_yea1 mov a,yeah anl a,#0f0h add a,#00010000b mov yeah,a cjne a,#10100000b,go_up_yea1 mov yeah,#0 go_up_yea1:lcall delay30ms jnb up,go_up_mon1 ret;調(diào)整月份;go_up_mon:inc mon mov
26、a,moncjne a,#13,go_up_mon1mov mon,#1lcall go_up_yeago_up_mon1:lcall delay30ms jnb up,go_up_mon1 ret;調(diào)整小時(shí);go_up_hou:inc hou mov a,houcjne a,#24,go_up_hou1mov hou,#0lcall go_up_daygo_up_hou1:lcall delay30ms jnb up,go_up_hou1 ret;調(diào)整分鐘;go_up_min:inc min mov a,mincjne a,#60,go_up_min1mov min,#0lcall go_u
27、p_hougo_up_min1:lcall delay30ms jnb up,go_up_min1 ret;調(diào)整秒鐘;go_up_sec:inc sec mov a,seccjne a,#60,go_up_sec1mov sec,#0lcall go_up_mingo_up_sec1:lcall delay30ms jnb up,go_up_sec1 retdelay30ms:mov r6,#50d2: mov r5,#100 djnz r5,$ djnz r6,d2 ret;減;go_down:cjne a,#0,go_down1 retgo_down1:mov a,mode_reg xrl
28、 a,#1 jz go_down_sec0 mov a,mode_reg xrl a,#2 jz go_down_min0 mov a,mode_reg xrl a,#3 jz go_down_hou0 mov a,mode_reg xrl a,#4 jz go_down_day0 mov a,mode_reg xrl a,#5 jz go_down_mon0 mov a,mode_reg xrl a,#6 jz go_down_yea0 mov a,mode_reg xrl a,#7 jz go_down_time0 mov a,mode_reg xrl a,#8 jz go_down_ti
29、me2 mov a,mode_reg xrl a,#9 jz go_down_key0 retgo_down_min0:ljmp go_down_mingo_down_sec0:ljmp go_down_secgo_down_hou0:ljmp go_down_hougo_down_day0:ljmp go_down_daygo_down_mon0:ljmp go_down_mongo_down_yea0:ljmp go_down_yeago_down_time0:ljmp go_down_timego_down_time2:ljmp go_down_time3go_down_key0:ljm
30、p go_down_key;調(diào)整監(jiān)視系統(tǒng)電路開關(guān):清零。關(guān)總監(jiān)視系統(tǒng)開關(guān)go_down_key:clr keygo_down_key1: lcall delay30ms jnb down,go_down_time1 ret;調(diào)整開啟監(jiān)視系統(tǒng)時(shí)間go_down_time:dec time1 mov a,time1cjne a,#-1,go_down_time1mov time1,#23go_down_time1:lcall delay30ms jnb down,go_down_time1 ret ;調(diào)整關(guān)閉監(jiān)視系統(tǒng)時(shí)間go_down_time3:dec time2 mov a,time2cjne
31、 a,#-1,go_down_time4mov time2,#23go_down_time4:lcall delay30ms jnb down,go_down_time4 ret ;調(diào)整日數(shù);go_down_day: dec day mov a,mon dec a /判斷上一個月是否為2月 cjne a,#2,no21 lcall leapyear mov c,leap jc leapmon1 /是二月則先判斷是否是閏年 mov a,day cjne a,#0,go_down_day1 mov day,#28 lcall go_down_mongo_down_day1:lcall delay3
32、0ms jnb down,go_down_day1 retleapmon1:mov a,day /閏年二月的處理,若到達(dá)29號,則回到1號 cjne a,#0,go_down_day2 mov day,#29 lcall go_down_mongo_down_day2:lcall delay30ms jnb down,go_down_day2 retno21: mov a,mon dec a /不是二月則判斷大小月 xrl a,#4 jz litmon1 mov a,mon dec a xrl a,#6 jz litmon1 mov a,mon dec a xrl a,#9 jz litmon
33、1 mov a,mon dec a xrl a,#11 jz litmon1 /判斷是否是小月 mov a,day /是大月 cjne a,#0,go_down_day3 mov day,#31 lcall go_down_mongo_down_day3:lcall delay30ms jnb down,go_down_day3 retlitmon1: mov a,day /小月的處理,若到達(dá)30號,則回到1號 cjne a,#0,go_down_day4 mov day,#30 lcall go_down_mongo_down_day4:lcall delay30ms jnb down,go
34、_down_day4 ret;調(diào)整年份;go_down_yea: mov a,yeal cjne a,#0,yean1 /判斷當(dāng)前年是否能被100整除 mov yeal,#99h /如能被100整除,則將調(diào)整后的年份兩位賦99 mov a,yeah cjne a,#0,yean2 /判斷當(dāng)前年的bcd碼前兩位是否為0 mov yeah,#99h /如為0,則調(diào)整后年份的前兩位賦99 ljmp go_down_yea1yean1:mov a,yeal /如不能被100整除,則判斷yeal低4位是否為0 anl a,#0fh cjne a,#0,yean11 clr c /yeal低四位為0 時(shí),
35、高四位減一,低四位賦9,即yeal減去6 mov a,yeal subb a,#6 mov yeal,ayean11:dec yeal /低四位不為0,則進(jìn)行正常減一操作 ljmp go_down_yea1yean2:mov a,yeah /同yeal處理 anl a,#0fh cjne a,#0,yean21 clr c mov a,yeah subb a,#6 mov yeah,ayean21:dec yeahgo_down_yea1:lcall delay30ms jnb down,go_down_mon1 ret;調(diào)整月份;go_down_mon:dec mon mov a,moncj
36、ne a,#0,go_down_mon1mov mon,#12lcall go_down_yeago_down_mon1:lcall delay30ms jnb down,go_down_mon1 ret;調(diào)整小時(shí);go_down_hou:dec hou mov a,hou cjne a,#-1,go_down_hou1 mov hou,#23lcall go_down_daygo_down_hou1:lcall delay30ms jnb down,go_down_hou1 ret;調(diào)整分鐘;go_down_min:dec min mov a,min cjne a,#-1,go_down_m
37、in1 mov min,#59lcall go_down_hougo_down_min1:lcall delay30ms jnb down,go_down_min1 ret;調(diào)整秒鐘;go_down_sec:dec sec mov a,sec cjne a,#-1,go_down_sec1 mov sec,#59lcall go_down_mingo_down_sec1:lcall delay30ms jnb down,go_down_sec1 ret;定時(shí)器0中斷t_0: push acc push psw djnz count0,exti0/定時(shí)1s mov count0,#20 djnz
38、 count1,exti0 mov count1,#250 cpl 4dh lcall send /發(fā)送time1、time2數(shù)據(jù) jnb key,next000 mov a,warn /判斷warn是否正常,發(fā)現(xiàn)入侵時(shí),將p1.2取反,蜂鳴器按0.5hz的頻率發(fā)出響聲 cjne a,#11110000b,next0 ljmp next00next0:cpl p1.2 ljmp next000next00:setb p1.2next000:inc sec /秒 mov a,sec cjne a,#60,exti0 mov sec,#0 inc min /分 mov a,min cjne a,#
39、60,exti0 mov min,#0 inc hou /時(shí) mov a,hou cjne a,#24,exti0 mov hou,#0 inc day /日 mov a,mon cjne a,#2,no2 /判斷是否是二月 lcall leapyear /是二月則先判斷是否是閏年 mov c,leap jc leapmon /調(diào)至閏年二月處理子程序 mov a,day cjne a,#29,exti0 /平年二月處理 inc mon mov day,#1 exti0:pop psw pop acc reti no2: mov a,mon /不是二月 xrl a,#4 jz litmon mo
40、v a,mon xrl a,#6 jz litmon mov a,mon xrl a,#9 jz litmon mov a,mon xrl a,#11 jz litmon /判斷是否是小月 mov a,day /是大月 cjne a,#32,exti0 mov day,#1 mov a,mon inc mon cjne a,#12,exti0 /判斷該大月是否是12月 mov mon,#1 inc yeal/年份加一 mov a,yeal anl a,#0fh cjne a,#10,exti0 mov a,yeal anl a,#0f0h add a,#00010000b mov yeal,a cjne a,#10100000b,exti0 mov yeal,#0 inc yeah/年份高位加一 mov a,yeah anl a,#0f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年粵教滬科版必修1英語上冊階段測試試卷含答案
- 2025年湘師大新版九年級歷史上冊月考試卷
- 2025年粵人版高一地理下冊月考試卷
- 2025年滬教新版高三歷史上冊階段測試試卷
- 2025年冀少新版九年級地理下冊月考試卷
- 二零二五年度農(nóng)戶農(nóng)村電商金融服務(wù)合同4篇
- 乳制品2024年新型包裝材料采購合同3篇
- 擔(dān)保合同權(quán)利義務(wù)協(xié)議書(2篇)
- 2025年度木材交易市場入駐經(jīng)營合同3篇
- 2025版美容養(yǎng)生中心使用權(quán)轉(zhuǎn)讓合同4篇
- 2023-2024學(xué)年度人教版一年級語文上冊寒假作業(yè)
- 2024醫(yī)療銷售年度計(jì)劃
- 人教版語文1-6年級古詩詞
- 上學(xué)期高二期末語文試卷(含答案)
- 高二物理題庫及答案
- 職業(yè)發(fā)展展示園林
- 七年級下冊英語單詞默寫表直接打印
- 2024版醫(yī)療安全不良事件培訓(xùn)講稿
- 中學(xué)英語教學(xué)設(shè)計(jì)PPT完整全套教學(xué)課件
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)項(xiàng)目五 運(yùn)營效果監(jiān)測
- 比較思想政治教育學(xué)
評論
0/150
提交評論