1樓:匿名使用者
昏.....流水燈啊,只是速度比較快的流水燈而已啊.
p1.0先設為0x01或者0xfe,然後在60ms的定時中斷裡對p1進行移位就可以了,移到p1.7之後的下一次再重新設一次p1.0就行了.
51微控制器想用定時器做延時。但我失敗了。各位老師幫幫我。這是我看看那裡出錯。 *************************
2樓:富士康王課長
tps61040或041是否能做。ti的。
3樓:網路無此
51微控制器有2個定時器,t1 ,t0,要想使用它,就要了解定時器的結構,瞭解tcon,tmod特殊暫存器。依據你的要求,選擇合適的方式(0~3),是採用查詢方式還是採用中斷方式。
4樓:匿名使用者
晒出你的程式,我幫你看看吧
5樓:焊板子的兔子
把你的題和沒通的程式放上來
求助,完全不會。。。題目:設計一個流水燈控制電路(組合語言,定時器延時)
6樓:做而論道
;*** 0000h
ljmp main
main:
mov tmod, #01h
mov th0, #(65536 - 62500) / 256mov tl0, #(65536 - 62500) mod 256
setb tr0
m_loop:
mov a, #127
mov r3, #0
out:
mov p1, a
inc r3
cjne r3, #60, next ;不到60, 就去流水cpl f0 ;到了, 就改變方向sjmp m_loop ;從頭開始
;----------------------------------
next:
mov r2, #16
wait:
jnb tf0, $
mov th0, #(65536 - 62500) / 256mov tl0, #(65536 - 62500) mod 256
clr tf0
djnz r2, wait ;不到一秒就轉移jb f0, lll ;選擇左右方向rr a
sjmp out
lll:
rl a
sjmp out
end上述程式已經得到驗證。
7樓:匿名使用者
*** 0000h
ljmp main
*** 000bh
ljmp et0isr
*** 0030h
main:
mov sp,#5fh
mov tmod,#01h
mov th0,#high (65536-50000)mov tl0,#low (65536-50000)setb tr0
setb et0
setb ea
mov 30h,#0feh
mov p0,#0feh
mov r0,#0
mov r1,#0
clr 00h
sjmp $
et0isr:
clr tr0
mov th0,#high (65536-50000)mov tl0,#low (65536-50000)setb tr0
inc r0
mov a,r0
cjne a,#20,et01
et01:
jc et0r
mov r0,#0
inc r1
mov a,r1
cjne a,#60,et011
et011:
jc et012
mov r1,#0
cpl 00h
et012:
jb 00h,et02
mov a,30h
rl a
mov p0,a
reti
et02:
mov a,30h
rr a
mov p0,a
et0r:
retiend
51微控制器的定時器怎麼做延時 彙編
8樓:無畏無知者
1)你的主程式必須在1秒內完成一個過程,然後等待下一秒的到來;2)主程式放在一個迴圈內,並回設定答一個標記,以判斷是否觸發執行主程式,還是繼續空迴圈;
3)這個標記就由延時中斷例程來賦值;
其實,如果你的主程式能夠在1秒內完成,由沒有其他任務的話,完全可以放在中斷例程裡執行的;
9樓:黑影小生
貌似想到的方法和複雜,就是每個語句前都用cjne r1,#00h,$ // 執行語句 // ,mov r1,#00h
然後在定時器內使r1置1或其他值,這樣做很麻煩,不知你要這樣幹什麼???
10樓:匿名使用者
定時器中斷裡1s時,作個標誌,主程式裡判斷這標誌。
給你一個流水燈內
的例子參考。
*** 容00h
ajmp main
*** 0bh
ajmp t0int
*** 30h
main:
mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h
mov r0,#20
setb ea
setb et0
setb tr0
main0:
mov a,#01h
main1:
mov p1,a
jnb f0,main1
clr f0
rl a
inc a
ajmp main1
t0int:
mov tmod,#01
mov th0,#3ch
mov tl0,#0b0h
djnz r0,rti
mov r0,#20
setb f0
rti:
retiend
c程式設計時,51微控制器怎麼用定時器寫一個延時1ms的子函式
11樓:cindere鞡
51微控制器的定時器工作方式有4中,其中3種需要在中斷函式中重灌初值,而且c51明確規定中斷版函式不能傳入參權數也不能返回引數,那麼這樣一來就只能用不用重灌初值的工作方式2了,我給出了工作方式2的初始化函式:
void init(unsigned int x)這樣將x作為定時器的初值傳入,當tl0計數完成時,th0會自動將值賦給tl0,th0不變,當然你自己來定義鍵盤函式或者什麼函式來決定x的值。
希望我的回答能幫助到你。
12樓:
假如復使用12mhz晶振
定時器初
制始化:
void init(void )
主程式;
main(void)
}void inter_t0(void) //1ms中斷一次
13樓:南柯一夢之小
好辦用c51,方式一
void delay(unsigned int t) //t的單位取微秒
14樓:雨
void main()
mcs-51微控制器的程式設計題:已知系統晶振頻率為12mhz,採用定時器t0的方式1,請程式設計實現1s的延時。 20
15樓:cindere鞡
中斷服務抄函式就不用寫了吧,就寫個初始化函式:
void inition()
這樣初始化就沒問題了,另外要實現1s延時,需要在中斷函式里加個變數自增,因為我定義的是50ms中斷一次,那麼這個變數值自增到20後就代表1s時間到,清零這個變數之後方可寫你的服務程式。
希望我的回答能幫助到你。
16樓:匿名使用者
#include
#define uchar unsigned charuchar times;
void delay()}}
}main()
17樓:匿名使用者
#include
void inittimer0(void)
微控制器課程設計秒錶
1.可通過m鍵切換顯示模式 日期 年 月 日 時間 小時 分 秒 秒錶 小時 分 秒 1 100秒 鬧鐘 小時 分 秒 2.在日期顯示模式,可通過a鍵依次使年 月 日閃爍或變色,這時可通過i鍵加1調整。3.在時間顯示模式,可通過a鍵依次使小時 分 秒閃爍或變色,這時可通過i鍵加1調整。4.在秒錶顯示...
課程設計微控制器音效設計
spk equ p2.3 org 0000h ljmp main org 000bh ljmp int t0 org 2000h delay nop dl1 mov r1,02h dl2 nop djnz r1,dl2 nopdjnz r0,dl1 retmain mov sp,50h mov tm...
我的關於微控制器的課程設計怎麼辦翱??關於多種
微控制器資料採集系統 詳情 在工業生產和科學技術研究的各行業中,常常利用pc或工控機對各種資料進行採集如液位 溫度 壓力 頻率等物理量。現在常用的採集方式是通過資料採集板卡。採用板卡不僅安裝麻煩,易受機箱內環境的干擾,而且由於受計算機插槽數量和地址 中斷資源的限制,不可能掛接很多裝置。而微控制器資料...