找回密码
 注册
关于网站域名变更的通知
查看: 483|回复: 2
打印 上一主题 下一主题

[代码] 单片机MSP430G2553 AD采样电压后经串口发送至PC

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-6-29 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本程序是单片机MSP430G2553
, d% ~% Y& x+ Y/ ~; {% C1 x                 P1.2----------------------------UCA0TXD 串口发送端
& ?. ^3 m! A3 t/ h2 \, K3 a' L           P1.1----------------------------UCA0RXD 串口接受端
7 l3 d- S. Z0 W$ d           P1.0----------------------------红灯指示/ u, E" ?8 \# p% w* g. k
           P1.6----------------------------绿灯指示' N/ C2 I* A5 F
           P1.5----------------------------模拟电压输入2 S, N9 w: n: W# B: q
利用主辅时钟为1MHZ,串口波特率9600,' u9 H* K2 u8 N. |9 p& x
            波特率:1000000/9600=104
& P! O& F* k5 _& r3 n                    UCA0BR0 = 104;               // 1MHz 9600- \% F) s7 p3 q9 F$ `" O3 }' ]9 l7 B. I
                    UCA0BR1 = 0;                 // 1MHz 9600
! q4 B4 c! h  T) |: I. c% f) B# Z
& N/ L. h8 F) _' r% K+ i现象:1 F" {& Q# N! e  y1 H/ s
   功能(1)看到 P1.5口输入不同的电压经AD采样后发送
8 w9 B+ y) c. }   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。% f; U+ g9 ~5 V
******************************************************************************/
$ i8 a4 U; g& o9 d+ N#include <msp430g2553.h>4 g/ Q# Y1 }* ?
float adc_voltage;
% q1 ~# }! j- v( _8 G( C0 runsigned int k;
1 L9 A: a, w0 i! s! Xvoid sys_clk_config(void)
3 t' s  K$ ?, f# W4 Y2 d{0 I$ A/ `& }8 Y( t! a
   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ
4 ]6 F3 _/ W, K6 R5 I   DCOCTL = 0;
) ~# P  y& Y- M- Q4 t2 x   BCSCTL1 = CALBC1_1MHZ;. }& T7 Y% M* P- n# E
   DCOCTL = CALDCO_1MHZ;
" m( s$ M* d# {. c}: e& U' P9 u% B) ^
void uart_gpio_init(void)6 i% |9 X0 y4 D0 F2 n
{
2 |$ }% I% w  x1 R2 o8 s   //P1SEL |= BIT1 + BIT2;
7 U7 p! I6 M( R6 ~& n   //P1SEL2  |= BIT1 + BIT2;. A% n' b7 s# H$ S
   //P1DIR |= BIT2;5 x* s" ~1 r" f2 ?
  P1DIR = 0xFF;                             // All P1.x outputs
9 x3 w3 t+ l6 F, H  P1OUT = 0;                                // All P1.x reset
1 D9 U+ ^. j+ q: ?! A4 I  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD" D/ S( q5 k0 ?* e  D, B
  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO
. R* u) ]5 h: W. J: I# F  P2DIR = 0xFF;                             // All P2.x outputs
. L( l4 `2 D" r0 }}% z: N2 m9 p5 }) f+ j! @$ }& j# q
void led_gpio_init(void)4 E) @% R( q8 s3 k2 b
{
$ ]2 n, M7 d1 K8 g! ]$ v7 d}8 q- |8 ]' F* b' A: w) Y
void ad_gpio_init(void)
7 i0 }& Y3 X9 R/ h/ ^+ N/ z- r{9 h6 w% f: s! _
}
( W" e4 P) a: x( L, k9 F. fvoid uart_config(void)
  g+ V6 X- n2 c, c{
  L( `. }) v0 E/ q" d/ l2 T5 TUCA0CTL1 |= UCSSEL_2;
3 i+ ^0 S( X) \3 I  
" B7 c5 i! f1 v& f5 ]2 ]  UCA0BR0 = 104;                            // 1MHz 9600- K3 P/ X4 q0 I$ X
  UCA0BR1 = 0;                              // 1MHz 9600
