全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5071
推到 Plurk!
推到 Facebook!

8051控制不同電壓的方法

缺席
strainny77
一般會員


發表:6
回覆:21
積分:5
註冊:2005-10-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-06 12:39:42 IP:61.224.xxx.xxx 未訂閱
我想寫一個程式 想讓89c51產生不同的電壓 但目前仍毫無頭緒 不知板上哪位高手 能指點小弟一下下手的方向 另外想請問另一個問題 我之前試著想產生一個頻率1hz的方波 第一個方法是使用計時器的方式寫的---成功 但是第二個方式使用一般的延遲 但卻無法再視波器上產生一個方波 不知問題何在 ex: loop: cpl p3.4 mov r5,#50 call delay jmp loop 請高手指點一下 謝謝

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-06 13:09:52 IP:203.203.xxx.xxx 未訂閱
1> 寫PWM程式. 2> 請附完整的程式.(包含Delay副程式)
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
strainny77
一般會員


發表:6
回覆:21
積分:5
註冊:2005-10-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-06 15:24:32 IP:140.135.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-06 17:50:32 IP:218.171.xxx.xxx 未訂閱
應該是main loop的第二個call delay指令 前要加上MOV R5,#50
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-08 16:17:55 IP:61.66.xxx.xxx 未訂閱
產生不同的電壓?? 拿來做什麼用的? 推LED還是馬達 如果是電壓信號可以用R-2R或是PWM(脈波寬度調變)
strainny77
一般會員


發表:6
回覆:21
積分:5
註冊:2005-10-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-09 21:30:55 IP:61.224.xxx.xxx 未訂閱
我想用不同的電流去推動driver 不過至今對pwm仍一點頭緒都沒 不知板上哪位高手可以借我參考pwm的資料或是範例 另外想請教R-2R是啥 謝謝
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-09 21:55:55 IP:218.169.xxx.xxx 未訂閱
請參考,使用中斷方式. http://www.iguanalabs.com/pwm.htm 我試過,沒問題. 單晶片是推不動大負載,需家電晶體緩衝!

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-10 00:44:44 IP:203.203.xxx.xxx 未訂閱
R-2R為電阻串, 可以用其分壓原理來做D/A轉換器, 如下圖所示: R-2R電壓型D/A Converter     應用原理:利用MCU的I/O埠輸出電壓,透過分壓電阻及比較器,將數位電轉為類比電壓.(須考慮OP飽和電壓) 發表人 - ㊣ 於 2005/11/10 00:47:28
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
strainny77
一般會員


發表:6
回覆:21
積分:5
註冊:2005-10-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-10 10:53:16 IP:140.135.xxx.xxx 未訂閱
感謝各位大大的回答 我想請問DavidLo兄,請問電晶體有特定的型號嗎 看來小弟要學的東西還很多
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-11-10 17:09:35 IP:61.228.xxx.xxx 未訂閱
NPN 電晶體有2N3904,2N2222,C9013. PNP 電晶體有2N3906,2N2907. 正邏輯方式 CPU PIN腳直接推NPN電晶體,要加PULL-HIGH及限流電阻. Currrent source 推力比較不足. 負邏輯方式 CPU PIN腳直接推PNP電晶體,要加限流電阻. Current sink推力OK.
strainny77
一般會員


發表:6
回覆:21
積分:5
註冊:2005-10-13

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-11-10 20:36:37 IP:140.135.xxx.xxx 未訂閱
@@DavidLo兄說的我一點都不了 非電機電子本行阿 不過還是謝謝你^^
strainny77
一般會員


發表:6
回覆:21
積分:5
註冊:2005-10-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-11-10 20:44:31 IP:140.135.xxx.xxx 未訂閱
想請問一下,
程式中的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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-11-10 20:53:09 IP:218.169.xxx.xxx 未訂閱
用線路說明 PNP方式 NPN方式 注意電壓不同情況!PNP only +5V.NPN可控制+12V負載.
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-11-10 21:09:14 IP:218.169.xxx.xxx 未訂閱
我猜於 8051EQU.INC 中 有類似定義 /* Predefined SFR Bit Addresses */ /*========PSW========*/ bit CY = 0xD7; bit AC = 0xD6; bit F0 = 0xD5; bit RS1 = 0xD4; bit RS0 = 0xD3; bit OV = 0xD2; bit P = 0xD0; 可以用其他bit(Bit addressable range from 20H to 2FH)代替
系統時間:2024-09-08 2:51:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!