軟件工程程序清單_第1頁(yè)
軟件工程程序清單_第2頁(yè)
軟件工程程序清單_第3頁(yè)
軟件工程程序清單_第4頁(yè)
軟件工程程序清單_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

這是一個(gè)頻率計(jì)的主控程序,單片機(jī)晶振頻率11.0592MHz。

被測(cè)信號(hào)為T(mén)TL電衣的矩形波,信號(hào)頻率小于500kHz,從T0輸入。

顯示采用8個(gè)LED數(shù)碼管,動(dòng)態(tài)驅(qū)動(dòng)方式。

閘門(mén)時(shí)間為1秒,測(cè)量間隔為5秒。閘門(mén)LED燈用PL0驅(qū)動(dòng),低電平點(diǎn)亮。

C0M8255EQU8003H

PA_8255EQU8000H

PB.8255EQU8001H

PC_8255EQU8002H

OVI-REQU21H;T0計(jì)數(shù)溢出次數(shù)計(jì)次單元

BUFFEREQU22H;顯示緩沖區(qū)占用4個(gè)字節(jié),22H-25H

BINEQU26H;二進(jìn)制數(shù)的字節(jié)數(shù)存放單元

BCDEQU27H;BCD數(shù)的個(gè)位地址

BINLEQU28H;二進(jìn)制數(shù)最低字節(jié)存放地址

TESTBIT00H;測(cè)量標(biāo)志

TESTENDBIT01H;測(cè)量結(jié)束標(biāo)志

SEC_5BIT0211;5秒到標(biāo)志

ORG0

LJMPSTART

ORGOBH

INCOVER;TO溢出次數(shù)加1

RETI

ORG1BH

LJMPT1S

ORG30H

START:MOVSP,#6011

MOVDPTR,#C0M82ci5;指向8255命令口

MOVA,#8011;PA、PB、PC設(shè)為基本輸出模式

MOVX@DPTR,A

MOVTM0D,#15H;設(shè)口為定時(shí)器,T0為計(jì)數(shù)器

MOVTHO,#0

MOVTLO,#0

MOVTill,#4cH;T1定時(shí)50m,晶振頻率11.0592MHz

MOVTL1,#OOH

SETBPT1;T1為高級(jí)中斷

SETBETO;允許T0中斷

SETBET1;允許T1中斷

SETBTRI;啟動(dòng)T1計(jì)數(shù)

SETBEA;開(kāi)中斷

MOVOV1'R,#O;溢出計(jì)次單元清零

MOVBUFFER,#。;顯緩區(qū)清零

MOVBUFFER+1,#O

MOVBUFFER+2,#0

MOVBUFFER+3,#0

MOVOAH,#20;1|XR2,1秒中斷計(jì)次

MOVOBH,#100;1區(qū)R3,5秒中斷計(jì)次

CLRTEST

CLRTESTEND

CLRSEC_5

MAIN:JBSEC_5,LOOP1;5秒到則開(kāi)始測(cè)量

LCALLDISP;顯示

SJMPMAIN

L00P1:CLRSEC_5

SETBTEST

CLRP1.0;點(diǎn)亮閘門(mén)燈

L00P2:JBTESTEND,L00P3;測(cè)量結(jié)束則去計(jì)算

LCALLDISP

SJMPL00P2

L00P3:MOVR4,#0;取溢出次數(shù)乘以iOOOOH的結(jié)果

MOVR5,OVER

MOVR6,#()

MOVR7,#0

MOVR3,THO取T0的計(jì)數(shù)值

MOVA,TLO

LCALLMADD;4字節(jié)+2字節(jié)

MOV36H,R74字節(jié)結(jié)果轉(zhuǎn)換成6字節(jié)BCD碼

MOV37H,R6

MOV38H,R5

MOV39H,R4

MOVBINL,??36H指向待轉(zhuǎn)換數(shù)據(jù)低位

MOVBIN,#4待轉(zhuǎn)換數(shù)據(jù)為4字節(jié)

MOVBCD,#3011指向轉(zhuǎn)換結(jié)果的低位地址

LCALLHTOB;將4字節(jié)16進(jìn)制數(shù)轉(zhuǎn)成6字節(jié)BCD碼

MOVBUFFER,33H轉(zhuǎn)換的BCD碼送顯

MOVBUFFER+1,32H;實(shí)際只有4個(gè)字節(jié)有效

MOVBUFFER+2,31H

MOVBUFFER+3,30H

MOVOVER,#0測(cè)量數(shù)據(jù)相關(guān)單元清零,為下次測(cè)量做初始化

MOVTHO,#0

MOVTLO,#0

CLRTESTEND

SJMPMAIN

;-------主程序結(jié)束--

t

9

;T1中斷服務(wù)程序

T1S:MOVTL1,#OOH;送50ms初值

MOVTH1,#4cH

PUSHPSW

SETBRSO;選擇1區(qū)工作寄存器

JBTEST,TT1

DJNZR3,T1EXIT

MOVR3,#100;5秒中斷計(jì)數(shù)值

