新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)系統(tǒng)應(yīng)用

51單片機(jī)系統(tǒng)應(yīng)用

作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
應(yīng)用1:設(shè)有51應(yīng)用系統(tǒng)連接如附圖。試說明該系統(tǒng)分別執(zhí)行如下程序段A和程序段B時(shí),與P1.0端口連接的LED如何顯示變化?對(duì)應(yīng)程序段A和程序段B的顯示變化有何區(qū)別?

本文引用地址:http://butianyuan.cn/article/201611/321807.htm

程序段A:

LP: CPL P1.0

MOV R0,#0

DJNZ R0,$

JMP LP

程序段B:

LP: SETB P1.0

DJNZ R0,$

CLR P1.0

DJNZ R0,$

DJNZ R0,$

JMP LP

答:對(duì)應(yīng)程序段A和程序段B,LED都將周期性變換亮滅狀態(tài)。每個(gè)亮滅變換周期內(nèi),對(duì)程序段A,LED持續(xù)亮的時(shí)間與持續(xù)滅的時(shí)間長(zhǎng)度相同;對(duì)程序段B,LED持續(xù)亮的時(shí)間是持續(xù)滅的時(shí)間長(zhǎng)度的2倍。程序段B時(shí)的LED亮滅周期約為程序段A時(shí)的LED亮滅周期的1.5倍。

應(yīng)用2:設(shè)有51應(yīng)用系統(tǒng)連接如應(yīng)用1附圖,且系統(tǒng)所用晶振頻率為12MHz。試編寫程序段應(yīng)用51單片機(jī)的定時(shí)/計(jì)數(shù)器1實(shí)現(xiàn)連接在P1.0上的LED的顯示狀態(tài)每隔10秒鐘翻轉(zhuǎn)一次。

答:

MOV TMOD,#20H;T1定時(shí)方式2:8位自動(dòng)重裝入

MOV TH1,#(256-250) ;定時(shí)周期250us(對(duì)應(yīng)12MHz晶振,每個(gè)機(jī)器周期=1us)

MOV TL1,TH1;

CLR TF1;清T1溢出標(biāo)志

SETB TR1;啟動(dòng)T1計(jì)時(shí)

MOV R0,#0;R0用于累計(jì)T1溢出的次數(shù)

MOV R1,#0;R1用于累計(jì)R0達(dá)到200的次數(shù)

LP:JBC TF1,L1;如果TF1為1則清零TF1并轉(zhuǎn)去進(jìn)行溢出次數(shù)累計(jì)

JMP LP;循環(huán)等待T1溢出

L1:INC R0;累計(jì)T1溢出次數(shù)

CJNE R0,#200,LP;未達(dá)到200次則轉(zhuǎn)去等待下一次溢出

MOV R0,#0;確保R0的值在0~199之間

INC R1;累計(jì)時(shí)間達(dá)到50ms的次數(shù)(250us*200=50ms)

CJNE R1,#200,LP;累計(jì)時(shí)間未達(dá)到10s則轉(zhuǎn)去等待下一次溢出

MOV R1,#0;確保R1的值在0~199之間

CPL P1.0;累計(jì)時(shí)間已達(dá)到10s,則翻轉(zhuǎn)P1.0狀態(tài)1次(50ms*200=10s)

JMP LP;繼續(xù)循環(huán)累計(jì)時(shí)間



評(píng)論


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

關(guān)閉