找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

157

主题

559

帖子

1216

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
本程序是单片机MSP430G2553
: f/ d# d+ [! m' t9 [. E                 P1.2----------------------------UCA0TXD 串口发送端
  J# m" R' U% ]2 k& C           P1.1----------------------------UCA0RXD 串口接受端
) v( F0 k8 V$ V# B           P1.0----------------------------红灯指示
  w, N- W+ @  n. k6 U9 U! n) g           P1.6----------------------------绿灯指示8 Y- [. y( i, A  }4 r/ m
           P1.5----------------------------模拟电压输入8 G) d* e6 y# o6 _
利用主辅时钟为1MHZ,串口波特率9600,
% M, L9 e/ Q- o  Y1 k5 L            波特率:1000000/9600=104- ]. _& p0 [! }5 J3 I3 v% \' o4 W
                    UCA0BR0 = 104;               // 1MHz 9600
. h0 d! K2 j1 ?* M                    UCA0BR1 = 0;                 // 1MHz 9600
: E6 H" \' ~8 ^4 @4 k
% j# P. _: K' a1 M7 C# Y现象:
( L4 p) Q$ _8 ~$ \# _  X/ ?   功能(1)看到 P1.5口输入不同的电压经AD采样后发送 0 x& I+ H$ O; a; z# o1 a
   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。
5 V" R, v- O: ^: O, v******************************************************************************/
5 o  w) ?' M1 ]& c# B#include <msp430g2553.h>! l$ I- G5 f' I! p0 A
float adc_voltage;$ u3 u3 [) v$ h, M6 Y0 ]: B6 m
unsigned int k;1 r' E: @  p! S) b7 |
void sys_clk_config(void)5 k+ Y" i7 ]- d' n5 U% O! n( ~
{; ?- m' b& _. O% j1 F2 X
   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ+ v$ S' i8 b) y0 l7 g+ z5 o
   DCOCTL = 0;$ c- _4 n1 o) ~+ C1 j% p
   BCSCTL1 = CALBC1_1MHZ;" P8 [+ g( @, j7 N
   DCOCTL = CALDCO_1MHZ;/ v1 E3 {3 ~4 L
}1 m! B0 x7 r3 p1 `0 F' S" O& c
void uart_gpio_init(void)% b! ^0 T' {- j) ]
{
" s5 O! F9 ]; R6 P+ x  c   //P1SEL |= BIT1 + BIT2;# R+ B- ?% t& Q* w
   //P1SEL2  |= BIT1 + BIT2;5 E$ e/ J- p6 A& z" \, \
   //P1DIR |= BIT2;
3 {5 |3 j, ?7 B& I: c  P1DIR = 0xFF;                             // All P1.x outputs6 X& S- `1 \* J" j
  P1OUT = 0;                                // All P1.x reset# [1 q* K3 M5 g
  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD. J/ b7 O- [& f/ b) Y/ k& F
  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO
