在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)控制的鐵道口報(bào)警

            基于單片機(jī)控制的鐵道口報(bào)警

            作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏

            BUF1 EQU 60H ;緩沖單元1
            BUF2 EQU 46H ;緩沖單元2
            SBF EQU 47H ;秒存儲(chǔ)單元
            MBF EQU 48H ;分存儲(chǔ)單元
            HBF EQU 49H ;時(shí)存儲(chǔ)單元
            TMCOUNT EQU 50H
            VMAX EQU 55H ;設(shè)定的最大壓力存儲(chǔ)單元
            VMIN EQU 56H ;設(shè)定的最小壓力存儲(chǔ)單元
            CCOUNT EQU 57H ;來車次數(shù)記錄單元

            本文引用地址:http://www.biyoush.com/article/201611/316469.htm

            ST BIT P3.5 ;傳感器啟動(dòng)信號(hào)線
            EOC BIT P3.4 ;傳感器轉(zhuǎn)化信號(hào)線
            OE BIT P3.3 ;傳感器輸出使能信號(hào)線
            SOUND BIT P3.2 ;揚(yáng)聲器


            ORG 0000H
            LJMP MAIN
            ORG 000BH
            LJMP INTM0 ;中斷0入口地址
            ORG 001BH
            LJMP INTM1 ;中斷1入口地址
            ORG 1000H

            MAIN:

            MOV TMOD,#11H
            MOV TH1,#3CH ;定時(shí)器1定時(shí)50ms
            MOV TL1,#0B0H
            MOV TH0,#3CH ;定時(shí)器0定時(shí)50ms
            MOV TL0,#0B0H
            SETB EA
            SETB ET1
            SETB ET0
            MOV P2,#00H
            MOV BUF2,#00H
            MOV BUF1,#00H
            MOV CCOUNT,#00H
            SETB P3.0
            CLR P3.1
            CLR P3.4
            CLR P3.3
            CLR P3.6
            CLR P3.7
            CLR PSW.5
            CLR PSW.1
            MOV VMAX,#180 ;對(duì)應(yīng)的顯示為3.6
            MOV VMIN,#101 ;對(duì)應(yīng)的現(xiàn)實(shí)為2

            ;程序開始部分
            START: LCALL INPUT_TIME ;首先調(diào)用時(shí)間輸入子程序

            NEXT1: LCALL KEY_SCAN ;鍵盤掃描以判斷下一次案件是時(shí)間重設(shè)還是確定按鍵
            CJNE A,#0FH,NEXT2
            JMP START
            NEXT2: CJNE A,#0EH, NEXT3 ;時(shí)間設(shè)定是否確定,如果按的是=則表示時(shí)間確定,同時(shí)要開始計(jì)時(shí)時(shí)間運(yùn)行。
            SETB TR1 ;啟動(dòng)定時(shí)器1開始計(jì)時(shí)
            LCALL ADC_START ;調(diào)用傳感器數(shù)據(jù)采集程序
            JMP $
            NEXT3: JMP NEXT1
            INPUT_TIME: ;時(shí)間輸入子程序
            LCALL KEY_SCAN
            MOV 40H,A
            LCALL KEY_SCAN
            MOV 41H,A
            LCALL KEY_SCAN
            MOV 42H,A
            LCALL KEY_SCAN
            MOV 43H,A ;輸入時(shí)和分時(shí)間,因?yàn)闀r(shí)和分都是2位數(shù)故要按鍵4次
            TIME_SAVE: ;時(shí)間保存部分
            MOV SBF,1
            MOV A,42H
            SWAP A
            ORL A,43H
            MOV MBF,A
            MOV A,40H
            SWAP A
            ORL A,41H
            MOV HBF,A ;輸入的時(shí)間要進(jìn)行數(shù)據(jù)整合然后放到對(duì)應(yīng)的存儲(chǔ)單元里

            MOV DPTR,#LEDSEG
            MOV TMCOUNT,#180
            TIME_SHOW: ;時(shí)間顯示部分,通過這部分可以看看所設(shè)的時(shí)間格式是否正確
            SETB P2.5 ;在時(shí)間顯示這部分總體思路時(shí)先選定位碼,然后在輸出段碼
            MOV A,#1 ;從而可做到時(shí)間顯示
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.5

            SETB P2.4
            MOV A,#0
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.4

            SETB P2.3
            MOV A,43H
            MOVC A,@A+DPTR
            XRL A,#80H
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.3

            SETB P2.2
            MOV A,42H
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.2

            SETB P2.1
            MOV A,41H
            MOVC A,@A+DPTR
            XRL A,#80H
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.1

            SETB P2.0
            MOV A,40H
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.0
            DJNZ TMCOUNT,TIME_SHOW
            RET

            ADC_START : ;傳感器數(shù)據(jù)采集部分,通過對(duì)外部的模擬量轉(zhuǎn)化為數(shù)字量,從而判斷外部
            CLR ST ;狀態(tài),
            SETB ST ;思路是這樣的。由于傳感器采用的是5v電源。所以量程是0~5v
            CLR ST ;由于傳感器的位數(shù)是8位所以采集的最大數(shù)值為255,所以一個(gè)單位對(duì)應(yīng)的
            HERE: SETB EOC ;模擬量位5/255即1/51.所以在這里設(shè)模擬量為3.6表示車來,模擬量為
            JNB EOC,HERE ;2.0表示車離開,總體思路就是這樣。
            SETB OE
            MOV P0,#0FFH
            MOV A,P0
            CLR OE
            MOV 51H,A ;采集的模擬值保存到51H這個(gè)單元里

            MOV A,51H ;將二進(jìn)制數(shù)值轉(zhuǎn)化為對(duì)應(yīng)量程的十進(jìn)制表示
            MOV B ,#51
            DIV AB
            MOV 52H, A
            MOV A, #5
            XCH A, B
            DIV AB
            MOV 53H, A
            MOV A, B
            MOV 54H, A
            CLR C
            ;下面進(jìn)行數(shù)值比較。當(dāng)顯示高于3.8時(shí)表示列車開來。
            ;當(dāng)顯示小于1.0且列車已來過即出現(xiàn)過數(shù)值大于3.8時(shí)表明列車已離開
            JNB PSW.5,BJMAX
            CLR C
            MOV A,51H
            SUBB A,VMIN
            JNC TIME_DELAY ;若大于最小值則跳到采集的數(shù)據(jù)顯示部分,如果小于則
            ;表明車已經(jīng)離開,這是進(jìn)行復(fù)原以等待下一輛車到來。

            CLR PSW.5
            MOV P2,#00H
            SETB P3.0
            CLR P3.1

            SETB PSW.1
            ; CLR TR0
            LJMP QUIT

            BJMAX: MOV A,51H ;與設(shè)定的最大值進(jìn)行比較
            SUBB A,VMAX
            JC SHOW_CJ ;若小于最大值則跳到數(shù)值顯示部分,若大于最大值,此時(shí)便顯示當(dāng)前時(shí)間和車來次數(shù)
            SETB PSW.5
            INC 57H
            SETB TR0
            CLR P3.0
            SETB P3.1
            SETB P3.6 ;使電動(dòng)機(jī)開始正向轉(zhuǎn)動(dòng)
            CLR P3.7
            TIME_DELAY:LCALL TIME_DISP ;不僅要顯示當(dāng)前時(shí)間此時(shí)還要報(bào)警和警告燈顯示即黃燈亮。
            LJMP QUIT
            SHOW_CJ: MOV DPTR,#LEDSEG
            SETBP2.2
            MOVA,54H
            MOVCA,@A+DPTR
            MOVP0,A
            LCALLDELAYDIS
            CLRP2.2

            SETBP2.1
            MOVA,53H
            MOVCA,@A+DPTR
            MOVP0,A
            LCALLDELAYDIS
            CLRP2.1

            SETBP2.0
            MOVA,52H
            MOVCA,@A+DPTR
            XRL A,#80H
            MOVP0,A
            LCALLDELAYDIS
            CLRP2.0
            QUIT: LJMP ADC_START

            RET

            TIME_DISP: ;車來時(shí)當(dāng)前時(shí)間顯示
            MOV A,SBF
            ANL A,#0FH
            MOV 45H,A
            MOV A,SBF
            SWAP A
            ANL A,#0FH
            MOV 44H,A

            MOV A,MBF
            ANL A,#0FH
            MOV 43H,A
            MOV A,MBF
            SWAP A
            ANL A,#0FH
            MOV 42H,A

            MOV A,HBF
            ANL A,#0FH
            MOV 41H,A
            MOV A,HBF
            SWAP A
            ANL A,#0FH
            MOV 40H,A

            MOV DPTR,#LEDSEG
            SETB P2.7
            MOV A,CCOUNT
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.7

            SETB P2.5
            MOV A,45H
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.5
            SETB P2.4
            MOV A,44H
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.4
            SETB P2.3
            MOV A,43H
            MOVC A,@A+DPTR
            XRL A,#80H
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.3
            SETB P2.2
            MOV A,42H
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.2
            SETB P2.1
            MOV A,41H
            MOVC A,@A+DPTR
            XRL A,#80H
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.1
            SETB P2.0
            MOV A,40H
            MOVC A,@A+DPTR
            MOV P0,A
            LCALL DELAYDIS
            CLR P2.0
            RET

            LEDSEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;0,1,2,3,4,5,6,7,8,9

            DELAYDIS:MOV R6,#4 ;延時(shí)程序1
            D1: MOV R7,#250
            DJNZR7,$
            DJNZR6,D1
            RET


            INTM1: MOV TH1,#3CH ;中斷1程序
            MOV TL1,#0B0H
            INC BUF2
            MOV A,BUF2
            CJNE A,#20,QUITINTM1 ;如果等于20則正好1秒到
            MOV BUF2,#00H
            MOV A,SBF
            ADD A,#1
            DA A
            MOV SBF,A
            CJNE A,#60H,QUITINTM1
            MOV SBF,#00H
            MOV A,MBF
            ADD A,#1
            DA A
            MOV MBF,A
            CJNE A,#60H,QUITINTM1
            MOV MBF,#00H
            MOV A,HBF
            ADD A,#1
            DA A
            MOV HBF,A
            CJNE A,#24H,QUITINTM1
            MOV HBF,#00H

            QUITINTM1:
            RETI

            INTM0: ;中斷0程序
            MOV TH0,#3CH ;定時(shí)器0定時(shí)50ms
            MOV TL0,#0B0H
            JB PSW.1 ,MOTOR
            CPL P3.2
            JMP ENDINTM0
            MOTOR: SETB P3.7
            CLR P3.6
            INC BUF1
            MOV A,BUF1
            CJNE A,#150,ENDINTM0 ;如果等于則正好1秒到
            MOV BUF1,#00H
            CLR P3.6
            CLR P3.7
            CLR PSW.1
            CLR TR0
            ENDINTM0:RETI
            KEY_SCAN:MOV R0,#0F7H ;鍵盤掃描程序
            MOV R1,#00H
            WC1: MOV A,R0
            MOV P1,A
            MOV A,P1
            MOV R2,A
            SETB C
            MOV R3,#04H
            WC2:RLC A
            JNC KEY
            WC3:INC R1
            DJNZ R3,WC2
            MOV A,R0
            SETB C
            RRC A
            MOV R0,A
            JC WC1
            LJMP KEY_SCAN
            KEY:LCALL DTENMS
            MOV A,P1
            XRL A,R2
            JNZ WC3
            WC4:MOV A,P1
            XRL A,R2
            JZ WC4
            MOV A,R1
            MOV DPTR,#TAB
            MOVC A,@A+DPTR
            RET
            DTENMS:MOV R6,#6
            DD1:MOV R7,#248
            DJNZ R7,$
            DJNZ R6,DD1
            RET
            TAB:DB 07H,08H,09H,09H,04H,05H,06H,06H,01H,02H,03H,03H,00H,00H,0EH,0FH ;對(duì)應(yīng)位置的數(shù)據(jù)
            END




            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