找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

157

主题

559

帖子

1216

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
本程序是单片机MSP430G2553
. W2 d. a: W0 p% o4 z5 K                 P1.2----------------------------UCA0TXD 串口发送端
- {0 H4 D5 h3 p. B- a7 f           P1.1----------------------------UCA0RXD 串口接受端
6 N" `+ F. r( g6 q7 r# b           P1.0----------------------------红灯指示
% Q0 B, g- ], o           P1.6----------------------------绿灯指示
3 I) X5 J6 v% j  Y' M: c           P1.5----------------------------模拟电压输入; P$ ]; d+ ^( a3 V, F
利用主辅时钟为1MHZ,串口波特率9600,% p* @" V& `0 j; {
            波特率:1000000/9600=104
7 P; h+ Y' g+ S3 W$ C$ ~: a                    UCA0BR0 = 104;               // 1MHz 9600
2 y3 C3 `, S/ r. ^                    UCA0BR1 = 0;                 // 1MHz 9600% K9 ^0 B- r2 o( ~1 q8 V* G; }

! i$ R7 V- I6 i5 h7 m现象:
2 |( `) v) L  s  Q3 h   功能(1)看到 P1.5口输入不同的电压经AD采样后发送 : @: D8 q8 L( Q8 r
   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。
4 }! Y0 O+ \0 [8 {- a" q6 ?******************************************************************************/$ [0 }" d7 q8 H4 z1 z9 j8 t
#include <msp430g2553.h>/ f* B8 z& ]$ U5 ?! _
float adc_voltage;+ z) I) v& J) k5 x/ ^
unsigned int k;
( w& b6 X! @- T. G9 u" J" j! nvoid sys_clk_config(void)
$ j+ p, f( Z* [3 g; t/ M( c7 T' G( U0 d{
" L, B4 {- i2 G: {   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ
/ C+ H& x( I! u5 G$ x6 m9 B: }5 Q   DCOCTL = 0;. b( g  f( R7 _0 m
   BCSCTL1 = CALBC1_1MHZ;
6 O' s; ~& ^! Z- L! O   DCOCTL = CALDCO_1MHZ;
3 z' K4 `( E+ r% b}# E( ?7 j' c3 E  t& Z) @
void uart_gpio_init(void)
' l! g0 }# T# s  z{6 i6 w4 W, D$ ]
   //P1SEL |= BIT1 + BIT2;/ n$ b* J( ~3 m$ G6 a6 h
   //P1SEL2  |= BIT1 + BIT2;
8 ?% M* ^0 T* O1 |8 T   //P1DIR |= BIT2;
& d, n9 P% `2 i# L/ |8 k* F% r' X  P1DIR = 0xFF;                             // All P1.x outputs
) C/ R7 {' e' @+ T% w7 W  P1OUT = 0;                                // All P1.x reset. h1 R1 C( N) b8 C' a! N& T; @
  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD9 G9 f( U( [# |7 W  T
  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO
& I  n7 `) q& Q  }1 m  W% |  P2DIR = 0xFF;                             // All P2.x outputs+ \- ]5 n& L* u. Y- X+ M4 t) W- L; [
}
9 f. K( D2 [& S0 ~; Avoid led_gpio_init(void)
! Q( G4 R5 f7 f1 U' ^4 N% u{) O* ~; j) X1 f1 `; ~
}
, N& H7 C1 q8 Z8 d+ J4 |% qvoid ad_gpio_init(void)2 q- x2 x- g" h5 q
{
0 W( k" ?4 z1 I8 [" [3 D}$ B: @: m/ |1 @' O3 C. U+ j
void uart_config(void)
9 c1 y$ h5 U( _# o{! U/ @: l. C0 V9 U/ W) W4 o2 t
UCA0CTL1 |= UCSSEL_2;) n5 |% m3 \. M/ H- O0 d7 I: k
  ( |5 |- M' K0 Z/ K5 Q* o
  UCA0BR0 = 104;                            // 1MHz 9600
& }7 w. }3 N( h3 R  UCA0BR1 = 0;                              // 1MHz 9600- w) ^: Z2 X, c" m% l) \9 C  ~
   UCA0MCTL = UCBRS2 + UCBRS0;
; G, e( F/ m+ v2 ]: i   UCA0CTL1 &= ~UCSWRST;; s& E, z2 \8 W# b4 W
   IE2 |= UCA0RXIE;4 g* x& Z" H$ ~: f* T$ g
         
: i# B" i# \" k% x( ?5 n}1 y! s, d$ a# a2 o/ v3 y
void ad_config(void). @- ^8 v# d1 @. D( g1 g: X
{
  C5 W  o7 h3 K9 A0 d   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;2 A! T$ y. F) o8 N- q

: _% P! a- Q  S1 l  ADC10CTL1 = INCH_5 + CONSEQ_2 ;  S" r0 L6 Y4 X- h4 k$ |( V& K
   ADC10AE0 |= 0x10;
, I* [* @' q# U( `1 V! \8 w/ S
- W+ T8 U- m& R/ B9 X  ADC10CTL0 |= ENC + ADC10SC;
# E9 k+ U1 E+ r7 Y+ S# j
/ }0 [0 L8 D: `$ M% e! ^}. z7 I6 K7 r1 V/ K  [8 Q8 t
void main()3 t! ~: p# {. b# L
{
, Z  I3 _3 e3 G, X& m7 w' L7 \+ T  b   WDTCTL = WDTPW + WDTHOLD;
+ o7 G% l- P4 {; [- O) A
+ t: O+ m5 N0 P; z  //sys_clk_config();
& D# @0 a3 K4 P( S2 }' M1 \; K  x) K7 K& G6 p
  uart_gpio_init();
1 _! \1 K2 g- K) D" s0 Z, i7 I7 I0 V1 r. w0 E" _
  led_gpio_init();: I3 x" h, P2 Z; C  p3 g
' c; Z$ {! {/ I7 Z5 h# R% U. ?
  ad_gpio_init();
' R7 c6 ?+ B$ U% f6 j( d- X3 N* {" x, I4 L: {
  uart_config();/ w5 u6 i: r: o( V" G- q: x( m/ Z

: |  ?( c3 {7 \+ s! U* ?1 A. V" o  ad_config();
* }: @7 E$ T4 r7 T8 E8 Q' a0 S   __bis_SR_register(GIE);& x: j$ E* q0 n0 C: j9 e
   while(1);
& h( b) b# K# x9 N1 I. p6 p! V( _
1 M4 g! w' o3 l0 ~9 @$ G; `5 `4 V" r: Y+ v# j$ R  ]
}8 @4 v9 |% Y. B/ @# {4 B
#pragma vector = USCIAB0RX_VECTOR
5 K& t' }" ~3 h) }; q__interrupt void USCI0RX_ISR(void)/ |4 ^, A  v4 j. @8 M: z: [$ Y5 v
{) y0 p  q! h! m* Y
   while(!(IFG2 & UCA0TXIFG));9 c, e: F1 N: I/ |  Z  \$ A
// UCA0TXBUF =0x33 ;// UCA0RXBUF;
2 e$ ~' b& Y! m7 J1 ~, d) x}
, ^  q  y' o3 S% c1 l. [6 Z#pragma vector  = ADC10_VECTOR
- B$ A9 h5 n$ n* [) ~+ ]__interrupt void ADC10_A0_ISR(void)
: z1 p% X! v5 E* U{9 J* L: a. h! S) B
; }( }# M7 {( n2 ~9 J& ]0 J% R
  while(!(IFG2 & UCA0TXIFG));( t  x( _! `- f0 C: B( {2 j
   UCA0TXBUF = ((ADC10MEM*33)/1023);+ B# ^  z# _' L- {
   k = 10000;
) ~2 X2 n# l- W3 A$ p   while(k--);
' A) c/ R# q. @7 {. D* W5 B# ?& ~4 U" _9 |, F; k
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

156

主题

503

帖子

1186

积分

四级会员(40)

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

积分
1186
2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享
. ?8 R4 u, b- K

154

主题

485

帖子

1156

积分

四级会员(40)

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

积分
1156
3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!; D# F; |" c6 z( v# G, l) a, i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

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

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

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

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