1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
單片機模擬感應燈程序Proteus仿真 ADC0832采集光敏電阻自動燈光控制
[打印本頁]
作者:
1824380946
時間:
2024-1-20 11:36
標題:
單片機模擬感應燈程序Proteus仿真 ADC0832采集光敏電阻自動燈光控制
模擬感應燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
(156.09 KB, 下載次數: 26)
下載附件
2024-1-20 14:52 上傳
用普通電位器來模擬光敏電阻
單片機源程序如下:
#include <reg52.h>
#include <intrins.h>
/*********************************************************/
// 宏定義
/*********************************************************/
#define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替
/*********************************************************/
// 端口定義
/*********************************************************/
sbit ADC_CS = P2^5; // ADC0832的CS引腳
sbit ADC_CLK = P2^6; // ADC0832的CLK引腳
sbit ADC_DAT = P2^7; // ADC0832的DI/DO引腳
sbit LED = P2^1;
sbit Induction = P3^2; // 人體紅外檢測模塊
/*********************************************************/
// ADC0832的時鐘脈沖
/*********************************************************/
void WavePlus()
{
_nop_();
ADC_CLK = 1;
_nop_();
ADC_CLK = 0;
}
/*********************************************************/
// 獲取指定通道的A/D轉換結果
/*********************************************************/
uchar Get_ADC0832()
{
uchar i;
uchar dat1=0;
uchar dat2=0;
ADC_CLK = 0; // 電平初始化
ADC_DAT = 1;
_nop_();
ADC_CS = 0;
WavePlus(); // 起始信號
ADC_DAT = 1;
WavePlus(); // 通道選擇的第一位
ADC_DAT = 0;
WavePlus(); // 通道選擇的第二位
ADC_DAT = 1;
for(i=0;i<8;i++) // 第一次讀取
{
dat1<<=1;
WavePlus();
if(ADC_DAT)
dat1=dat1|0x01;
else
dat1=dat1|0x00;
}
for(i=0;i<8;i++) // 第二次讀取
{
dat2>>= 1;
if(ADC_DAT)
dat2=dat2|0x80;
else
dat2=dat2|0x00;
WavePlus();
}
_nop_(); // 結束此次傳輸
ADC_DAT = 1;
ADC_CLK = 1;
ADC_CS = 1;
if(dat1 == dat2) // 返回采集結果
return dat1;
else
return 0;
}
/*********************************************************/
// 自動燈光控制
/*********************************************************/
void AutoControl()
{
uchar ret;
ret=Get_ADC0832(); // 獲取AD采集結果(環境光照強度)
if(ret <= 29 && Induction == 1)
{
LED = 0; //點亮LED
}
else
{
LED = 1;
}
}
/*********************************************************/
// 主程序
/*********************************************************/
void main()
{
while(1)
{
AutoControl();
}
}
復制代碼
仿真程序51hei附件下載:
感應燈.zip
(128.08 KB, 下載次數: 49)
2024-1-20 11:36 上傳
點擊文件名下載附件
文件
下載積分: 黑幣 -5
作者:
jinyudz
時間:
2024-1-22 20:05
感謝這么好的仿真程序
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1