導航:首頁 > 操作系統 > 單片機定時器中斷匯編

單片機定時器中斷匯編

發布時間:2023-03-26 04:06:12

㈠ 如何用匯編語言編寫單片機試驗中的定時中斷實驗

第一、設置定時器工作模式;第二、給TLX、THX賦初值;第三、開中斷;第四、啟動定時器。當然你要編好中斷服務程序了。下面給一個簡單的示範常式:程序運行後將在P1.0上產生1K的方波信號輸出。
ORG 0000H
LJMP START
ORG 000BH
LJMP TM0
ORG 0100H
START:
CLR EA
MOV SP,#60H
MOV TMOD,#01H
MOV TCON,#01H
MOV TH0,#0FEH
MOV TL0,#0BH
SETB TR0
SETB EA
SJMP $
TM0:
CLR TR0
MOV TH0,#0FEH
MOV TL0,#0BH
SETB TR0
CPL P1.0
RETI
END

㈡ 單片機定時器中斷實驗 程序(匯編語言)不要c語言的

;假定晶振頻率12M
;假定P1口對應接8個LED,且高電平有效
;MCU:8051系列

CONT_DISP EQU 30H ;定義查表的計數變數,用於8個LED燈的顯示狀態
CONT_INT EQU 31H ;定義中斷間隔的計數變數,用於控制20個中斷為1秒的時間間隔

ORG 00H
AJMP GO
ORG 0BH
AJMP INT0_1 ;定時器0,工作方式1

GO:
MOV SP,#60H
MOV P1,#00H ;P1口初始全部關閉
MOV CONT_DISP,#8 ;查表取談禪LED點亮狀態,注意此處為了減少變數,查表採用從尾到首的順序,所以初始值為表末位數
MOV TMOD,#01H ;定時器工作方式1
MOV TH0,#0BH
MOV TL0,#3CH ;計數器初始設定,中斷間隔為50ms
SETB TR0
SETB ET0
SETB EA ;計數器開始工檔碼作
LOOP: ;以下幾句為不斷為P1口送值,點亮相應的LED
MOV A,CONT_DISP
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
AJMP LOOP
;----------------以下為中斷處理程序---------------
INT0_1:
PUSH ACC ;保護現場
MOV TH0,#0BH
MOV TL0,#3CH ;定時器初值重裝
DJNZ CONT_INT,RETINT
MOV CONT_INT,#20 ;20個中斷判定
DJNZ CONT_DISP,RETINT ;每20個中斷,即1秒含蠢塵,查表數減1
MOV CONT_DISP,#8 ;到1再循環
RETINT:
POP ACC
RETI

TAB:
NOP
DB 00H,0FFH,0AAH,55H,0A0H,50H,0AH,05H ;注意此表為從尾倒查式, 上面一句NOP不可少.

END

㈢ 用單片機匯編語言編寫中斷程序

ORG 0000H
LJMP START
ORG 000BH
LJMP Timer0Interrupt

START:
MOV SP,#60H
LCALL InitTimer0

LOOP:
;add your code here!
LJMP LOOP

InitTimer0:
MOV TMOD,#01H
MOV TH0,#0FCH
MOV TL0,#18H
SETB EA
SETB ET0
SETB TR0
RET

Timer0Interrupt:
PUSH DPH
PUSH DPL
PUSH ACC
MOV TH0,#0FCH
MOV TL0,#18H
CPL P1.0
POP ACC
POP DPL
POP DPH
RETI

END

這是定慎渣時器0的一個1ms中運汪斷寬悄悄一次的程序 在P1.0埠輸出1KHz方波

㈣ 單片機定時器中斷實驗 程序(匯編語言)不要c語言的

