(玩(wan)電子) 電子技(ji)術學習與(yu)研xin)/div>
當前(qian)位置(zhi)︰單片機教(jiao)程網 >> 基礎教(jiao)程 >> 瀏覽(lan)文章

万人红黑大战官网

作(zuo)者:佚(die)名   來源:本(ben)站原創(chuang)   點擊數:x  更新(xin)時間(jian)︰2007年08月(yue)14日   【字體︰

   前(qian)面我(wo)們做了定時器的實(shi)驗,現(xian)在來看一(yi)看計數實(shi)驗,在工作(zuo)中計數常常會(hui)有兩種要求︰第(di)一(yi)、將計數的值(zhi)顯(xian)示出來,第(di)二、計數值(zhi)到一(yi)定程度即中斷(duan)報(bao)警(jing)。第(di)一(yi)種如各種計數器、里程表,第(di)二種如前(qian)面例中講到的生產線上xi)募剖O瓤吹di)一(yi)種吧。我(wo)們的硬件中是這樣連線的︰324組成的振蕩(dang)器連到定時/計數器1的外部管腳T1上面,我(wo)們就(jiu)利用(yong)這個來做一(yi)個計數實(shi)驗,要將計數的值(zhi)顯(xian)示出來,當然最好用(yong)數碼(ma)管了,可我(wo)們還沒講到這一(yi)部份,為了避免把問題(ti)復(fu)雜化,我(wo)們用(yong)P1口的8個LED來顯(xian)示計到的數據。

程序如下︰

ORG 0000H ,http://www.51hei.com

AJMP START

ORG 30H

START:

MOV SP,#5FH

MOV TMOD,#01000000B ;定時/計數器1作(zuo)計數用(yong),0不用(yong)全置(zhi)0

SETB TR1 ;啟(qi)動(dong)計數器1開(kai)始(shi)運行.

LOOP: MOV A,TL0

MOV P1,A

AJMP LOOP

END

在硬件上用(yong)線將324的輸出與(yu)T1連通(印板上有焊盤(pan))運行這種程序,注意將板按正確的位置(zhi)放置(zhi)(LM324放在左手邊(bian),LED排列是qian)創(chuang)癰呶壞降兔橋帕校┘吹絞裁矗克孀24後接的LED的閃(shan)爍,單片機的8只LED也在持續(xu)變化,注意觀察,是不是qian)炊zhi)︰

00000000

00000001

00000010

00000011

這樣的次序在變呢?這就(jiu)對(dui)了,這就(jiu)是TL0中的數據。

程序二︰

ORG 0000H

AJMP START

ORG 001BH

AJMP TIMER1 ;定時器1的中斷(duan)處理

ORG 30H

START: MOV SP,#5FH

MOV TMOD,#01010000B ;定時/計數器1作(zuo)計數用(yong),模式(shi)1,0不用(yong)全置(zhi)0

MOV TH1,#0FFH

MOV TL1,#0FAH ;預置(zhi)值(zhi),要求每(mei)計到6個脈沖即為一(yi)個事件

SETB EA

SETB ET1 ;開(kai)總中斷(duan)和定時器1中斷(duan)xian)市/p>

SETB TR1 ;啟(qi)動(dong)計數器1開(kai)始(shi)運行.

AJMP $

TIMER1:

PUSH ACC

PUSH PSW

CPL P1.0 ;計數值(zhi)到,即取(qu)反P1.0

MOV TH1,#0FFH

MOV TL1,#0FAH ;重置(zhi)計數初值(zhi)

POP PSW

POP ACC

RETI

END

上面這個單片機程序完成的工作(zuo)很簡單,就(jiu)是在每(mei)6個脈沖到來後取(qu)反一(yi)次P1。0,因此實(shi)驗的結果應當是︰LM324後接的LED亮、滅6次,則P1。0口所接LED亮或滅一(yi)次。這實(shi)際就(jiu)是我(wo)們上面講的計數器的第(di)二種應用(yong)。

程序三︰外部中斷(duan)實(shi)驗

ORG 0000H

AJMP START

ORG 0003H ;外部中斷(duan)地(di)直入口

AJMP INT0

ORG 30H

START: MOV SP,#5FH

MOV P1,#0FFH ;燈全滅

MOV P3,#0FFH ;P3口置(zhi)高電平

SETB EA

SETB EX0

AJMP $

INT0:

PUSH ACC

PUSH PSW

CPL P1.0

POP PSW

POP ACC

RETI

END

本(ben)程序的功能很簡單,按一(yi)次按鈕(niu)1(接在12管腳上xi)模┘jiu)引發一(yi)次中斷(duan)0,取(qu)反一(yi)次P1。0,因此理論上按一(yi)下燈亮,按一(yi)下燈滅,但在實(shi)際做實(shi)驗時bao) 贍芑hui)發覺有時不“靈”,按了它沒反應,但在大部份時候是對(dui)的,這是怎麼回事呢?我(wo)們在講解鍵盤(pan)時再作(zuo)解釋,這個程序本(ben)身是沒有問題(ti)的。

万人红黑大战官网

万人红黑大战官网 | 下一页