[問題]中斷與持續輸出

看板ASM (組合語言)作者 (5858)時間12年前 (2012/10/28 12:01), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
設計上是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
我猜是 org 13h 下面那行的問題 改成 mov a, tl1;cpl a;
10/29 19:51, 1F

10/30 01:14, , 2F
謝r大... 我星期三去改改看 :)
10/30 01:14, 2F
文章代碼(AID): #1GZAuUPG (ASM)
文章代碼(AID): #1GZAuUPG (ASM)