下列程序,已經經過實驗,可以滿足題目要求.
ORG 0000H
SJMP MAIN
ORG 000BH
SJMP T0_INT
MAIN:
MOV TMOD, #01H ;T0定時方式1
MOV TH0, #(65536-50000) / 256 ;定時50ms@12MHz
MOV TL0, #(65536-50000) MOD 256 ;
SETB TR0 ;啟動T0
MOV IE, #82H ;開中斷
;第一秒鍾L0,L2亮,第二秒鍾L1,L3亮,第三秒L4,L6亮,第四秒鍾L5,L7亮,
;第五秒L0,L2,L4,L6亮,第六秒鍾,L1,L3,L5,L7亮,第七秒鍾八個二極體全亮,第八秒鍾全滅.
MOV 30H, #11111010B
MOV 31H, #11110101B
MOV 32H, #10101111B
MOV 33H, #01011111B
MOV 34H, #10101010B
MOV 35H, #01010101B
MOV 36H, #00000000B
MOV 37H, #11111111B
MOV R0, #30H
MOV R7, #20
M_LOOP:
SJMP M_LOOP ;無限循環
T0_INT:
MOV TL0, #(65536-50000) MOD 256 ;
MOV TH0, #(65536-50000) / 256 ;定時50ms@12MHz
DJNZ R7, T0_END
MOV R7, #20
MOV P1, @R0
INC R0
CJNE R0, #38H, T0_END
MOV R0, #30H
T0_END:
RETI
END ;完

㈤ 單片機MCS51 8031匯編語言 定時器中斷

ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-60000)
MOVTL0,#LOW(65536-60000)
SETBTR0
SETBET0
慎睜兆者SETBEA
MOVR2,#8
CLR00H
MOVA,#0FEH
SJMP$
T0ISR:
族孝薯CLRTR0
MOVTH0,#HIGH(65536-60000)
MOVTL0,#LOW(65536-60000)
SETBTR0
JB00H,T02
MOVP1,#3FH
MOVP0,A
RLA
T01:
DJNZR2,T0E
CPL00H
MOVR2,#8
T0E:
RETI
T02:
MOVP1,#5BH
MOVP0,A
RRA
SJMPT01
END

㈥ 單片機中斷方式編程(匯編語言)

樓臘帆上的注意了,人家單片機的晶局虛振頻率是6MHz的,機器輪臘雹周期相應的是2us,
編程時間最好利用定時器中斷以節約資源。。。。
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0

START:
MOV TMOD,#00H
MOV TH0,#0FEH
MOV TL0,#0CH
SETB ET0
SETB EA
SETB TR0

MAIN:

LJMP MAIN

TIMER0:
MOV TH0,#0FEH
MOV TL0,#0CH
CPL P1.0
RETI
END

㈦ 51單片機匯編語言定時器的使用(中斷方式)

(1)
COUNT_INTEQU30H
LEDVALUEEQU31H
ORG0000H
LJMPSTART
ORG001BH
LJMPTimer1Interrupt

START:
MOVSP,#60H
MOVCOUNT_INT,#0
MOVLEDVALUE,#01H
LCALLInitTimer1

LOOP:
MOVA,LEDVALUE
MOVP2,A
LJMPLOOP

InitTimer1:
MOVTMOD,#10H;定時器T1為工作方式1,產生50ms定時
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET1
SETBTR1
RET

Timer1Interrupt:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH1,#3CH
MOVTL1,#0B0H
;========================
INCCOUNT_INT
MOVA,COUNT_INT;每50ms加1,
CJNEA,#2,Timer1Interrupt_EXIT;100ms
MOVCOUNT_INT,#0
MOVA,LEDVALUE
RLA
MOVLEDVALUE,A
;========================
Timer1Interrupt_EXIT:
POPACC
POPDPL
POPDPH
RETI

END
(2)
COUNT_INT_LEQU30H
COUNT_INT_HEQU31H
LEDVALUEEQU32H
ORG0000H
LJMPSTART
ORG001BH
LJMPTimer1Interrupt

START:
MOVSP,#60H
MOVCOUNT_INT_L,#0
MOVCOUNT_INT_H,#0
MOVLEDVALUE,#01H
LCALLInitTimer1

LOOP:
MOVA,LEDVALUE
MOVP2,A
LJMPLOOP

