欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機實時數據采集ADC0809與報警系統源程序
[打印本頁]
作者:
wangfushou
時間:
2019-11-22 17:06
標題:
51單片機實時數據采集ADC0809與報警系統源程序
51實時數據采集ADC0809與報警系統
單片機源程序如下:
/*============================================================
//
//程序編寫:劉先生
接線:D0--D7接P0.0-P0.7
ST---P2.3
EOC--P2.2
OE---P2.1
CLK--P2.0
[注:使用12M或11.0592M晶振,實測使用11.0592M]
=============================================================*/
#include <reg52.H> //器件配置文件
#include <intrins.h>
#include "lcd.h"
#define adc0809_data P3 //單片機P0接模塊D0~D7引腳
sbit STR = P2^3; //單片機P2.3接模塊STR引腳, 啟動轉換信號
sbit EOC = P2^2; //單片機P2.2接模塊EOC, 轉換結束信號,高電平有效
sbit OE = P2^1; //單片機P2.1接模塊OE,輸出允許信號,高電平有效
sbit CLK = P2^0; //單片機P2.0接CLK ,ADC0809時鐘,輸入50-800KHZ的頻率
//一般選用500K
//將短接片去掉開啟位選功能,否則默認IN0為輸入引腳
sbit AA = P2^6; //單片機P2.6接模塊A引腳
sbit BB = P2^5; //單片機P2.6接模塊B引腳
sbit CC = P2^4; //單片機P2.6接模塊C引腳
unsigned char AD_DATA[1]; //保存IN0通道轉換后的數據
unsigned char disbuff[4] = { 0,0,0,0,};
unsigned char Disp[]="0123456789"; //使用字符串保存數字0~9所對應的ASCLL碼
unsigned char I_Disp[]="Smoke_C : "; //初始顯示值
unsigned char i;
/***********************************
函數名: AD()
功能: 啟動AD轉換將值儲存于 AD_DATA[0]
***********************************/
void AD(void )
{
STR=0;
STR=1; //啟動AD轉換
STR=0;
while(0==EOC);//等待轉換結束
OE=1;
AD_DATA[0]=adc0809_data; //讀取AD數據,數據范圍為0-255
OE=0;
}
/***********************************
函數名: t0()
功能: 產生ADC0809CLK所需要的時鐘
***********************************/
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
/***********************************
函數名: Conut()
功能: 將AD_DATA[0]的各位拆分以方便lcd顯示
***********************************/
void Conut(void)
{
disbuff[0]=AD_DATA[0]/100;
disbuff[1]=AD_DATA[0]/10%10;
disbuff[2]=AD_DATA[0]%10;
}
/***********************************
函數名: delayms()
功能: 延時 ms 毫秒
***********************************/
void delayms(unsigned int ms)
{
unsigned char j;
i=100;
for(;ms;ms--)
{
while(--i)
{
j=10;
while(--j);
}
}
}
/***********************************
函數名: LcdDisplay()
功能: 用lcd顯示數組disbuff[]中的值
***********************************/
void LcdDisplay(void)
{
LcdWriteCom(0x0b+0x80);
for(i=0;i<3;i++)
{
LcdWriteData(Disp[disbuff[i]]);
}
}
/***********************************
函數名: Analog_IO_Sel()
參數說明: m 的值對應ADC0809芯片上模擬輸入的IO
功能: 確定模擬輸入位選
***********************************/
void Analog_IO_Sel(unsigned char m)
{
switch(m)
{
case 0 : CC = 0; BB = 0; AA = 0; break;
case 1 : CC = 0; BB = 0; AA = 1; break;
case 2 : CC = 0; BB = 1; AA = 0; break;
case 3 : CC = 0; BB = 1; AA = 1; break;
case 4 : CC = 1; BB = 0; AA = 0; break;
case 5 : CC = 1; BB = 0; AA = 1; break;
case 6 : CC = 1; BB = 1; AA = 0; break;
case 7 : CC = 1; BB = 1; AA = 1; break;
}
}
void main()
{
EA=1; //開總中斷
TMOD=0x02; //設定定時器 T0工作方式
TH0=216; //利用T0中斷產生CLK信號
TL0=216;
TR0=1; //啟動定時器T0
ET0=1;
STR=0;
OE=0;
Analog_IO_Sel(0); //設置為IN0輸入
LcdInit();
for(i=0;i<10;i++) //顯示初始值
{
LcdWriteData(I_Disp[i]);
}
while(1)
{
AD();
Conut(); //計算
LcdDisplay(); //lcd顯示
delayms(10); //10MS
}
}
復制代碼
所有資料51hei提供下載:
單片機控制系統綜合實訓.7z
(181.49 KB, 下載次數: 58)
2019-11-22 17:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
捕獲.PNG
(71.41 KB, 下載次數: 114)
下載附件
2019-11-22 17:05 上傳
作者:
高富師
時間:
2025-6-9 09:16
報警模塊在哪?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1