以8951控制triac的問題 |
缺席
|
阿鴻
一般會員 ![]() ![]() 發表:9 回覆:8 積分:3 註冊:2005-03-23 發送簡訊給我 |
程式如下:
;輸入電壓220VAC/60HZ輸出可5段調整利用8051之INT0檢測交流零電位時使TRIAC/ON ;控制導通時間達到輸出電壓變化(60HZ=16.67ms) ORG 0 AJMP START ORG 03H AJMP INT0 START: SETB P1.1 MOV IE,#10000001B ;啟動中斷開關 MOV SP,#70H SETB IT0 MOV 20H,#83 ;TRIAC ON 8.3MS MOV 21H,#104 ;TRIAC ON 10.4MS MOV 22H,#125 ;TRIAC ON 12.5MS MOV 23H,#146 ;TRIAC ON 14.6MS MOV 24H,#166 ;TRIAC ON 16.6MS MOV A,20H ;初值為ON8.3MS PWM_LOOP: JNB P1.0,AC_1 ;按下時輸出電壓約110VAC JNB P1.4,AC_2 ;按下時輸出電壓約137VAC JNB P1.5,AC_3 ;按下時輸出電壓約164VAC JNB P1.6,AC_4 ;按下時輸出電壓約192VAC JNB P1.7,AC_5 ;按下時輸出電壓約220VAC(TRIAC全ON) SETB P1.1 ;TRIAC OFF AJMP PWM_LOOP INT0: CLR P1.1 ;零電位中斷時啟動MOC3021 ACALL DELAY_MS ;防彈跳 RETI AC_1: ACALL DELAY_16MS ;防彈跳 MOV A,20H AJMP PWM_LOOP AC_2: ACALL DELAY_16MS ;防彈跳 MOV A,21H AJMP PWM_LOOP AC_3: ACALL DELAY_16MS ;防彈跳 MOV A,22H AJMP PWM_LOOP AC_4: ACALL DELAY_16MS ;防彈跳 MOV A,23H AJMP PWM_LOOP AC_5: ACALL DELAY_16MS ;防彈跳 MOV A,24H AJMP PWM_LOOP ;________________________________________________ ; ; DELAY TIME=2*R6*R7 ;________________________________________________ DELAY_MS: MOV R6,A D1: MOV R7,#50 DJNZ R7,$ DJNZ R6,D1 RET ;________________________________________________ ; ; 防彈跳副程式 ;________________________________________________ DELAY_16MS: MOV R7,#40 D2: MOV R6,#200 DJNZ R6,$ DJNZ R7,D2 RET END我想輸入電壓220vac 輸出可有5段電壓(110...到..220vac) 使用cd4001做零電位判斷.接到int0再控制moc3021(光藕合)去觸發triac on/off時間達到控制電壓的目的. 請問以上程式是否可以.... 我試了一直無法正常動作.. 零電位判斷以示波器看為正常(有一負緣脈衝) 但一接到int0就不見了 麻煩各位... 發表人 - ㊣ 於 2005/05/10 13:36:02 |
暗黑破壞神
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
阿鴻
一般會員 ![]() ![]() 發表:9 回覆:8 積分:3 註冊:2005-03-23 發送簡訊給我 |
謝謝板主大大回應:
|
暗黑破壞神
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |