久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
AD8090 問題
[打印本頁]
作者:
xiaojin
時間:
2017-5-22 13:54
標題:
AD8090 問題
為何程序//功能:ADC0809模塊測試,讀取IN3口的模擬電
//編譯環境: KEIL UVISION2
//單片機晶振:12M 單片機型號AT89S52
//單片機晶振: 無特殊要求
//作者:興向榮電子元件店
//日期:2013.06.20
//功能:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
// adc0809模塊接線
#define uchar unsigned char
sbit STR=P1^0; //單片機P1.0接模塊STR引腳, 啟動轉換信號
sbit EOC=P1^1; //單片機P1.1接模塊EOC, 轉換結束信號,高電平有效
sbit OE=P1^2; //單片機P1.2接模塊OE,輸出允許信號,高電平有效
sbit CLK=P1^3; //單片機P1.3接CLK ,ADC0809時鐘,輸入50-800KHZ的頻率
//一般選用500K
#define adc0809_data P3// ADC0809模塊的D0-D7分別接P3.0-P3.7
/*地址選擇 A 接H
B 接H
C 接L
選擇通到IN3,當然也可以通過軟件設置地址
REF+ 接VCC
REF- 接GND
這樣 AD=256*(VIN-(VREF-))/(VREF+)-(VREF-)
(VREF+)=5V;
(VREF-)=0V;
AD=256*VIN/5
所以IN3口的電壓VIN=AD*5/256;
*/
uchar AD_DATA[1]; //保存IN0通道轉換后的數據
uint addata2;
//==============LCD1602接口連接方法=====================
/*-----------------------------------------------------
|DB0-----P0.0 | DB4-----P0.4 | RW-------P2.3 |
|DB1-----P0.1 | DB5-----P0.5 | RS-------P2.4 |
|DB2-----P0.2 | DB6-----P0.6 | E--------P2.2 |
|DB3-----P0.3 | DB7-----P0.7 |
---------------------------------------------------*/
//================================================*/
#define LCM_Data P0 //LCD1602數據接口
#define Busy 0x80 //用于檢測LCM狀態字中的Busy標識
sbit LCM_RW = P2^3; //讀寫控制輸入端,LCD1602的第五腳
sbit LCM_RS = P2^4; //寄存器選擇輸入端,LCD1602的第四腳
sbit LCM_E = P2^2; //使能信號輸入端,LCD1602的第6腳
//**************函數聲明***************************************
void WriteDataLCM (uchar WDLCM);//LCD模塊寫數據
void WriteCommandLCM (uchar WCLCM,BuysC); //LCD模塊寫指令
uchar ReadStatusLCM(void);//讀LCD模塊的忙標
void DisplayOneChar(uchar X,uchar Y,uchar ASCII);//在第X+1行的第Y+1位置顯示一個字符
void LCMInit(void);//LCD初始
void delayms(uint ms);//1MS基準延時程序
void delay(uchar i); //延時函數2
void DisplayListChar(uchar X,uchar Y,uchar delayms, uchar code *DData);
void judge_xianshi(void);//顯示處理程序
void init();//系統初始化設置
void AD();//讀取AD數據
uchar flag1;
//***********************主程序******************************
main()
{
init();//系統初始化設置
LCMInit();
while(1)
{
AD();
judge_xianshi();
delayms(100);
}
}
/*********
系統初始化
***********/
void init()
{
EA=1; //開總中斷
TMOD=0x02; //設定定時器 T0工作方式
TH0=216; //利用T0中斷產生CLK信號
TL0=216;
TR0=1; //啟動定時器T0
ET0=1;
STR=0;
OE=0;
}
void judge_xianshi()
{
addata2=AD_DATA[0]*100;//把數據擴大100,為下面求取小數位后2位做準備
DisplayListChar(0,1,0, "xingxiangrong");//在液晶的第一行顯示字符"XINGXIANGR"
DisplayListChar(1,0,0, "AD="); //在液晶的第二行第0位開始顯示"AD="
DisplayOneChar( 1, 3, AD_DATA[0]/100+0x30); //顯示AD數據的百位
DisplayOneChar( 1, 4, AD_DATA[0]/10%10+0x30);//顯示AD數據的十位
DisplayOneChar( 1, 5, AD_DATA[0]%10+0x30);//顯示AD數據的各位
DisplayListChar(1,7,0, "Vin="); //在液晶的第二行第8位開始顯示"Vin="
//根據VIN=AD*5/256,求取IN3通到輸入的電壓
DisplayOneChar( 1, 11, AD_DATA[0]/51+0x30);//顯示輸入電壓的整數位
DisplayListChar(1,12,0, ".");//顯示小數點
DisplayOneChar( 1, 13, addata2/51/10%10+0x30);//顯示輸入電壓小數后1位
DisplayOneChar( 1, 14, addata2/51%10+0x30);//顯示輸入電壓小樹后2位
DisplayListChar(1,15,0, "V");
}
/***********AD
轉換函數
**********/
void AD()
{
STR=0;
//ADDR這樣如果不是通道0,可以在這邊加一條其他地址的程序
delay(10);
STR=1; //啟動AD轉換
delay(10);
STR=0;
while(0==EOC);//等待轉換結束
OE=1;
AD_DATA[0]=adc0809_data; //讀取AD數據,數據范圍為0-255
OE=0;
程序沒有下載完成
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品日韩一区二区三区
|
天天干天天操天天射
|
中文字幕一区二区三区精彩视频
|
久久毛片
|
久久人人爽人人爽
|
中文字幕日韩欧美一区二区三区
|
美日韩免费
|
亚洲一区二区免费看
|
久久久久久国产精品
|
日韩精品 电影一区 亚洲
|
日韩一区二区免费视频
|
在线视频99
|
青青草一区二区
|
亚洲国产二区
|
国产精品无码专区在线观看
|
国产农村妇女毛片精品久久麻豆
|
午夜视频免费在线观看
|
热久久性
|
国产精品毛片
|
免费一区二区三区
|
国产在线视频一区二区董小宛性色
|
亚洲一区二区三区在线视频
|
免费a网
|
日韩精品一区二区三区视频播放
|
免费视频中文字幕
|
国产成人午夜高潮毛片
|
日韩视频在线观看中文字幕
|
japanhd成人
|
亚洲免费视频一区
|
91精品国产综合久久久久久丝袜
|
成人三级av
|
欧美激情黄色
|
久久一区二
|
亚洲精品一区二区三区蜜桃久
|
欧美a∨
|
日本一区二区三区在线观看
|
日韩影院一区
|
日本久久久一区二区三区
|
国产a级毛毛片
|
女女百合av大片一区二区三区九县
|
国产精品伦一区二区三级视频
|