⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 0809共阳数字电压表
💻 C
字号:

#include "reg52.h"        //52系列单片机定义文件
#include "intrins.h"      //调用_nop_();延时函数用


#define uchar unsigned char//无符号字符(8位)
#define uint unsigned int  //无符号整数(16位)


sbit  START=P3^0;         //启动一次转换位
sbit  OE=P3^1;            //0809输出数据控制位
sbit  EOC=P3^2;           //转换结束标志位

//
//
uchar code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
/* 共阳七段LED段码表  "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "不亮" */ 
               
uchar code  scan_con[4]={0xfe,0xfd,0xfb,0xf7};      //四位列扫描控制字


//
// 

/********1毫秒延时子函数**********/
void delay(uint ms)
{
   uint i;
   while(ms--)
   for(i=0;i<120;i++);
}
//
//
/***********显示扫描子函数**********/
void disp(uint a)
{
 uchar a1=0,a2=0,a3=0,a4=0;
   
 
  a1=a%10000/1000;
  a2=a%1000/100;
  a3=a%100/10;
  a4=a%10;
  

   P1=0x01;
   P2=dis_7[a1]&0x7f; 
   delay(1);
  
   P1=0x02;
   P2=dis_7[a2];
   delay(1);
   
   
   P1=0x04;
   P2=dis_7[a3];
   delay(1);
   //P1=0xfb;
   
   P1=0x08;
   P2=dis_7[a4]; 
   delay(1);
   
}
 



/*******0809AD转换子函数***********/
uint test()
{
  uint s=0;
  float ad_data=0;
  while(EOC==1);                   //等待转换结束
  {
  OE=1;delay(2);ad_data=P0;OE=0;        //取AD值
  s=ad_data*5000/255;
  return s;
  }
  }

//**************主函数****************/
void main()
{
uint b;
while(1)
 {
   START=1;START=0; //开始转换命令
   delay(2);       //延时2ms
   START=1;
   b=test();       //测量转换一次
   disp(b);//显示函数
   
  }
}

//*********************结束**************************//


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -