找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

电巢直播8月计划
查看: 60|回复: 2
打印 上一主题 下一主题

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

[复制链接]

157

主题

559

帖子

1216

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
本程序是单片机MSP430G2553 ! x/ e8 Z& g( u: j) i
                 P1.2----------------------------UCA0TXD 串口发送端1 ?) ?5 ^& r2 k
           P1.1----------------------------UCA0RXD 串口接受端, f& ^! C9 m" i, j0 O* [+ O. J3 o# o
           P1.0----------------------------红灯指示0 [8 e7 m( D% o& L  R4 v0 `
           P1.6----------------------------绿灯指示2 b2 p2 Y4 j! W) p
           P1.5----------------------------模拟电压输入
6 O. k7 O" A5 k# r; f1 H' Z4 P利用主辅时钟为1MHZ,串口波特率9600,
& \; ^0 q7 p8 T+ v3 N! I. i            波特率:1000000/9600=104- Q1 u7 t6 F& M& ?
                    UCA0BR0 = 104;               // 1MHz 9600" F8 S" s6 D( y, |
                    UCA0BR1 = 0;                 // 1MHz 9600
' p. Z- H( r+ Z1 H  U0 z
4 I, ?$ F( t9 h! C现象:
2 p) F4 m# y" X5 B% R) W   功能(1)看到 P1.5口输入不同的电压经AD采样后发送
. n$ T& p" N! w   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。
, J  k: t8 `) C! o0 @  R5 m& q* Y******************************************************************************/7 H9 [: b$ U3 p* ]/ U1 A! t
#include <msp430g2553.h>
4 `3 ]5 J! ^& F, {8 K! [  j. tfloat adc_voltage;2 f( E: ], F$ G
unsigned int k;1 d2 {3 X! g% g! X  Q" d3 Y- b
void sys_clk_config(void)
7 v/ g# z/ }# C9 \{
& G4 w* J# `5 J" [$ S$ {   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ
8 ]# X) |. h5 `7 O* |& _0 {   DCOCTL = 0;
" @1 D) F+ [5 x# a: q! Q% g( q' ]   BCSCTL1 = CALBC1_1MHZ;
$ M: M/ u6 W7 |   DCOCTL = CALDCO_1MHZ;
  l: x+ A8 n) d; L  \6 r( ?7 |}8 O3 }+ D' K: a4 k; O% H; W1 B' Q8 I