4 c& U( T6 X( A6 N9 I6 K. a  P2DIR = 0xFF;                             // All P2.x outputs
% I5 ]' ~% i: p* G}! ?) K) h- b: m# `9 `% b; c" A* l
void led_gpio_init(void)
9 b" J/ }) i0 ]' o  k# t{: C6 s" k) \1 r, j/ |- y+ I
}/ D5 b% L& L+ V7 G
void ad_gpio_init(void)
* g/ F0 [6 i; ^2 U# n4 V* m0 {{
3 @' K( k$ P3 H}4 T/ G# Y) ]" t* ~" Q2 A
void uart_config(void)9 P9 T) w) l# p, k
{$ ?4 V' b# u# A1 Q3 @1 i
UCA0CTL1 |= UCSSEL_2;
9 V! ~  \9 j4 Z3 j6 `  
, z3 \! t0 ]' p, e& d  UCA0BR0 = 104;                            // 1MHz 96005 D3 Q) O5 k3 {
  UCA0BR1 = 0;                              // 1MHz 9600& |! b/ y: R# H
   UCA0MCTL = UCBRS2 + UCBRS0;" Z; d4 v& h  N2 e7 P6 l5 A
   UCA0CTL1 &= ~UCSWRST;4 k) e2 A2 m! _6 B0 c6 j3 Z2 p
   IE2 |= UCA0RXIE;! n4 @- J* g: N- \( f
         + P  u/ w+ Y. m+ m. [; \
}0 Z& }! ^' E2 ]4 G; q% e: b" e
void ad_config(void). c3 l# m& O% P+ f) b. g
{
8 k0 M9 G% [( y% |) [5 X6 }% h) G   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
  P4 S4 c. ^4 J/ l; ^; T: g' P6 ]! ?% W& S
  ADC10CTL1 = INCH_5 + CONSEQ_2 ;9 u) O- M/ m5 z, m, ~+ O( M5 I
   ADC10AE0 |= 0x10;
: c% R& w2 t1 Y, M' y5 l  a  {% F. ]1 v
  ADC10CTL0 |= ENC + ADC10SC;/ |0 O; ?( s" o4 ^6 y: U1 o! I

4 ?0 s8 w. u  k6 ?}% t/ L0 g6 ?+ u) a
void main()" I( y* I; }3 i3 {- G" N
{
5 K) b5 N  @6 G+ O' i& d. J   WDTCTL = WDTPW + WDTHOLD;
& X3 l" u: ^1 U7 |: ?3 w  i% h4 {  C, Y
  //sys_clk_config();0 S, W0 M+ _( B) |( l' l5 v

7 Q% X, o+ I$ t5 {. G  uart_gpio_init();
+ T2 K/ d6 L7 x7 l) D% U# ]0 |8 S5 d/ p; j7 q+ T' C% _" v; k% j
  led_gpio_init();9 \8 W0 a6 j! k& {8 F4 u! c
9 u" z- V; M8 c- t4 ]" g  m
  ad_gpio_init();/ w, t2 l7 p- j5 M

6 _$ p: y' {' K: k4 s6 X- ^2 d  uart_config();' P$ f* L0 ]& `
1 V2 p: }: Q; k
  ad_config();2 n: T4 L# o5 K6 Z- L
   __bis_SR_register(GIE);" M* l, }; H: K% r. x
   while(1);
- I' X( h9 O: O$ B4 q) ?2 q% y/ x2 u; C
; v5 T, l& m7 r. I, n* N: T3 z' m  ^
}
% P2 F# J, L* J- i  A1 Z#pragma vector = USCIAB0RX_VECTOR6 B- D$ L. [; q1 M4 L
__interrupt void USCI0RX_ISR(void)4 N* Q$ g5 l0 b' K2 ^+ x& i
{
8 \' X- v, W' I& ^8 a+ z   while(!(IFG2 & UCA0TXIFG));
9 J3 L9 q- e  i; u! ^+ U// UCA0TXBUF =0x33 ;// UCA0RXBUF;
4 g6 s, D% w1 D# V$ p+ q( \; V4 T}, y8 V) z4 t9 |  O$ ^7 C
#pragma vector  = ADC10_VECTOR6 J  _7 d. Z' x4 a) E
__interrupt void ADC10_A0_ISR(void)% x  p! d3 Z+ i. L3 U3 A& D) Q
{
8 E8 U; P  [3 A! t
3 @  i5 F( _6 i9 _  while(!(IFG2 & UCA0TXIFG));; C! [" w/ @& E, I& P
   UCA0TXBUF = ((ADC10MEM*33)/1023);4 Z# L1 M/ M' z! n5 G
   k = 10000;7 f4 f& g  p* T7 A6 N' p3 E
   while(k--);
  C3 s5 e. y, y' A" n, M8 i
/ A6 \* Y( Y* ?}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

156

主题

503

帖子

1186

积分

四级会员(40)

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

积分
1186
2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享+ D0 D1 O, {# a. B

154

主题

485

帖子

1156

积分

四级会员(40)

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

积分
1156
3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!5 a- Q# B3 u6 I( z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 06:07 , Processed in 0.056514 second(s), 31 queries , Gzip On.

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

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

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