/ V- V! K) V* q  ~: r   UCA0MCTL = UCBRS2 + UCBRS0;
  J- M0 @( O% S% Q: A1 c   UCA0CTL1 &= ~UCSWRST;( o4 \+ S# \- m$ e4 f$ d
   IE2 |= UCA0RXIE;* p8 d" @7 L6 Z9 ^2 W# W0 ?7 M
         
/ \9 P/ b. ?6 L( s/ j}
9 x+ k5 K! \8 ?* R  j8 ^# ?) zvoid ad_config(void)7 S, ]0 Q- R) |/ o8 _1 S
{
( k( r- h9 }4 O, o) j0 W   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
; c3 g3 R7 p7 ^% C. {- P% E; W7 x8 f
5 J& z1 I" w4 |: V5 V  ADC10CTL1 = INCH_5 + CONSEQ_2 ;5 U0 E6 X' @+ v# v) a0 D$ h% v
   ADC10AE0 |= 0x10;
+ r& X7 k8 x3 y. v; }" P# }2 |: f- i6 W' `7 a* t. U; H6 H
  ADC10CTL0 |= ENC + ADC10SC;
9 L$ M+ z, w/ S/ P, k. Y; k# ~: ?9 H0 o" C# x  I. v
}
' T8 F5 ?8 }% E) T& h$ O5 {void main()8 e$ W- J$ |; t5 [+ J) s8 ?
{
% |; T* g9 F5 h- Q, F8 ?   WDTCTL = WDTPW + WDTHOLD;9 K2 S+ v* V4 ^
2 ]( S  U0 A5 @
  //sys_clk_config();
0 t8 D+ ^( ~& L/ d2 v9 h4 V6 ?" J' f
  uart_gpio_init();
3 P$ j+ e: n, h1 _3 l& C! U
" x3 V& n) F# y, |) ^( F  led_gpio_init();" H: ]4 t# @4 ?

) [0 u" n9 y# B/ S- C4 ?# }0 E( i; ^  ad_gpio_init();5 m9 P7 a# C* o- l  |# T

  a4 S, o8 Z$ f! h  uart_config();
3 a/ v2 ~* t- V; r4 ]  J) p  R, @  O- g3 ?4 [( L' |! {7 Z. p
  ad_config();
+ m' ]4 f7 L7 _0 [) S% M   __bis_SR_register(GIE);
: [; G) O. L; A   while(1);; \7 K5 [+ w# `
2 v' y6 x5 o+ Q5 B2 }# y
% q4 d7 r: V6 ]1 Y
}
$ S, i: I( @+ v0 C+ E5 U1 g#pragma vector = USCIAB0RX_VECTOR3 r( Y" y7 B: r# G/ l( x. }
__interrupt void USCI0RX_ISR(void)8 F- _- I" R0 |- J+ ?
{* n' f9 K: X2 j) W* b
   while(!(IFG2 & UCA0TXIFG));
! S7 V" F1 Z1 [* K8 n// UCA0TXBUF =0x33 ;// UCA0RXBUF;
, _) ]! V5 ]& p- |0 T}
4 s; `1 ^4 C1 `. B#pragma vector  = ADC10_VECTOR; D* u4 x" ~/ M: }. ~- Q( @- q4 S1 m
__interrupt void ADC10_A0_ISR(void)
" s$ U$ h7 _) Q1 ^/ m" e{9 V# y" E6 R, z4 u. c) O

8 ~1 X8 F6 y& I1 C8 t$ C, b  while(!(IFG2 & UCA0TXIFG));
0 S" q; D: r" l: p. F7 ?   UCA0TXBUF = ((ADC10MEM*33)/1023);% a4 |7 }1 {' T# l
   k = 10000;
+ U3 ]0 F# B$ i% M+ j   while(k--);
, A+ O' ^- e7 {3 g! G
% X/ T# i* U- u: N; z6 H3 {6 n}

该用户从未签到

2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享
% Z" Q5 P  M: W$ C- x+ ]

该用户从未签到

3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!
  b. ?* S, A* @  [5 d$ g: l. X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-4 18:40 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表