void uart_gpio_init(void). Y$ @. ^9 M3 y1 }
{" Z0 p6 G* `* V6 r- W. ?
   //P1SEL |= BIT1 + BIT2;% I, _- O) v! Y, w1 b: a: X& g
   //P1SEL2  |= BIT1 + BIT2;' `" o% \; S, _1 b# {2 ?. c
   //P1DIR |= BIT2;% v4 E+ H  s# o+ n- ~, Q0 o0 K+ X% M
  P1DIR = 0xFF;                             // All P1.x outputs' G% z" C6 `3 D
  P1OUT = 0;                                // All P1.x reset
2 N8 {8 _$ n) V/ f% V2 ?  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD
: r: f" P+ a. U  |& M  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO
$ _2 ~# H* q! |4 b/ W" r" _1 Q$ j  P2DIR = 0xFF;                             // All P2.x outputs( S1 _' ~. n4 ~' z* w$ q
}" @" M$ E4 i+ J) l$ ~
void led_gpio_init(void)! o& [! V) j" O$ X' C) A
{3 g% a; P7 G$ m7 w  T7 g
}' P5 l3 w' i% R( I' Y7 n- r2 e
void ad_gpio_init(void)
$ Y8 w3 b3 a. f" @" ~{  ]9 [; l* P% h6 Q+ T; i+ `
}
% \5 ^. B1 A$ N3 P& z$ a  kvoid uart_config(void)" w1 B+ D, `& e
{7 }) w7 f- _' z8 I
UCA0CTL1 |= UCSSEL_2;, i% E7 [6 C/ n  ]
  5 N1 v5 E( C6 l1 P, ]
  UCA0BR0 = 104;                            // 1MHz 9600
9 ]* X0 P. Y0 A6 d: M1 v: L6 B# D  UCA0BR1 = 0;                              // 1MHz 9600
1 C3 D. X; r6 l1 q& U   UCA0MCTL = UCBRS2 + UCBRS0;
0 G. p" K: r3 x& E, P$ M   UCA0CTL1 &= ~UCSWRST;
' ?! o. X% O5 U" U! C4 W% ]   IE2 |= UCA0RXIE;
/ t$ W$ X9 d4 j. ^         ( O# u9 R7 e( P6 @. J
}1 k8 n- d8 m* y' B0 K9 _0 h
void ad_config(void)
: b4 q- K8 B2 D/ h' O' I* {{
1 A7 n" T. {) x& [6 p   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;4 J, e, o4 F  V! e; u
$ r8 V. O. K% P) Y
  ADC10CTL1 = INCH_5 + CONSEQ_2 ;6 t& |4 s- \9 u8 i8 J2 B. Y
   ADC10AE0 |= 0x10;
1 m5 g! ?% U1 N( |
: W8 x) V3 i" V# p7 v$ J  ADC10CTL0 |= ENC + ADC10SC;
1 G1 t6 B: |7 l# X% r- V# }" k- w: w/ a6 H% ?7 m" @8 I% `5 L
}+ H& f/ E; N% K& w1 k# k
void main()% \: y. c" w: i2 a7 X. y$ ]1 ]' k8 o
{7 F! g- m* f: c! g% [
   WDTCTL = WDTPW + WDTHOLD;
9 Y. g& D9 C2 Z* b( _
3 [/ v4 ]* t1 k/ T( n) \. U  //sys_clk_config();! E9 O. Y& j3 |$ B, n5 g" l8 A
7 R! t/ W, y2 N
  uart_gpio_init();
: J6 S2 S* z2 Y. n' m" @3 s4 {  H5 t5 m4 c
  led_gpio_init();# G" [* O# f- F/ D! Z" v* x5 f

1 p6 X# j/ r9 u0 X# |  ad_gpio_init();3 F5 W1 p; h; q" M3 O% g" a, V
# A+ O- r* W0 I4 R* B
  uart_config();
, K7 z' M( ^' B% y( a1 k% q+ b8 v. ?$ W' E2 Q; s$ l7 W
  ad_config();
8 \9 h& y9 [! C8 P6 M! g/ T   __bis_SR_register(GIE);
8 ?* M3 x) {, d9 a; o   while(1);! N$ N( E8 K: o7 y; J* `3 J1 k

- J) ~- |* p2 G. M' C( B" L+ f
  U& @6 ^: H8 B. z3 v3 O! n, h}9 }8 O, {; p4 f
#pragma vector = USCIAB0RX_VECTOR0 P. N/ @' }5 X2 S9 g; T) x
__interrupt void USCI0RX_ISR(void)
' d1 ]" a" p. x' N/ P! y; a{
7 Z) z4 B+ K' O   while(!(IFG2 & UCA0TXIFG));* ~# v0 P/ P0 h& m# J
// UCA0TXBUF =0x33 ;// UCA0RXBUF;2 B5 n  l/ I2 p9 U7 J
}
' a. n+ x7 Q# Q7 L0 ]( X2 r9 v#pragma vector  = ADC10_VECTOR, }. s8 T# c& w2 `
__interrupt void ADC10_A0_ISR(void)* v. I8 I' Z: m, d, W( q) h, b" H
{
# D5 F" ?/ \5 y+ n4 b" T7 x$ @8 q* n
  while(!(IFG2 & UCA0TXIFG));
1 F$ t. Q. |3 ^$ h+ ?   UCA0TXBUF = ((ADC10MEM*33)/1023);
  s( U. [# T6 D* L# P& r   k = 10000;
+ e! G# j$ l8 N+ k" }( d) t# l   while(k--);) a1 S6 o# w- O. t. i3 a/ A9 Y
- \* i; w, A* p# T& w
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

156

主题

503

帖子

1186

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1186
2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享
2 i7 {% ^& P; l) @* u, i

154

主题

485

帖子

1156

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1156
3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!; }7 L( j; [0 M% [/ R% \2 y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-7-1 06:20 , Processed in 0.055480 second(s), 29 queries , Gzip On.

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

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

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