8051控制不同電壓的方法 |
缺席
|
strainny77
一般會員 ![]() ![]() 發表:6 回覆:21 積分:5 註冊:2005-10-13 發送簡訊給我 |
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
strainny77
一般會員 ![]() ![]() 發表:6 回覆:21 積分:5 註冊:2005-10-13 發送簡訊給我 |
ORG 0H
JMP LOOP
;---------------------------------------
LOOP: SETB P3.4
MOV R5,#50
CALL DELAY
CPL P3.4
CALL DELAY
JMP LOOP
;
DELAY: MOV R6,#50
$1:MOV R7,#100
DJNZ R7,$
DJNZ R6,$1
DJNZ R5,DELAY
RET
END 我可以請問一下什麼是PWM(@@我是超新手阿)
或是哪邊有可以參考的資料可以推薦一下嗎?
謝謝^^ 發表人 - STRAINNY77 於 2005/11/06 15:25:56
|
addn
高階會員 ![]() ![]() ![]() ![]() 發表:64 回覆:221 積分:202 註冊:2005-03-21 發送簡訊給我 |
|
阿信
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
|
strainny77
一般會員 ![]() ![]() 發表:6 回覆:21 積分:5 註冊:2005-10-13 發送簡訊給我 |
|
DavidLo
高階會員 ![]() ![]() ![]() ![]() 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
請參考,使用中斷方式.
http://www.iguanalabs.com/pwm.htm
我試過,沒問題.
單晶片是推不動大負載,需家電晶體緩衝!
|
㊣
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
R-2R為電阻串, 可以用其分壓原理來做D/A轉換器, 如下圖所示:
R-2R電壓型D/A Converter
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
strainny77
一般會員 ![]() ![]() 發表:6 回覆:21 積分:5 註冊:2005-10-13 發送簡訊給我 |
|
DavidLo
高階會員 ![]() ![]() ![]() ![]() 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
|
strainny77
一般會員 ![]() ![]() 發表:6 回覆:21 積分:5 註冊:2005-10-13 發送簡訊給我 |
|
strainny77
一般會員 ![]() ![]() 發表:6 回覆:21 積分:5 註冊:2005-10-13 發送簡訊給我 |
想請問一下, 程式中的F0指的是啥?? TIMER_0_INTERRUPT: JB F0, HIGH_DONE ; If F0 is set then we just finished the high section of the LOW_DONE: ; cycle so Jump to HIGH_DONE SETB F0 ; Make F0=1 to indicate start of high section SETB P1.0 ; Turn off LED MOV TH0, R7 ; Load high byte of timer with R7 (our pulse width control value) CLR TF0 ; Clear the Timer 0 interrupt flag RETI ; Return from Interrupt to where the program came from HIGH_DONE: CLR F0 ; Make F0=0 to indicate start of low section CLR P1.0 ; Turn on LED MOV A, #FFH ; Move FFH (255) to A CLR C ; Clear C (the carry bit) so it does not affect the subtraction SUBB A, R7 ; Subtract R7 from A. A = 255 - R7. MOV TH0, A ; so the value loaded into TH0 R7 = 255 CLR TF0 ; Clear the Timer 0 interrupt flag RETI ; Return from Interrupt to where the program came from發表人 - ㊣ 於 2005/11/10 22:04:48 |
DavidLo
高階會員 ![]() ![]() ![]() ![]() 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
|
DavidLo
高階會員 ![]() ![]() ![]() ![]() 發表:17 回覆:225 積分:168 註冊:2004-07-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |