『壹』 求一個基於51單片機的光敏電阻控制led燈亮滅的程序,實現有光的時候燈滅,沒光的時候燈亮,急……
超簡單:
#include <reg51.h>
sbit in=P0^0;
sbit led=P1^0;
void main()
{
while(1)
{
if(in==1)led=0;
else led=1;
}
}
『貳』 51單片機紅外感應開關代碼怎麼寫
RE200B紅外熱釋電處理晶元BISS0001,BISS0001是一款具有較高性能的感測信號處理集成電路,它配以熱釋電紅外感測器和少量外接元器件構成被動式的熱釋電紅外開關。它能自動快速開啟各類白熾燈、熒光燈、蜂鳴器、自動門、電風扇、烘乾機和自動洗手池等裝置,特別適用於企業、賓館、商場、庫房及家庭的過道走廊等敏感區域,或用於安全區域的自動燈光、照明和報警系統[6]。該處理晶元具有CMOS工藝,數模混合,具有獨立的高輸入阻抗運算放大器;內部的雙向鑒幅器可有效抑制干擾,內設延遲時間定時器和封鎖時間定時器,採用16腳DIP封裝等特點。紅外感測器接收到人體紅外信號經BISS0001處理後輸出輸給單片機P1.0口,TEL0表示接STC89C52是的P1.0口,通過對P1.0電平的判斷,實現對單片機外圍電路的控制.具體去看我的網路文庫「基於單片機的紅外淋浴器的設計」。
『叄』 IAR使用單片機CC2530開發板加點對點通信傳輸光敏電阻值代碼
圖三第一處警告:由於前面有while(1){;}死循環,所以從這里開始的後續所有代碼都將無法得到執行。
圖三第一處錯誤:pTxData未定義過。
圖四第一處警告:這個臨時變數value未被使用過。
圖四第二處警告:這個臨時變數Rvalue沒有進行過賦值,就當做返回值返回了。
慢慢改錯吧……
『肆』 跪求單片機通過光敏電阻控制蜂鳴器的C語言代碼!!
你好!
這是常見的一種
『伍』 求大神用51單片機和光敏電阻設計自動門控制系統的c語言程序代碼及原理圖
用數字光強度感測器比較穩定
『陸』 跪求用光敏電阻和單片機根據亮度控制燈的開關程序
哦?偶試試
感測器使用一個LM358運放和光敏電阻組成。運放接兩個電位器。可以調節感應程度的。兩個運放的輸出端接到單片機除P0口的任意口線。在程序中檢測運放的輸出狀態。有光的時候,兩個運放都是輸出為高電平。這時候,單片機繼續等待。光線強度下降的時候,其中一個運放就會輸出低電平了。這時,單片機檢測到後就會打開其中一個燈。當光線強度繼續下降,這時,兩個運放就會都輸出低電平。這時,單片機檢測到都為低電平的時候,打開兩個燈就可以啦。到了快天亮的時候,光線強度上升。這時候,其中一個運放又會輸出高電平,單片機就會關閉其中一個燈了。天完全亮後,關閉所有的燈。
硬體連接:P1.0口接第一個運放的輸出端。P1.1口接第二個運放的輸出端。P2.0口接第一個控制繼電器的三極體,P2.1口接第二個控制繼電器的三極體。輸出為低電平有效。
實現功能:白天的時候,繼電器都釋放。光線下降後,其中一個繼電器吸合。光線很弱的時候,兩個繼電器都吸合。循環。
偶使用了最笨的法子,蹲點守候!嘿嘿嘿 程序中引入延時判斷,防止誤觸發。
org 0
ajmp start
org 30h
start:mov a,p1
cjne a,#0feh,next
lcall dely
mov a,p1
cjne a,#0feh,next
clr p2.0
ajmp start
next: cjne a,#0fch,next1
lcall dely
mov a,p1
cjne a,#0fch,next1
clr p2.0
clr p2.1
ajmp start
next1:cjne a,#0ffh,start
lcall dely
mov a,p1
cjne a,#0ffh,start
setb p2.0
setb p2.1
ajmp start
dely: mov r7,#100
dl1: mov r6,#100
dl2: mov r5,#50
djnz r5,$
djnz r6,dl2
djnz r7,dl1
ret
end
程序不好用就找偶!
『柒』 求,光敏電阻和adc0832用單片機控制的c語言程序
//******************adc0832****************************// sbit CS=P1^0; //使能。 sbit CLK=P1^1;//時鍾 sbit Do=P1^2; // 數據輸出 sbit Di=P1^2;//數據輸入 unsigned char CH=0x02;
//通道的選擇:0x02就是單通道0;0x03就是單通道1; //0x00就是雙通道ch0=「+」; ch0=「-」 //0x01就是雙通道ch0=「-」; ch0=「+」
//*****************************************************// unsigned char ADconv(void) {unsigned char i;
unsigned int data_f=0,data_c=0; Di=1; CS=1; _nop_(); CS=0;
Di=1; //晶元使能之前的初始化。第一個下降沿 CLK=1; _nop_(); _nop_();
/****************************************/ CLK=0; // 確定通道模式、第2個下降沿 _nop_(); _nop_(); CLK=1;
Di=(bit)(0x02&CH); //設定通道初始化 _nop_(); CLK=0; _nop_(); _nop_(); CLK=1;
Di=(bit)(0x01&CH); //設定通道初始化 .第3個下降沿 _nop_();
_nop_();
CLK=0; //AD轉化的初始化完成。 Di=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); CLK=1;
for(i=8;i>0;i--)//得到一個正常排序的8位數據 {
data_f|=Do; data_f<<=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); }
for(i=8;i>0;i--)//得到一個反序排列的8位數據 {
data_c<<=1; data_c|=Do; _nop_(); CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); } CLK=0; _nop_();
_nop_(); CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); CS=1; _nop_(); _nop_(); return data_f; }
『捌』 求一單片機程序(用光敏電阻,PWM輸出控制LED亮度)
ORG 0000H
L0000: LJMP MIN00 ; 主程序
; / *** *** *** *** / 初始化 PWM
PCA00: MOV CMOD, #82H ; (fSYS/2)
MOV CCON, #00H
MOV CL, #00H
MOV CH, #00H
MOV CCAPM0, #00H ; PWM0 輸出
MOV PCA_PWM0, #00H
SETB CR ; 開 PWM
RET
; / *** *** *** *** / 主程序
P1M0 EQU 91H
P1M1 EQU 92H
P3M0 EQU 0B1H
P3M1 EQU 0B2H
ADC_CONTR EQU 0C5H ; A/D 轉換寄存器
ADC_DATA EQU 0C6H ; A/D 結果寄存器
MIN00: MOV P1M0, #08H ; 設置 P1.3 為高阻狀態
MOV P1M1, #08H
MOV ADC_CONTR, #0E3H ; 開A/D 轉換電源 P1.3
LCALL PCA00 ; 初始化 PWM
MIN10: NOP ; 主程序 入口
LCALL ADC00 ; 測光敏電阻電壓
MOV CCAP0H, A ; 寫入PWM 控制 發光亮度
LJMP MIN10
RET
; / *** *** *** *** / A/D 轉換通道 測電壓
ADC00: MOV ADC_DATA, #00H
ORL ADC_CONTR, #08H ; 啟動 AD 轉換
MOV A, #10H ; 判斷 AD 轉換是否完成
ANL A, ADC_CONTR
JZ ADC32 ; AD 轉換尚未完成, 繼續等待
ANL ADC_CONTR, #0E7H ; 清0 ADC_FLAG, ADC_START 位, 停止A/D 轉換
MOV A, ADC_DATA ; A = AD 轉換結果
RET
END
『玖』 請問您會寫單片機通過光敏電阻控制蜂鳴器的C語言代碼嗎
很容易,光敏電阻是模擬信號,用ACD0804電路晶元將模擬信號轉換成數字信號,這樣可以被IO口識別,讀取IO口,就可以讀取到相應的明暗信號,編寫個蜂鳴器強度子函數,判斷明暗信號以控制蜂鳴器強與弱,或者叫與不叫,代碼別叫我寫,自己想想,很容易的,不過很煩。
『拾』 各位好,我想問一下我想採用一個光敏電阻來做開關用,就是檢測有無光,然後高低電平給單片機IO口判斷,
好,你要個電路比較簡單的。
我告訴你一個最簡單的電路。
你只需將光敏電阻的任意一端直接接在P1、P2、P3口的任一引腳,另一端接地就可以了。
當在普通的白天光照時,光敏電阻與單片機的上拉電阻相比小1至2個數量級,
光敏電阻相當於接地。
編個小程序就可以驅動單片機的另一個IO口動作。