单片机源程序如下:
//******************************************************************//
#include #define uchar unsigned char #define uint unsigned int uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //共阴数码管段选码表,无小数点 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar table_volt[4] = {0}; //数组,存储电压值 uchar Index; //变量 //*******延时函数************// void Delay_ms(unsigned int t) { unsigned int num; while(t--) for(num=1330;num>0;num--); } //ADC管脚定义 #define ADCST0 P5OUT &= ~BIT4 #define ADCST1 P5OUT |= BIT4 #define ADCALE0 P5OUT &= ~BIT5 #define ADCALE1 P5OUT |= BIT5 #define ADCEOC0 P5OUT &= ~BIT6 #define ADCEOC1 P5OUT |= BIT6 #define ADCOE0 P5OUT &= ~BIT7 #define ADCOE1 P5OUT |= BIT7 #define ADC_Channel0 P5OUT &= ~BIT0 #define ADC_Channel1 P5OUT |= BIT0 unsigned int ADC1 = 0; //变量,采集电池电压值 //*******ADC采集启动函数************// void ADC_START(void) { ADCALE1; ADCST1; Delay_ms(1); ADCALE0; ADCST0; Delay_ms(1); } //*******ADC采集时序实现函数************// unsigned int ADC_READ(void) { unsigned int data; data=0x00; Delay_ms(1); ADCOE1; ADC_START(); Delay_ms(5); data=P4IN; //读取数据 ADCOE0; return data; //返回数据 } //*******主函数************// void main(void) { WDTCTL=WDTPW + WDTHOLD; // 关闭看门狗 P2DIR=0xFF; // 设置方向 P2SEL=0; // 设置为普通I/O 口 P3DIR=0xFF; // 设置方向 P3SEL=0; // 设置为普通I/O 口 P2OUT=0x00; P3OUT=0xFF; P5SEL = 0x00; P5DIR |= BIT0+BIT4+BIT5+BIT6; //ADC芯片接口 while(1) { P3OUT=0xFF; if( Index == 0 ) //如果第一个数码管显示,加入小数点 { P2OUT=table[table_volt[Index]]+0x80;//小数点 } else //其他不加 { P2OUT=table[table_volt[Index]]; //显示电压值 } P3OUT=~(1< Delay_ms(1); //延时 ADC1 = ADC_READ()*20-80; //ADC电池电压采集,放大 table_volt[0] = ADC1/1000; //千位 table_volt[1] = ADC1%1000/100; //百位 table_volt[2] = ADC1%100/10; //十位 table_volt[3] = ADC1%10; //个位 } }
上一篇:MLX90614红外测温模块程序
下一篇:MSP430f249读取DS1302时钟显示在1602和串口
推荐阅读最新更新时间:2024-10-27 10:28
设计资源 培训 开发板 精华推荐
- NCP4371QC30GEVB:Qualcomm Quick Charge 3.0 充电器参考设计评估板
- nfc-card
- ADA4062-2BRZ运算放大器用作反相解决方案电路的典型应用电路
- LTM8052IV ±5A、2.5V、2 象限稳压器的典型应用
- cdsj relay
- 使用 Analog Devices 的 LTC2411-1CMS 的参考设计
- DC2094A-D,用于 LTC2348-16 八路、同步、16 位、200 ksps SAR ADC 的演示板
- NCP606 的典型应用 可调版本的典型应用 (1.25 V < Vout 5.0 V)
- 使用 Allegro MicroSystems 的 A8501 的参考设计
- LED点阵时钟