找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1428|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

adc0808顯示電壓(和adc0809是一樣的)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:412177 發(fā)表于 2022-10-13 10:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//adc0808應(yīng)用
#include<reg51.h>
#include<intrins.h>
#include<absacc.h>
#include<stdlib.h>
#include<stdio.h>
#define int8u unsigned char
#define int16u unsigned int
int8u code SEG_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit  OE=P1^0; // 輸出使能
sbit EOC=P1^1;  // 轉(zhuǎn)換結(jié)果
sbit  ST=P1^2;  // 啟動(dòng)轉(zhuǎn)換
sbit CLK=P1^3;  //        采樣時(shí)鐘
void delay_ms(int16u ms)
{int8u i;while(ms--) for(i=0;i<120;i++);
}
void Display_Result(int8u AD)
{
int V;
V=AD * 500.0 * 2/511.0;//根據(jù)4舍5人法計(jì)算電壓值(放大100倍以使分解)
P2=1<<2;P0=SEG_CODE[V % 10]; delay_ms(5);
P2=1<<1;P0=SEG_CODE[V % 100/10]; delay_ms(5);
P2=1<<0;P0=SEG_CODE[V / 100]&0x7f; delay_ms(5);
}
void main()
{
TMOD=0x02;//定時(shí)器TIMER0工作方式  2        (8位自動(dòng)重裝)
TL0=-250;//        定時(shí)器初值
TH0=-250;//        在TL0溢出時(shí),TH0的值自動(dòng)重新裝入  
IE=0x82;// 允許TIMER0溢出中斷
TR0=1;        //        啟動(dòng)ADC0808(0809)的通道3(0011)                                         
P1=0x3f;// 高4位設(shè)通道地址為0011(3),低4位為clk,st,eoc,oe/ce                  
while(1)
{                                                                                          
ST=0;ST=1;ST=0;//啟動(dòng)轉(zhuǎn)換
while(EOC==0); // 等待轉(zhuǎn)換結(jié)果
OE=1;                        // 允許輸出
Display_Result(P3);//顯示A/D轉(zhuǎn)換結(jié)果
OE=0;                           // 關(guān)閉輸出
}
}
void Timer0_INT()interrupt 1
{CLK=!CLK;                //adc0808采樣時(shí)鐘
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表