InitTimer1:
MOVTMOD,#20H;定時器T1為工作方式2,產生250us定時
MOVTH1,#00H
MOVTL1,#06H
SETBEA
SETBET1
SETBTR1
RET

Timer1Interrupt:
PUSHDPH
PUSHDPL
PUSHACC
MOVTH1,#00H
MOVTL1,#06H
;========================
INCCOUNT_INT_L
MOVA,COUNT_INT_L;每250us加1,
CJNEA,#40,Timer1Interrupt_EXIT;250US*40=10ms
MOVCOUNT_INT_L,#0
INCCOUNT_INT_H
MOVA,COUNT_INT_H;每10Ms加1,
CJNEA,#10,Timer1Interrupt_EXIT;10ms*10=100MS
MOVCOUNT_INT_H,#0
MOVA,LEDVALUE
RLA
MOVLEDVALUE,A
;========================
Timer1Interrupt_EXIT:
POPACC
POPDPL
POPDPH
RETI

END

㈧ 單片機匯編語言流水燈,定時器中斷控制,(500ms)延時

單片機匯編語言流水燈,用定時器中斷控制,可以初始化設置定時器時間(如50mS註定時器最大定時時間到不了500mS,需要加計數存儲,中斷10就是500mS),有多種方式實現如作一個流水狀態表,定時讀取寫入IO埠 表加一,,或者用左移太移等方式都可以實現在,網上有很多這種實例。

㈨ 51單片機匯編語言如何用定時器中斷實現數碼管從0-F每秒進1且循環進行。

ORG0000H
JMPBEGIN
ORG000BH
LJMPT0ISR
ORG0030H
TABLE:;共陰極數碼管顯示代碼表
DB3FH,06H,5BH,4FH,66H;01234
DB6DH,7DH,07H,7FH,6fh;56789
;---------------------------------------
BEGIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
SETBET0
SETBEA
MOVR2,#20
CLRA
LOOP:
MOVDPTR,#TABLE
PUSHACC
MOVCA,@A+DPTR
MOVP0,A
POPACC
SJMPLOOP
T0ISR:
CLRTR0
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
DJNZR2,T0E
INCA
ANLA,#0FH
T0E:
RETI
END

㈩ 51單片機定時器的匯編語言程序編程,

LED BIT P1.0 ;定義LED的引腳
ORG 0000H

LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H ;定時器0工作模式1
MOV TH0,#HIGH(65536-50000) ;初值,50毫秒中斷一次
MOV TL0,#LOW(65536-50000)
SETB TR0 ;啟動定時器
SETB ET0 ;啟動定時器中斷
SETB EA ;開總中斷
MOV R2,#40 ;中斷計數初始值
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E ;R2減到0重新賦值,否則退出
MOV R2,#40
CPL LED ;LED亮滅轉換
T0E:
RETI
END

閱讀全文

與單片機定時器中斷匯編相關的資料

熱點內容
管道彎頭製作演算法 瀏覽:37
phpmvcsmarty實例 瀏覽:925
spring搭建http伺服器地址 瀏覽:713
servlet教程pdf 瀏覽:970
蜂鳥眾包app如何聯系客服 瀏覽:188
程序員t恤淘寶 瀏覽:92
自助研發app如何推廣 瀏覽:727
國家反詐app在哪裡下 瀏覽:947
如何在晉江文學城添加密保 瀏覽:339
linux父進程kill 瀏覽:871
設備樹文件反編譯 瀏覽:501
小米照片的文件夾叫什麼 瀏覽:294
怎樣查程序員轉獵頭 瀏覽:672
吉林小說網綜排行榜少年巨 瀏覽:182
dns測試命令是 瀏覽:750
手機文件雙重解壓 瀏覽:481
linux查看tomcat線程 瀏覽:153
51單片機晶振電容 瀏覽:636
編譯器錯誤的位置怎麼找到 瀏覽:434
編譯原理操作系統圖形學 瀏覽:843