完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
本帖最后由 346500452 于 2015-11-12 17:46 编辑
void Trans_val(uint adc_v) { uint val1,val2,val3,val4; val1=adc_v/1000; val2=(adc_v/100)%10; val3=(adc_v/10)%10; val4=adc_v%10; dis2[6]=shuzi[val1]; dis2[8]=shuzi[val2]; dis2[9]=shuzi[val3]; dis2[10]=shuzi[val4]; xian1(); //显示第一行 xian2(); //显示第二行 } #pragma vector=ADC_VECTOR __interrupt void ADC12_ISR(void) { static uint index = 0; results[index++] = ADC12MEM0; // Move results if(index == Number_of_Results) { ad_flag=1; uchar i; unsigned long sum = 0; index = 0; for(i = 0; i < Number_of_Results; i++) { sum += results; } sum =sum/200; //除以200 sum=sum*3000/4095;//转换结果,将AD12中数据线性平均后的结果,乘以量程再除以最大数字值, //转换为可以在LCD上显示的模拟电压值,量程扩大1000倍,是在后面的数字切割算法中使用方便。 Trans_val(sum); } } void AD_init(void) { ADC12CTL0 = ADC12ON+SHT0_2+MSC+REF2_5V+REFON; //开ADC12内核,设SHT0=2 (N=4),选用内部参考电压为2.5V //内部参考电压打开 //应该加上MSC和SHT ADC12CTL1 = SHP+CONSEQ_2; //SAMPCON信号选为采样定时器输出 //应该加上CONSEQ_2 选择单通道多次转化 //ADC12内部参考电压设置 delay(500); ADC12MCTL0 |= SREF_1+INCH_0; //R+=3.3V R-=VSS ADC12IE = 0x01; ADC12CTL0 |= ENC ; //转换允许(上升沿) ADC12CTL0 |= ADC12SC; _EINT();// 使能转换 } /************************************************************/ void main() { WDTCTL = WDTPW + WDTHOLD;//禁止看门狗复位 IO_init(); //IO初始化 InitLCD(); //初始化1602 P6SEL|=0x01; // 使能ADC通道 A0 AD_init(); } |
|
相关推荐
1个回答
|
|
|
因为你的主程序都有问题,建议先从最简单的点灯程序学起。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3327个成员聚集在这个小组
加入小组9556 浏览 1 评论
10355 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10677 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2657 浏览 1 评论
5114 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10689浏览 2评论
10369浏览 1评论
9571浏览 1评论
8228浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 23:17 , Processed in 0.652647 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5364