[問題]中斷與持續輸出
設計上是AT89S51接受一個外部方波訊號,判斷方波屬於哪個頻率後做輸出
方波頻率有三種"500HZ、1KHZ、other"
方坡計算方式是計數方波負緣在0.1秒內出現的頻率
用了一個外部中斷,0.1s中斷一次去計算方波頻率
已經可以判斷讀入的是哪個頻率,但在輸出的方面有點問題不知道該怎樣解...
希望是在同一個固定頻率持續的時候燈持續亮
但在頻率轉換成另一個的時候要換亮第二種燈
目前這樣他會一直閃爍
要怎樣讓他能持續一直亮呢... :(
有想過在中斷之後寫迴圈但不知道若頻率轉換時要怎麼跳到判斷...
以下是程式碼
ORG 0000H
MOV P2,#11111111B
JMP MAIN
ORG 0013H
CPL A
CLR C
MOV R3,A
SUBB A,#6BH
JNC ENDDD
CLR C
MOV A,R3
SUBB A,#5DH
JNC KHZ
CLR C
MOV A,R3
SUBB A,#39H
JNC ENDDD
CLR C
MOV A,R3
SUBB A,#2BH
JNC HZ
RETI
KHZ:
MOV TH1,#0
MOV TL1,#0
CLR A
MOV P2,#01111011B
RETI
HZ:
MOV TH1,#0
MOV TL1,#0
CLR A
MOV P2,#11111110B
RETI
ENDDD:
MOV TH1,#0
MOV TL1,#0
CLR A
MOV P2,#11111111B
RETI
MAIN: SETB P3.3
SETB IE1 // 中斷智能
SETB EX1
SETB EA
START:
MOV TMOD,#11010001B // 設定計數器模式
LOOP:
MOV TH1,#0
MOV TL1,#0 //負緣次數 清除為0
SETB TR1
WAIT:
MOV A,TL1 // 將 TL1 複製到累進器A
CPL A // 位元反轉
MOV P1,A // 第一組port 輸出 累進器數值
AJMP WAIT
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.62.51
推
10/29 19:51, , 1F
10/29 19:51, 1F
→
10/30 01:14, , 2F
10/30 01:14, 2F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章