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

📄 main.c

📁 单片机c语言程序设计100例--基于PIC+PROTEUS
💻 C
字号:
//-----------------------------------------------------------------
//  名称: 数码管显示两路A/D转换结果
//-----------------------------------------------------------------
//  说明: 调节RV1和RV2时,两路模拟电压将显示在集成式数码管上.
//
//-----------------------------------------------------------------
#include <pic.h> 
#define INT8U   unsigned char
#define INT16U  unsigned int
#define _XTAL_FREQ 1000000UL
//共阳数码管0~9的数字段码,最后一位为黑屏
const INT8U SEG_CODE[] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
//两路模拟转换结果显示缓冲,显示格式为:X.XX X.XX ,第4位和第8位不显示
volatile INT8U Display_Buffer[] = {0,0,0,10,0,0,0,10};
//-----------------------------------------------------------------
// 对通道Channel进行模数转换,转换结果分解存入显示缓冲
//-----------------------------------------------------------------
void ADC_Convert(INT8U Channel)
{   
   //设置ADCON0寄存器的通道选择位CHS[2..0]=Channel(0~7)
   //选择通道后等待

  
   //开始转换--->等待,直到一次转换结束(ADGO还可替换成GODONE)


   //读取转换结果,并转换为电压值


   //AN2的结果放入数组0,1,2单元中,AN3的结果放入数组4,5,6单元中
   if (Channel == 2)
   {


   }
   else if (Channel == 3)
   {


   }
}

//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
   TRISB = TRISD = 0x00;                         //配置数码管输出端口
   PORTB = PORTD = 0x00;
   //设置ADCON1寄存器中的端口配置控制位PCFG[3..0]为0010,AD4~AN0为模拟通道




   //以下配置用于TMR0定时器刷新数码管显示




    
   while(1)                                     //AN2,3通道开始持续A/D转换
   {


  
   }
}

//-----------------------------------------------------------------
// TMR0定时器溢出中断控制数码管刷新显示两路A/D转换结果
//-----------------------------------------------------------------
void interrupt TMR0_ISR( )
{
     static INT8U i = 0;
     if (T0IF)
     {



     }
}

⌨️ 快捷键说明

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