当前位置:首页 > 单片机 > 单片机
[导读] 本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC1

本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC12SC置位一次就可以,但是就需要注意当进入中断后如果不手动禁止中断会一直停留在循环中,因此在采集到需要的数据后需要将ADC关闭或者中断使能禁止才能重新回到主函数,这一点需要注意。

八路单次采集的程序如下:

  1. /***************************************

  2. 八路AD多路单次采集基亚5110液晶显示

  3. 采集模式:多路单次

  4. ****************************************/

  5. #include

  6. #include"LCD5110.h"

  7. #defineuintunsignedint

  8. #defineucharunsignedchar

  9. unsignedcharad0[]="1:0.0V";

  10. unsignedcharad1[]="2:0.0V";

  11. unsignedcharad2[]="3:0.0V";

  12. unsignedcharad3[]="4:0.0V";

  13. unsignedcharad4[]="5:0.0V";

  14. unsignedcharad5[]="6:0.0V";

  15. unsignedcharad6[]="7:0.0V";

  16. unsignedcharad7[]="8:0.0V";

  17. ucharflag=1;

  18. uinttemp0,temp1,temp2,temp3,temp4,temp5,temp6,temp7;

  19. voidInit_Clk()

  20. {

  21. uchari;

  22. BCSCTL1&=~XT2OFF;//打开XT振荡器

  23. do

  24. {

  25. IFG1&=~OFIFG;//清除振荡错误标志

  26. for(i=0;i<100;i++)

  27. _NOP();//延时等待

  28. }

  29. while((IFG1&OFIFG)!=0);//如果标志为1继续循环等待

  30. IFG1&=~OFIFG;

  31. BCSCTL2|=SELM1+SELS;//MCLK8MandSMCLK1M

  32. }

  33. voidInit_ADC()

  34. {

  35. P6SEL|=0XFF;//信号采集端口选择第二功能

  36. ADC12CTL0=ADC12ON+SHT0_8+MSC;//打开ADC+设置采样时间

  37. ADC12CTL1=SHP+CONSEQ_1;//使用采样时序电路信号+多路单次模式

  38. //上面的寄存器配置采样保持触发源选择时ADC12SC,采集信号使用采样时序电路产生的信号

  39. //转换模式为多路单次复转换上面的设置必须在ENC=0的情况下设置

  40. //设置每个通道的输入端口和参考电压,参考电压默认为AVCC3.3V

  41. ADC12MCTL0=INCH_0;

  42. ADC12MCTL1=INCH_1;

  43. ADC12MCTL2=INCH_2;

  44. ADC12MCTL3=INCH_3;

  45. ADC12MCTL4=INCH_4;

  46. ADC12MCTL5=INCH_5;

  47. ADC12MCTL6=INCH_10;

  48. ADC12MCTL7=INCH_11+EOS;//最后一个通道

  49. ADC12IE=BIT7;//最后一个通道转换完成后使能ADC中断

  50. ADC12CTL0|=ENC;//使能转换

  51. }

  52. /*******************************************

  53. 函数名称:Trans_val

  54. 功能:将16进制ADC转换数据变换成三位10进制

  55. 真实的模拟电压数据,并在液晶上显示

  56. 参数:Hex_Val--16进制数据

  57. n--变换时的分母等于2的n次方

  58. 返回值:无

  59. ********************************************/

  60. voidTrans_val(ucharptr[6],uintHex_Val)

  61. {

  62. unsignedlongcaltmp;

  63. uintCurr_Volt;

  64. caltmp=Hex_Val;

  65. caltmp=(caltmp<<5)+Hex_Val;//caltmp=Hex_Val*3

  66. Curr_Volt=caltmp>>12;//Curr_Volt=caltmp/2^n

  67. //参考电压为3.3V,所以计算公式应该为Hex_val*3.3/2^n

  68. //乘除计算通过移位来进行可以有效的提高程序运行效率

  69. ptr[2]=(Curr_Volt/10)+0x30;//个位

  70. ptr[4]=(Curr_Volt%10)+0x30;//小数位

  71. }

  72. voidmain()

  73. {

  74. Init_Clk();

  75. Init_ADC();

  76. WDTCTL=WDTPW+WDTHOLD;

  77. LCD_init();

  78. LCD_showsh(0,0,"电压采集:");

  79. _EINT();//开启全局中断

  80. P5DIR|=BIT5;

  81. P3OUT|=~BIT5;

  82. while(1)

  83. {

  84. ADC12CTL0|=ADC12SC;

  85. LCD_prints(0,2,ad0);

  86. LCD_prints(8,2,ad1);

  87. LCD_prints(0,3,ad2);

  88. LCD_prints(8,3,ad3);

  89. LCD_prints(0,4,ad4);

  90. LCD_prints(8,4,ad5);

  91. LCD_prints(0,5,ad6);

  92. LCD_prints(8,5,ad7);

  93. }

  94. }

  95. /*******************************************

  96. 函数名称:ADC12ISR

  97. 功能:ADC中断服务函数

  98. 参数:无

  99. 返回值:无

  100. ********************************************/

  101. #pragmavector=ADC_VECTOR

  102. __interruptvoidADC12ISR(void)

  103. {

  104. temp0=ADC12MEM0;

  105. Trans_val(ad0,temp0);

  106. temp1=ADC12MEM1;

  107. Trans_val(ad1,temp1);

  108. temp2=ADC12MEM2;

  109. Trans_val(ad2,temp2);

  110. temp3=ADC12MEM3;

  111. Trans_val(ad3,temp3);

  112. temp4=ADC12MEM4;

  113. Trans_val(ad4,temp4);

  114. temp5=ADC12MEM5;

  115. Trans_val(ad5,temp5);

  116. temp6=ADC12MEM6;

  117. Trans_val(ad6,temp6);

  118. temp7 = ADC12MEM7;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