SETBSEC_5;置5秒到標(biāo)志

SETBTRO;啟動(dòng)TO計(jì)數(shù)

SJMPT1EXIT

TT1:DJNZR2,T1EXIT;1秒閘門(mén)時(shí)間未到則返回

CLRTRO;停止TO計(jì)數(shù)

SETBTESTEND;置測(cè)量結(jié)束標(biāo)志

CLRTEST;清測(cè)量標(biāo)志

MOVR2,#20;送1秒中斷計(jì)數(shù)值

SETBP1.0;熄滅閘門(mén)燈

T1EXIT:POPPSW

RETI

動(dòng)態(tài)顯示子程序

使用寄存器:RO,R2,R3,A,DPTR

DISP:MOVDPTR,?PB_8255;消隱數(shù)碼管,實(shí)后實(shí)驗(yàn)箱上不需要

MOVA,#OFFH;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVX@I)PTR,A;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVRO,#BUFFER+3;指向顯緩區(qū)最后一個(gè)字節(jié)

MOVR3,#4;顯示字節(jié)數(shù)為4字節(jié)

MOVR2,#OFEH;位碼初值,點(diǎn)亮最右邊的數(shù)碼管

LOOP:MOVA,@R0

ANLA,#OFH;取出低4位

MOVDPTR,STAB

MOVCA,?A+DPTR

MOVDPTR,SPA8255

MOVX@DPTR,A;段碼送8255的A口

MOVA,R2

INCDPTR;指向8255的B口

MOVX?DPTR,A;位碼送8255的B口

RLA;位碼左移

MOVR2.A;存位碼

LCALLDELAY2MS;延時(shí)2ms

MOVDPTR,#PIJ_8255;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVA,#OFFH;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVX?DPTR,A;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVA,@R0

ANLA,itOFOH;取出高4位

SWAPA

MOVDPTR,#TAB

MOVCA,?A+DPTR

MOVDPTR,#PA_8255

MOVX@DPTR,A;段碼送8255的A口

MOVA,R2

INCDPTR;指向8255的B口

MOVX@DPTR,A;位碼送8255的B口

RLA;位碼左移

MOVR2,A;存位碼

LCALLDELAY2Ms;延時(shí)2nls

MOVDPTR,#PB_8255;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVA,#OFFH;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

MOVX@DPTR,A;消隱數(shù)碼管,實(shí)際實(shí)驗(yàn)箱上不需要

DECR0

DJNZR3,LOOP

MOVA,

MOVX@DPTR,A;熄滅所有數(shù)碼管

RET

TAB:DBOCOH,0F9H,0A4H,OBOH,99H,92H,82H,0F8H

DB080H,9011,88H,83H,0C6II,0A1H,86H,8EH,OFFH

2ms延時(shí)子程序

使用寄存器:R7

對(duì)于11.0592MHz晶振,實(shí)際延時(shí)2174微秒=2.174ms

DELAY2MS:

MOVR7,#250

DD1:NOP

NOP

NOP

NOP

NOP

NOP

DJNZR7,DD1

RET

多字節(jié)加法程序

4字節(jié)加2字節(jié)程序

被加數(shù)在R4R5R6R7中,加數(shù)在R3和A中

和在R4R5R6R7中

MADD:ADDA,R7

MOVR7,A

MOVA,R3

ADDCA,R6

MOVR6.A

CLRA

ADDCA,R5

MOVR5,A

CLRA

ADDCA,R4

MOVR4,A

RET

;多字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換成BCD數(shù)子程序

;入口參數(shù):待轉(zhuǎn)換的二進(jìn)制數(shù)的字節(jié)數(shù)存放在BIN單元中

;待轉(zhuǎn)換的二進(jìn)制數(shù)從BINL單元內(nèi)容指定的RAM單元開(kāi)始存放,低位

在前。

;出口參數(shù):轉(zhuǎn)換后的BCD數(shù)從BCD單元內(nèi)容指定為RAM單元開(kāi)始存放,低位在

前。

HTOB:CLRA

MOVRI,BCD;指向BCD數(shù)存放的個(gè)位單元

MOVR2,BIN;取二進(jìn)制數(shù)的字節(jié)數(shù)

INCR2;轉(zhuǎn)后的BCD數(shù)的字節(jié)數(shù)可能比二進(jìn)制數(shù)多2

INCR2

BO:MOV@R1,A;清BCD數(shù)單元

INCRI

DJNZR2,BO

MOVA,BIN

MOVB,#8

MULAB;計(jì)算二進(jìn)制數(shù)的位數(shù)

MOVR3,A;存二進(jìn)制數(shù)的位數(shù)

B3:MOVR2,BIN;取二進(jìn)制數(shù)的字節(jié)數(shù)

MOVRO,BINL;取二進(jìn)制數(shù)最低位地址

CLRC

Bl:MOVA,@R0

RLCA

MOV@R(),A

INCRO

DJNZR2,BI;實(shí)現(xiàn)二進(jìn)制數(shù)整體左移一位,最高位移入C

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論