1樓:匿名使用者
include//包含52微控制器暫存器定義的標頭檔案
/*******************************************
函式功能:主函式
******************************************/
void main(void)
函式功能:外中斷t0的中斷服務程式
void int0(void) interrupt 0 //外中斷0的中斷編號為0
這是一個外中斷led實驗,你看看吧
2樓:多美的新一天
中斷實驗有幾種,譬如外部中斷0,1,定時器中斷(0,1),串列埠中斷
3樓:董衛衛
include
void main(void)
void int0(void) interrupt 0
微控制器定時器中斷實驗 程式(組合語言)不要c語言的
4樓:匿名使用者
;假定晶振頻率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:
nopdb 00h,0ffh,0aah,55h,0a0h,50h,0ah,05h ;注意此表為從尾倒查式, 上面一句nop不可少.end
5樓:做而論道
下列程式,已經經過實驗,可以滿足題目要求.
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 ;完
6樓:怪咖小小魚
#include
typedef unsigned int uint;
typedef unsigned char uchar;
uint n=0;
uint i=0;
uint led=;
void main() }
void time0() interrupt 1 using 1}
7樓:匿名使用者
我千言萬語,不知從何說起。我最敬愛是***。
微控制器 外部中斷實驗 使用at89c51
微控制器中斷問題,51微控制器外部中斷問題
不太明白你問的問題。t0還有空間呢?如果想在t0中斷內增加程式,也是可以的,長度和t0沒有關係,只要微控制器的儲存空間夠就可以了。儘量不要在中斷中執行程式,會影響整個流程的合理性。所以一般只在中斷中設定標誌。微控制器的中斷入口都是排列在地址的最低端的,分別為0003,000b,0013,001b,0...
微控制器中斷 的interrupt 0 using 1中的us
看到樓上二位說的有誤,特糾正。void int0 interrupt 0 using 1 interrupt 0 指明是外部中斷0 interrupt 1 指明是定時器中斷0 interrupt 2 指明是外部中斷1 interrupt 3 指明是定時器中斷1 interrupt 4 指明是序列口中...
51微控制器定時器初值公式中的256是什麼
256換成十六進位制數就是ffh,也就是一個位元組數全部計滿時的資料!手打不易,如有幫助請採納,謝謝!用方式1時,16位的初值要分解成高8位 低8位,分別存放到 th0 tl0。對256求模,也就是除以 256 得到的整數商,這就是高八位。對256求餘,也就是除以 256,得到的餘數,這就是低八位。...