完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
其中的液晶显示这里就不再多述了
#include "lcd1602.h" uchar d[16]="The Volt1: . V"; uchar d1[16]="The Volt0: . V"; uchar table_num[]={"0123456789"}; uint a[8],b[3]; uint i,j,ad1,ad0,real; void display() { delay(250); uint ptr[4]; ad1=(int)(b[1]);//根据需要,可以更改这里的数值,将量程调到0~1024 ad0=(int)(b[2]);//根据需要,可以更改这里的数值,将量程调到0~1024 //通道A1的值 real=(int)((3.3*ad1)/1023*1000);//扩大1000倍 ptr[0] = real / 1000; ptr[1] = (real - ptr[0]*1000)/100; ptr[2] = (real - ptr[0]*1000 - ptr[1]*100)/10; ptr[3] = (real - ptr[0]*1000 - ptr[1]*100 - ptr[2]*10); d[10]=table_num[ptr[0]]; for(i=1;i<4;i++) d[i+11]=table_num[ptr[i]]; display_string(d,0xc0); //通道A0的值 real=(int)((3.3*ad0)/1023*1000);//扩大1000倍 ptr[0] = real / 1000; ptr[1] = (real - ptr[0]*1000)/100; ptr[2] = (real - ptr[0]*1000 - ptr[1]*100)/10; ptr[3] = (real - ptr[0]*1000 - ptr[1]*100 - ptr[2]*10); d1[10]=table_num[ptr[0]]; for(i=1;i<4;i++) d1[i+11]=table_num[ptr[i]]; display_string(d1,0x80); } void main() { WDTCTL = WDTPW + WDTHOLD; //主系统时钟切换为外部高速晶振 if (CALBC1_8MHZ == 0xFF || CALDCO_8MHZ == 0xFF) { while(1); // If calibration constants erased, trap CPU!! } // Configure Basic Clock BCSCTL1 = CALBC1_8MHZ; // Set range DCOCTL = CALDCO_8MHZ; // Set DCO step + modulation*/ P2SEL=0x00;//P2为I/O模式 P2DIR|=0xff;//P2为LCD输出 P1SEL|=BIT1+BIT2+BIT0;//P1.1和P1.2设置为ADC功能A1和A2 ADC10CTL1|=CONSEQ_3+INCH_2+INCH_0+INCH_1;//序列通道多次转换+最大通道为A2 ADC10CTL0|=ADC10SHT_2+MSC+ADC10ON+ADC10IE; ADC10DTC1|=0x08;//一共采样8次 ADC10AE0|=BIT0+BIT1+BIT3;//打开A0和A1的模拟输入通道 init_lcd();//lcd初始化 while(1) { ADC10CTL0&=~ENC;//关闭采样使能 while(ADC10CTL1&BUSY);//检测AD是否繁忙 ADC10CTL0|=ENC+ADC10SC;//启动ADC ADC10SA=(unsigned int)a;//获取a[]的首地址。首先对A1、A0采样,放入a[0]和a[1]中。再对A1、A0采样,放入a[2]和a[3]中,如此循环下去。 _BIS_SR(LPM0_bits+GIE);//低功耗模式0,开中断 for(i=0;i<2;i++) { b[i]=0; for(j=0;j<4;j++) b[i]+=a[i+j*2];//b[0]=a[偶数]相加之和,b[1]=a[奇数]相加之和,每个b有4组数 } for(i=0;i<2;i++) { b[i]=b[i]/4;//对b[0],b[1]求平均值 _NOP(); } display();//lcd显示 } } #pragma vector=ADC10_VECTOR __interrupt void ADC(void) { LPM0_EXIT;//退出低功耗模式 } |
|
相关推荐
34 个讨论
|
|
|
你不用参考电压吗?
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3327个成员聚集在这个小组
加入小组9571 浏览 1 评论
10369 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10689 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2658 浏览 1 评论
5115 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10689浏览 2评论
10369浏览 1评论
9571浏览 1评论
8228浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 06:53 , Processed in 0.733089 second(s), Total 65, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6281