資源描述:
《附錄d 設(shè)計(jì)源程序》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、安徽工程科技學(xué)院畢業(yè)設(shè)計(jì)(論文)附錄D設(shè)計(jì)源程序DBUF0EQU30H;溫度符號/百位存儲單元DBUF1EQU31H;溫度十位存儲單元DBUF2EQU32H;溫度個位存儲單元DBUF3EQU33H;溫度十分位存儲單元DBUF4EQU34H;A/D轉(zhuǎn)換值存儲單元DBUF5EQU35H;溫度設(shè)定值百位存儲單元DBUF6EQU36H;溫度設(shè)定值十位存儲單元DBUF7EQU37H;溫度設(shè)定值個位存儲單元DBUF8EQU38H;溫度設(shè)定值十分位存儲單元DBUF9EQU39H;煙霧報(bào)警等級值存儲單元DBJ1BITP1
2、.0;燈光報(bào)警1(紅光)DBJ2BITP1.1;燈光報(bào)警2(黃光)SBJBITP1.2;聲音報(bào)警DFSBITP1.3;排氣扇排氣YWDJ4BITP1.4;煙霧等級4YWDJ3BITP1.5;煙霧等級3YWDJ2BITP1.6;煙霧等級2YWDJ1BITP1.7;煙霧等級1WDBZWBIT20H.1;溫度設(shè)置標(biāo)志位YWBZWBIT20H.2;煙霧設(shè)置標(biāo)志位ORG0000HLJMPMAINORG0003H;外部中斷0入口地址LJMPTINT0ORG0013H;外部中斷1入口地址LJMPTINT1ORG0100
3、H;程序首地址MIAN:NOP;主程序-13-安徽工程科技學(xué)院畢業(yè)設(shè)計(jì)(論文)LCALLDELAY300MS;延時(shí)300MSMOVSP,#60H;設(shè)置棧指針初時(shí)化MOVIP,#04H;置外部中斷1高優(yōu)先級SETBIT1;設(shè)置外部中斷后沿負(fù)跳變有效SETBIT0SETBEX0;外部中斷允許開啟SETBEX1SETBEA;開中斷CLRP2.2;復(fù)位8255ASETBP2.2CLRP2.2CLRSBJ;復(fù)位聲音燈光報(bào)警SETBDBJ1SETBDBJ2CLRYWDJ4;復(fù)位煙霧報(bào)警控制CLRYWDJ3CLRYWD
4、J2SETBYWDJ1MOVR4,#0AH;清除30H~39H單元中的內(nèi)容MOVR0,#30HCLEAR1:MOV@R0,#00HINCR0DJNZR4,CLEAR1;清顯示完?;進(jìn)入程序循環(huán)區(qū)WAIT:LCALLDISPLAY;調(diào)用顯示子程序LCALLADC0809;調(diào)用A/D轉(zhuǎn)換子程序LCALLBDBH;調(diào)用標(biāo)度變換子程序LCALLKEY;調(diào)用鍵盤設(shè)置子程序-13-安徽工程科技學(xué)院畢業(yè)設(shè)計(jì)(論文)LCALLWDBJ;調(diào)用溫度報(bào)警子程序LCALLYWBJ;調(diào)用煙霧報(bào)警子程序AJMPWAIT;A/D轉(zhuǎn)換子
5、程序,用于實(shí)現(xiàn)把傳感器采集到的模擬溫度信號轉(zhuǎn)換成對應(yīng)的數(shù)字電壓信號。ADC0809:MOVDPTR,#7FF8H;置模擬通道IN0地址START:SETBF0;置中斷標(biāo)志位MOVX@DPTR,A;啟動ADC0809轉(zhuǎn)換LOOP:JBF0,LOOP;等待轉(zhuǎn)換結(jié)束TINT0:MOVXA,@DPTR;讀當(dāng)前數(shù)據(jù)MOVDBUF4,A;保存當(dāng)前結(jié)果至DUBF4單元CLRF0;清中斷標(biāo)志位RETI;中斷返回;溫度值轉(zhuǎn)換子程序BDBH:MOVA,DBUF4;取溫度數(shù)據(jù)CJNZA,#46,YW2;判斷溫度的正負(fù),非0轉(zhuǎn)到
6、YW3LJMPYW3;為0則轉(zhuǎn)到Y(jié)W3YW2:MOVA,DBUF4;重新去溫度A/D轉(zhuǎn)換值CJNZA,#46,PD;溫度值與0比較;正溫度轉(zhuǎn)換子程序PD:JCYW4;小于0則轉(zhuǎn)到Y(jié)W4MOVA,DBUF4;大于0則計(jì)算其值MOVB,#2;判斷溫度是否為整數(shù)DIVABMOVR3,AMOVR4,BMOVA,R4JNZYW5;有小數(shù)則轉(zhuǎn)換到Y(jié)W5-13-安徽工程科技學(xué)院畢業(yè)設(shè)計(jì)(論文)SUBBA,#23;為整數(shù)則計(jì)算其值MOVB,#100DIVABMOVDBUF0,A;存百位數(shù)值MOVR5,BMOVA,R5MO
7、VB,#10DIVABMOVDBUF1,A;存十位數(shù)值MOVDBUF2,B;存?zhèn)€位數(shù)值MOVDBUF3,#00H;存十分位數(shù)值RET;返回YW5:SUBBA,#23;有小數(shù)的計(jì)算子程序MOVB,#100DIVABMOVDBUF0,A;存百位數(shù)據(jù)MOVR5,BMOVA,R5MOVB,#10DIVABMOVDBUF1,A;存十位數(shù)據(jù)MOVDBUF2,B;存?zhèn)€位數(shù)據(jù)MOVDBUF3,#05H;存十分位數(shù)據(jù)RET;返回;負(fù)溫度轉(zhuǎn)換子程序YW4:MOVA,DBUF4;重新取溫度數(shù)據(jù)MOVB,#2DIVABMOVR3
8、,A-13-安徽工程科技學(xué)院畢業(yè)設(shè)計(jì)(論文)MOVR4,BMOVA,R4JNZYW6;有小數(shù)則轉(zhuǎn)到Y(jié)W6MOVA,#23SUBBA,R3MOVB,#10DIVABMOVDBUF1,A;存溫度數(shù)據(jù)十位MOVDBUF2,B;存溫度數(shù)據(jù)個位MOVDBUF0,#2DH;存溫度數(shù)據(jù)符號位MOVDBUF3,#00H;存溫度數(shù)據(jù)十分位RET;返回YW6:MOVA,#23SUBBA,R3MOVB,#10DIVABMOVDBUF1,A;存溫度數(shù)