找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

157

主题

559

帖子

1216

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
本程序是单片机MSP430G2553 ( I! I5 m) E. G* C3 O
                 P1.2----------------------------UCA0TXD 串口发送端
) n# G$ d1 _1 L3 r& R+ A! j           P1.1----------------------------UCA0RXD 串口接受端
, n: z9 R: Q3 b8 y# \/ d           P1.0----------------------------红灯指示
6 `! E! j* f$ s) F1 T: K4 w           P1.6----------------------------绿灯指示
' h  o5 M2 A6 N# |) n/ w0 k) [& S           P1.5----------------------------模拟电压输入" D9 s/ t6 H) ?/ A, c* p2 r  b0 c" I- [3 z
利用主辅时钟为1MHZ,串口波特率9600,' P/ B8 C% `* }, v3 E: F' v
            波特率:1000000/9600=104
+ `% K/ s9 R. t8 f. j                    UCA0BR0 = 104;               // 1MHz 96009 ]! P0 n9 Q) t9 T8 I- S
                    UCA0BR1 = 0;                 // 1MHz 9600
+ \2 _$ h/ z+ Z# k7 |% o/ ], y
& y: n" l& j3 W% f! C+ L现象:
8 N! z2 x4 {: t* b: Y7 b' U   功能(1)看到 P1.5口输入不同的电压经AD采样后发送 ; s6 ]( V* M8 P! |( i1 Y- L
   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。
  C' Y1 Z2 {, }& T/ {******************************************************************************/' |1 d$ U, R0 T
#include <msp430g2553.h>$ M$ ]; F' X; d* W
float adc_voltage;
2 U, E( s$ P! v1 @0 kunsigned int k;
, P$ W4 z& u% b) u3 M  cvoid sys_clk_config(void)* N! d8 s( ?5 E5 V! L4 d! `' L0 N
{) k7 [0 d7 T' Q$ D8 S9 ]
   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ$ K' G0 _) z1 X# t
   DCOCTL = 0;( w3 n# t% j- U9 Z0 E
   BCSCTL1 = CALBC1_1MHZ;
' q6 O. |3 l; H( ~% i8 e+ @   DCOCTL = CALDCO_1MHZ;
7 Z6 s" p* c6 V* [/ S9 u9 ?. c}* g1 a$ y! i, {3 |$ I$ O
void uart_gpio_init(void)
. f, u+ y% j7 Z) g) p& m{9 k1 z& S; j. a
   //P1SEL |= BIT1 + BIT2;
9 {; e. ~: ]' i9 K3 B) w   //P1SEL2  |= BIT1 + BIT2;
9 x5 ~% G5 l. L5 R+ B# b5 n   //P1DIR |= BIT2;5 h2 C& k" L* i
  P1DIR = 0xFF;                             // All P1.x outputs3 u+ X# v6 ?# A; m
  P1OUT = 0;                                // All P1.x reset0 t* ~+ w: r3 s- \
  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD0 {$ J- Y, v) G
  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO8 f- W3 A6 u  T
  P2DIR = 0xFF;                             // All P2.x outputs7 \1 W0 U, Q5 {) s+ z5 H5 [& h
}
; r6 c5 {) I2 v; s* n. J9 y; X. Nvoid led_gpio_init(void)1 }  v2 R& g1 g0 i6 w
{
) C6 j  c8 v" b' N}) Y0 e3 N/ ~2 Y/ @( ?5 Q
void ad_gpio_init(void)7 n& e+ n% c5 Q+ [* m
{( t) s4 G1 B: o% @  Z% M' j
}) U8 a8 W' |/ }5 s0 B: ?, E" S
void uart_config(void)
! B& m! ~1 D- T8 }8 u" R8 H2 c/ W% b{
% I7 ~8 a% y7 RUCA0CTL1 |= UCSSEL_2;$ C. ~  V# Z- a+ E: w
  5 k  n) Z2 [/ n. Y1 G
  UCA0BR0 = 104;                            // 1MHz 9600- k* @. k# V% Q
  UCA0BR1 = 0;                              // 1MHz 9600
* i3 U: V2 Q3 g4 W; X4 n  G: d8 q   UCA0MCTL = UCBRS2 + UCBRS0;
9 v+ H0 n# Q; j0 Z   UCA0CTL1 &= ~UCSWRST;
: F: X* {3 A" j, O" f% S5 h) M   IE2 |= UCA0RXIE;
! F# S$ p6 t9 W& h0 `( W         
  J2 e( g, b  \2 d: S}( t) l: ]( v& @; O0 T4 ?
void ad_config(void)
' Y$ F* V7 R, ]2 {- y3 S{/ b5 h* Q8 o# B* e: {1 @
   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;/ Q  T& P& R, M+ [

. ]. Y0 @8 ^  f. Q  ADC10CTL1 = INCH_5 + CONSEQ_2 ;
' s9 }7 s9 l) L   ADC10AE0 |= 0x10;
$ s1 x# S* u" f% R  I2 a$ Q8 F3 P- z) f) G
  ADC10CTL0 |= ENC + ADC10SC;) I: ~9 o0 m! g' G+ A; T

