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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本程序是单片机MSP430G2553
, p' r$ Y8 t* {% a! b                 P1.2----------------------------UCA0TXD 串口发送端
& G4 n% [* ?  K; `" |           P1.1----------------------------UCA0RXD 串口接受端+ W# J6 }9 ]7 e  ^2 t
           P1.0----------------------------红灯指示* H9 ]0 d, [' ]+ b9 G2 V3 T0 k
           P1.6----------------------------绿灯指示
3 Q* i! C$ F( e           P1.5----------------------------模拟电压输入
" ]+ e  f( `9 O& b6 p利用主辅时钟为1MHZ,串口波特率9600,
8 J1 L) J& A/ F  f% J  k            波特率:1000000/9600=104
5 Z1 m) b/ ^6 x* j" r7 g: x1 h                    UCA0BR0 = 104;               // 1MHz 9600
* W# J$ x7 R+ r6 `/ Y4 n                    UCA0BR1 = 0;                 // 1MHz 9600$ x6 a* H/ d9 k4 y! N
5 }5 v8 y4 @: r7 W) E3 _+ p
现象:  I3 P3 @( w7 G- l+ H, u, |9 r
   功能(1)看到 P1.5口输入不同的电压经AD采样后发送 + [# q8 n# a  C  P; V' y2 [
   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。3 S' h  o" H9 n3 M
******************************************************************************/8 D. J" |. Z% [' U: ^- w$ D  z
#include <msp430g2553.h>2 S  [8 o) i7 P5 I
float adc_voltage;
6 K" _6 I& j3 M/ W. Z# x2 }unsigned int k;
' O9 d! j) ^% xvoid sys_clk_config(void)1 G  F) ?1 [" w# H0 x2 g$ `) u+ ~: s
{
* v6 X% }1 R4 N# h2 [5 N/ ?   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ
+ C8 \; R; s& |3 s1 C( d* _7 w   DCOCTL = 0;
5 e  z8 f  v' b9 L- ^   BCSCTL1 = CALBC1_1MHZ;; }( m4 D) H" i6 h' R( T" @% B
   DCOCTL = CALDCO_1MHZ;
8 Z1 J% p  T6 b3 c}
- A( u  H8 j8 _void uart_gpio_init(void)( A; `+ h! J8 I& H  i. ]
{
8 r8 [( Y# Q1 S   //P1SEL |= BIT1 + BIT2;6 l! p. M1 W- P. F& w
   //P1SEL2  |= BIT1 + BIT2;/ G/ [0 `  `, u0 m  H( e. Q
   //P1DIR |= BIT2;
' X2 J6 _9 S  {" N0 A  P1DIR = 0xFF;                             // All P1.x outputs
3 I& M4 _5 a0 T" Q2 S4 q1 n, A  P1OUT = 0;                                // All P1.x reset, Y9 @3 W! s/ z4 F% k9 ^7 c
  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD! L" D% T, M) n! s8 h; o  V
  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO
6 z( k( R- R. b4 u. v) Z3 ~  P2DIR = 0xFF;                             // All P2.x outputs% L, t/ [, g6 k2 g7 D
}
' t0 E0 |* p& J! o( O. e! n* ?% `* Bvoid led_gpio_init(void)1 J$ x: U, B; z# A" I$ v1 d
{4 v0 s  N+ J3 b9 r& u
}
% K9 v# F+ b7 J- a* z! W3 gvoid ad_gpio_init(void), @, K; S2 e/ t; ?4 j6 d5 u6 q: n
{
( _1 ~" n% ^+ s}
- @1 O) r  p. L9 j8 kvoid uart_config(void)
' J' I5 C6 p: U{4 h1 w7 W$ v. V# H6 e7 E0 `
UCA0CTL1 |= UCSSEL_2;
/ Y3 Y- R9 |# e/ W  
' E! H. P4 O. F  UCA0BR0 = 104;                            // 1MHz 9600
1 c' \! q9 c* |. |+ M  UCA0BR1 = 0;                              // 1MHz 9600- ], z/ w4 I" @& v
   UCA0MCTL = UCBRS2 + UCBRS0;
/ [0 F( b7 e' Y7 t0 j   UCA0CTL1 &= ~UCSWRST;& V$ O3 y' l3 G* [8 T" i
   IE2 |= UCA0RXIE;& q" R1 F$ Q0 X7 d) ^' }
         
. U! H, y" n" K* v* N8 M}# a4 B8 Z( E% z, C+ c" ]0 S
void ad_config(void)
$ F) J# J& l- w/ |; S, d{
; U, N7 f, n& u) k0 k   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;- v0 v3 u3 z% [" V5 P/ Y

' z4 {7 I# U5 x; D  ADC10CTL1 = INCH_5 + CONSEQ_2 ;
& m6 b+ j" _$ R% Y; F' i, J4 U   ADC10AE0 |= 0x10;
2 @$ U/ W5 ~% L$ x2 O
0 a# [9 k' V" D( I/ B8 \) ^  ADC10CTL0 |= ENC + ADC10SC;
# Q( q' T. k2 z5 ?) S6 e
6 U( s; q+ D6 K1 o0 z/ X& C}
$ t* ]6 H1 f, l3 v6 I# Avoid main()5 y0 F1 b: f9 r. q7 E  _
{
: C$ g, i: w/ R# n4 O. l0 `6 p$ O   WDTCTL = WDTPW + WDTHOLD;1 Z  q7 c" b. M  B5 z
1 m6 }. w9 }2 Y
  //sys_clk_config();- w3 [+ D4 b9 c! e* F5 b

  b' @# j1 m; n- ]$ e. y  uart_gpio_init();
8 E2 o1 Q: U" a) r+ O/ z$ x4 n: f2 l  h& r
  led_gpio_init();
- M, g3 M5 M& Y+ l& j0 g" @: l5 z7 Z8 S! ]
  ad_gpio_init();
/ f: l; H3 o/ ~( l+ P" K" I- @- H7 V+ A3 G8 V6 ?
  uart_config();
5 j% C: L" b* |% _: h  c& }, i7 {% D' P
  ad_config();
$ g5 O9 }% L; i" d# p   __bis_SR_register(GIE);
* p6 G: _& j0 v1 J! i: W1 ^7 F   while(1);* G! Z4 ], g- o* N1 G/ k% t

1 r& Z$ E! X/ M9 q2 S; P' o& |6 w! z& I; q9 w9 L. |
}3 S) U4 C; ?& |
#pragma vector = USCIAB0RX_VECTOR! M) i" n! j4 H0 n! [
__interrupt void USCI0RX_ISR(void)4 ?: o  s  B( f5 C8 k/ L
{
( \- l, G& R5 c% V1 N: s+ b   while(!(IFG2 & UCA0TXIFG));8 k* A1 S' z' g3 a9 B. I  b
// UCA0TXBUF =0x33 ;// UCA0RXBUF;
! [& h6 _+ n6 k( B! I}  _' U0 P0 ^" |$ f% F8 _9 K# G+ {/ h
#pragma vector  = ADC10_VECTOR# D9 ?7 }$ r9 l8 s7 f; F
__interrupt void ADC10_A0_ISR(void): ~* j( q. |1 Z4 j8 N' o
{7 ]! _' u1 _1 w7 V

2 E3 @' O0 H$ _  N7 t  while(!(IFG2 & UCA0TXIFG));
, A1 ]- W* n% H) t  v   UCA0TXBUF = ((ADC10MEM*33)/1023);
8 Y+ i. T& M2 K  o   k = 10000;
/ z( m3 `; x9 R   while(k--);6 }: W6 J( [# G
0 p. r( V/ [- ]4 I6 ]. Q' |
}

该用户从未签到

2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享
2 q" O# f$ s- w/ i5 c$ x+ n4 t

该用户从未签到

3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!
" L7 o# c0 p! L/ W0 V
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-12 08:20 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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