• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 51单片机  

资源简介

基于51单片机,用于内部AD采样,并用LCD1602显示采样电压值

资源截图

代码片段和文件信息

#include 
#include 
#include 
unsigned char code table[]=“weixintiaoyitiao“;
unsigned char code table1[]=“voltage:“;
unsigned char table2[]=“0.0000 V“;
unsigned char num;
sbit lcden=P3^4; 
sbit lcdrs=P3^5; 
sbit dula=P2^6;     
sbit wela=P2^7; 
sbit key=P3^3;
#define VCC 4.95    //单片机供电电压
unsigned int ADvalue;//存放A/D转换返回的结果
float Vin;           //存放计算出来的外部输入电压
void ADC_P11_init()
{
unsigned int i;    //用于软件延时程序
ADC_CONTR|=0x80;   //开ADC电源
for(i=0;i<10000;i++);//适当延时等待A/D转换供电稳定
P1ASF|=0X02;       //选择P1.1作为A/D转换通道0000 0010
ADC_CONTR=0xe1;    //选择P1.1作为A/D转换通道最高转换速度,清转换完成标志
ADC_CONTR|=0x08;   //启动A/D转换,ADC_START=1
EADC=1;
EA=1;
}
void ADC()interrupt 5
{
unsigned int AD_Dat=0;   //10位A/D转换值
unsigned char Tmp=0;     //临时变量用于将A/D转换出来的2个字节合成1个字节
ADC_CONTR&=0xe7;         //将ADC_FLAG清0,ADC_FLAG=0,ADC_START=0
AD_Dat=ADC_RES;          //默认高字节高8位
AD_Dat<<=2;
Tmp=ADC_RESL;            //默认低字节低2位
Tmp&=0x03;               //屏蔽无关位
AD_Dat|=Tmp;             //高、低字节拼接成一个10位数
ADvalue=AD_Dat;
ADC_CONTR|=0x08;         //启动A/D转换,ADC_START=1
}
void delay(unsigned int z)     //延时
{
unsigned in

评论

共有 条评论