0 n. W+ h1 H! m* O+ j3 `, K* j}
- c# X9 v3 Q4 V: H: Bvoid main()2 E. O" Z8 g- r8 x
{! z) ]" K. p" u
   WDTCTL = WDTPW + WDTHOLD;  J# A. R, d. ^/ B3 b
: G+ L" V9 @3 \- \. }: l
  //sys_clk_config();7 ]6 D, H' }0 }; a8 p; M

0 z/ B: e# H/ K7 v  uart_gpio_init();( U" A9 z* c4 \" ]
3 W- n+ C" J1 l
  led_gpio_init();
7 ]( P$ Q0 _4 d1 ~' W* A1 j
4 p) a' }! G0 M& }) M1 w  ad_gpio_init();6 F. h& W0 E% w, ~6 O6 k/ b' Z& _' T
( Q4 C9 a# w" p4 k# d
  uart_config();% t7 M2 e* D+ F! g9 Q1 J# U
. D) g% T, S4 ]. l
  ad_config();7 |* }* b2 t7 T6 K
   __bis_SR_register(GIE);3 j% `/ U' S# V0 M8 ^
   while(1);
# L' q& w) a% D" y2 b+ b
* s% h) c2 z/ e1 A% @" ^
" G( `7 P9 C" j( k1 ?}8 c( f/ f* {- j; b) O
#pragma vector = USCIAB0RX_VECTOR- z/ n1 L! q/ g5 r
__interrupt void USCI0RX_ISR(void)
/ |0 L# B7 r7 Y4 `2 D6 Y{
' ?9 |0 `9 {% N1 ^" |   while(!(IFG2 & UCA0TXIFG));
7 A( z  J; f. i// UCA0TXBUF =0x33 ;// UCA0RXBUF;- {/ u% S5 E: [. ^. m3 U+ M) p: p& ^
}
) d4 C% ]# J, V5 B6 ~. h#pragma vector  = ADC10_VECTOR
9 \. {9 J' K. \__interrupt void ADC10_A0_ISR(void)* {. \' c/ A* S* a6 N
{
9 ~# M) B+ W2 [2 m: p4 \% e. Y* s
  while(!(IFG2 & UCA0TXIFG));
2 z# y% r3 m- |6 Q   UCA0TXBUF = ((ADC10MEM*33)/1023);! Y# R- K% q0 Q: i
   k = 10000;: b5 G* I6 {5 g" b6 m8 [
   while(k--);( G% ^$ U. l7 z& K: Z+ S6 ^& q

$ B: w  u  w7 ?}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

156

主题

503

帖子

1186

积分

四级会员(40)

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

积分
1186
2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享/ c$ }: b1 |2 F6 }+ a

154

主题

485

帖子

1156

积分

四级会员(40)

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

积分
1156
3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!: }' _! h" W' o/ E& N) l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-16 13:47 , Processed in 0.056488 second(s), 32 queries , Gzip On.

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

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

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