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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本程序是单片机MSP430G2553
" R6 Z. i, H5 b! t; Q+ r3 L                 P1.2----------------------------UCA0TXD 串口发送端
3 U3 E, T* X5 |$ E           P1.1----------------------------UCA0RXD 串口接受端
$ J5 M% s2 G! x9 ?# S# }           P1.0----------------------------红灯指示
3 w- V6 E' Y3 K) o7 W2 v- \           P1.6----------------------------绿灯指示! d' ?: }2 N% _9 C; A- K% m
           P1.5----------------------------模拟电压输入0 K3 N/ N6 [- ]% q1 O
利用主辅时钟为1MHZ,串口波特率9600,) Z# f$ x+ l7 i) f
            波特率:1000000/9600=104. j# X( v% F1 V/ X
                    UCA0BR0 = 104;               // 1MHz 9600* W0 G' t+ R  n+ Y9 U' u& V! Y* Q
                    UCA0BR1 = 0;                 // 1MHz 9600
0 x7 }: ^9 E+ j! z0 [5 {/ z+ q7 _& v+ _, k( T3 p
现象:7 P- L3 I3 [' C5 w: Z) r% c% y
   功能(1)看到 P1.5口输入不同的电压经AD采样后发送 & a$ _8 h& s  c* ~; [
   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。; T% |; S" ], j1 J) M
******************************************************************************/7 u9 d- t3 {2 _9 B# H% R& T3 Y
#include <msp430g2553.h>
8 i/ d# b2 ^3 Efloat adc_voltage;
# G6 c* l0 |0 v& q* ]" Yunsigned int k;
6 b. }6 ?; O' a$ j6 m8 y' {void sys_clk_config(void)
. I+ h3 L. O0 F' K1 V: K9 D{
! q! d6 Z0 C) @   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ0 H- S6 F9 d9 f
   DCOCTL = 0;
  S3 v! v: {# _0 m3 `, ?& V8 [   BCSCTL1 = CALBC1_1MHZ;
2 V5 W) p3 S6 ]( F, N  ^$ m0 O   DCOCTL = CALDCO_1MHZ;4 N/ O  K; I  X! S# ^
}
: e: }! {$ K% o# N& X8 V! Hvoid uart_gpio_init(void)0 W7 @; Y! J0 W7 g# e& o; e
{# E1 g9 V. I1 j& O) G9 f
   //P1SEL |= BIT1 + BIT2;
% i, i- e% E- E& w7 r4 V  Z   //P1SEL2  |= BIT1 + BIT2;0 E, o* l8 S$ w7 L
   //P1DIR |= BIT2;. r7 b- G) x" o
  P1DIR = 0xFF;                             // All P1.x outputs
0 n- [! p" E/ C% x, [: a% ]0 P7 L  P1OUT = 0;                                // All P1.x reset
5 Z* Q+ ]  {3 r1 G  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD
* K0 N) T& ]! r$ K# p( ~  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO& o2 ?! A3 K7 Y* t; z/ y- u
  P2DIR = 0xFF;                             // All P2.x outputs
! `% O& _/ h8 F! e" n0 g$ c9 Y  e}
: H! V  U+ [7 Y, _# {void led_gpio_init(void)
1 Z$ x3 Y/ f$ ]' j) [+ z( \{
' Z+ |0 m. |" @8 P  [}
/ j; `8 W8 A7 [0 F% D( Fvoid ad_gpio_init(void)
& ^6 f% m  i. |& ~7 u{5 x, I. o  U- F* ~& Y1 |7 g
}
. g5 ?5 O+ t3 Y2 K' B$ x, tvoid uart_config(void)
) A1 r$ ^# y+ ~' N) X{
2 f9 F* X4 m8 j  m  u* D7 H. ?UCA0CTL1 |= UCSSEL_2;
1 b) G+ F) `. c9 w  H( y. i6 ?& l  
& g9 x# G" l. ~  UCA0BR0 = 104;                            // 1MHz 96000 a! z3 ]$ x  L& G) Z  R
  UCA0BR1 = 0;                              // 1MHz 9600
- A- D: ^' x* E: l   UCA0MCTL = UCBRS2 + UCBRS0;
* T1 P$ t: ]# a" Z9 `   UCA0CTL1 &= ~UCSWRST;  g$ H9 U- u" V0 s2 r
   IE2 |= UCA0RXIE;* v, g6 ]6 j& y
         # @3 u& x9 K" m  N
}" _1 d# M5 k; d( [
void ad_config(void)
+ {+ c# R' [9 c9 u{. b3 `! m* R* r1 |$ O! J
   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
# x- _0 F6 h6 r8 |( Z2 t. c! X. p5 X3 v; M
  ADC10CTL1 = INCH_5 + CONSEQ_2 ;
  r& X; y1 h- H2 P+ }8 w/ _   ADC10AE0 |= 0x10;. A( r4 o1 Z% R7 J/ p5 _7 K

6 f" [" U% m/ [& Y9 q4 x# d4 H  ADC10CTL0 |= ENC + ADC10SC;
- i0 j0 z6 t9 D$ W+ [% s, h" J* a; w  w9 H
}
& Z: p. z8 x1 n/ Ivoid main()
7 W: `; [2 @% F' L- |6 I7 l{$ y  m  P! M) @" c6 y* M
   WDTCTL = WDTPW + WDTHOLD;2 P5 z* A: _2 T" ?
. [. {* o$ ]3 _8 S6 k
  //sys_clk_config();8 m3 S1 `6 V% }: e! [
* ]3 _+ C6 r% @5 ~
  uart_gpio_init();
& w0 z/ q0 ~; E0 p* g( E& z( o- D4 p! y! j3 c* S
  led_gpio_init();
" ^. z- P3 M9 t2 e( B/ w* @4 J: r7 s: d
  ad_gpio_init();8 B% f. g3 X# J1 V5 h# q3 h
4 k4 L- _) `/ e$ F0 H) ?& |6 A
  uart_config();
$ P2 l# L/ \' H6 u1 O* S0 R2 Y% ]7 o, ?* c
  ad_config();! t: g( M! S+ s" @  R0 ^& S
   __bis_SR_register(GIE);
/ ?. ~. h/ d  Z. u: {   while(1);
, j/ k6 Q* E3 G" s, B
/ P$ ?9 f; t) [( a6 ^8 I- j* n2 R$ N7 q$ t6 F
}: M/ w  ]( ]" f: ^8 ]8 j4 `
#pragma vector = USCIAB0RX_VECTOR* ]; {& I" L5 z; q( ~
__interrupt void USCI0RX_ISR(void)
2 Y  t( U, b6 B) k/ B' I( v9 i  U& C{% Y& f2 X2 s& k$ g. q, I+ \
   while(!(IFG2 & UCA0TXIFG));
' n4 U5 D8 I- f4 K* F/ ?// UCA0TXBUF =0x33 ;// UCA0RXBUF;
5 {3 m- x; H/ N4 M& E/ I- v}
3 R: Q+ J0 a( d3 `#pragma vector  = ADC10_VECTOR: a. l; f# q  P
__interrupt void ADC10_A0_ISR(void)( i$ g9 p8 b- i5 I* }& W
{; N( Y% N' a/ o4 O% Z% e
; {$ |6 f1 y3 ^
  while(!(IFG2 & UCA0TXIFG));: I' B7 S6 R& q4 `6 `, m
   UCA0TXBUF = ((ADC10MEM*33)/1023);$ l# H" H$ E. e" g/ v
   k = 10000;& i0 l: Q4 L! B) G
   while(k--);
1 i! u% h/ v2 {; K; \7 d' v& P" U9 J8 Y& A4 [
}

该用户从未签到

2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享; Z0 L) }* H! Y' Y8 T

该用户从未签到

3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!
( x8 e/ i) z- ~( ]  J3 D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-7 09:59 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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