找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

157

主题

559

帖子

1216

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
本程序是单片机MSP430G2553
  x) r/ p) Z: D7 q" b                 P1.2----------------------------UCA0TXD 串口发送端
* ^. q, |5 b' {6 N           P1.1----------------------------UCA0RXD 串口接受端
' T, w# N  h. S# l5 \           P1.0----------------------------红灯指示
3 w: `. O- ?8 P$ t; W0 O           P1.6----------------------------绿灯指示
1 {; B/ ?5 A; N           P1.5----------------------------模拟电压输入0 j* N% L3 Y: V' ~; S
利用主辅时钟为1MHZ,串口波特率9600,2 Q' [; \+ F/ [, `* L2 _
            波特率:1000000/9600=104
6 |" {  x- N: n6 a1 f" @                    UCA0BR0 = 104;               // 1MHz 96006 i3 O9 H0 [$ u! [' ?
                    UCA0BR1 = 0;                 // 1MHz 9600  g; @! y: a0 B

* b* A, ^! t: b7 w6 k; Q现象:" B9 Z/ }8 B3 b* W4 e9 E
   功能(1)看到 P1.5口输入不同的电压经AD采样后发送
5 O* a# O/ l( q7 S1 i' B+ I1 B   功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。2 e4 X# i: H9 G' @- M  P3 F  ?
******************************************************************************/! {: Y5 T/ U9 ?6 j3 V1 V
#include <msp430g2553.h>
; n9 D$ f8 |: I8 Ofloat adc_voltage;( o1 X/ L# n' b8 d/ n: [
unsigned int k;  m0 d9 p) ]9 G" r4 g2 c# n& s
void sys_clk_config(void)7 p, p; D  m! N& b7 w
{* s# [# b- ?/ A( {. k1 X; C& g
   //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ( ]  J$ Q" x8 `7 R: p
   DCOCTL = 0;
8 _! K4 ^$ w' E% P* A   BCSCTL1 = CALBC1_1MHZ;
$ p; D/ ?/ X- o& w& ~   DCOCTL = CALDCO_1MHZ;7 j( K' g! \& t2 W  J. O
}
# a$ b7 [1 W2 F5 [: x+ h/ {void uart_gpio_init(void)
0 o7 p& I0 r7 J: ~1 @8 X{
0 N8 ~+ K4 B4 W+ y3 h2 k2 s   //P1SEL |= BIT1 + BIT2;
7 Z9 w8 z, C1 _. `" g, D   //P1SEL2  |= BIT1 + BIT2;
- k6 Q) }& X0 L  T# E3 V   //P1DIR |= BIT2;
' W: ]: `1 R& }6 _; o  P1DIR = 0xFF;                             // All P1.x outputs
- ]9 j- u! R/ _( a; y  K3 e  P1OUT = 0;                                // All P1.x reset) n' l# h7 m- F8 I* b$ _! J/ }& B
  P1SEL |= BIT1 + BIT2 + BIT4;              // P1.1 = RXD, P1.2=TXD. X  ~* W8 x' u9 y9 h' D$ G4 r
  P1SEL2 |= BIT1 + BIT2;                     // P1.4 = SMCLK, others GPIO) j) c9 Z9 R- K5 g+ e3 u
  P2DIR = 0xFF;                             // All P2.x outputs$ M+ a4 i1 ?& z8 P+ [" N
}- Q* P2 \9 A# ~2 G1 r% I
void led_gpio_init(void)4 X- V- e) x+ s3 X
{' t, R% y7 _8 r
}& {& h" m) s7 S: {
void ad_gpio_init(void)1 Z; Z0 E0 X6 l" ?. r
{
3 ^6 k" e1 m. U. W* s+ L& i}5 n% N6 x  c, Q, R, Q
void uart_config(void)
3 L. k% p( Q$ k; t. `  B{
  C- v* S8 {7 M) [0 @UCA0CTL1 |= UCSSEL_2;
9 I) [( |. C8 o- Q: h  ! `3 w, j! w# @. U2 L1 D0 @
  UCA0BR0 = 104;                            // 1MHz 96000 p5 A3 \7 u8 n$ t
  UCA0BR1 = 0;                              // 1MHz 9600- E! g; Q: K% M1 @' X2 p
   UCA0MCTL = UCBRS2 + UCBRS0;
  E) n$ e' P/ Y8 ^1 Z( {   UCA0CTL1 &= ~UCSWRST;& B4 g- ]: V- \) s; D  ?) b
   IE2 |= UCA0RXIE;
) j. g" M, Q+ L         
" b0 i' g  X* ?, i) x; N}5 d$ F+ X$ ]" i, j" S- y, n& h
void ad_config(void)3 u- O% j2 o6 {" ]! u
{
- P1 q# a3 g5 q% y4 i" Z   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;1 D/ T& W& L1 A: M! {3 N6 E* m, \
; s+ f  C; O! h3 t. M; L% Y
  ADC10CTL1 = INCH_5 + CONSEQ_2 ;
2 i3 ^: G7 [! a2 m; E   ADC10AE0 |= 0x10;. {7 I6 W' a( |  L
/ o  D7 J9 \$ Y& e
  ADC10CTL0 |= ENC + ADC10SC;
. I! L5 U- s; S/ m& d- ^
+ m: f, s. l# ?}
) J3 X. ]8 S, ?: Z6 g8 v; q" gvoid main()! A! x8 N8 Y. [9 c2 Y, B
{  O1 `" S: ~& z: H" U
   WDTCTL = WDTPW + WDTHOLD;, G& G* ]& f3 ]5 D
7 O" s) _8 z- X! ?. Z9 `
  //sys_clk_config();# Y0 h0 A- l5 ?

9 ^! G+ b' K3 y( ?  uart_gpio_init();) e! o# H" w/ _

! o  _9 {8 i: W6 x7 E; H  led_gpio_init();1 k" {7 g4 D! u9 Q; q% \
! n7 r7 q8 e& q1 D
  ad_gpio_init();, ]- Z$ g" t1 Z3 F4 x, d6 V
3 j9 f1 M% g, R! E
  uart_config();
3 ]5 D$ t% U* g# k3 z. b+ i% j. k
1 u# B: H3 O$ A4 x6 i) b  ad_config();8 B1 E# S7 H' ]2 N) P9 h
   __bis_SR_register(GIE);
5 {; D: }$ C% F: J$ K# T   while(1);
$ h" H! o: Z4 {* s0 M' D; k
6 g# v  X9 s8 d/ K" j, U2 z% ?+ L
  i% i/ N0 c1 J. h, d, A  v; D}  E( L; A. ]( l5 Y: G
#pragma vector = USCIAB0RX_VECTOR
! v+ c8 H; C, l" G, W__interrupt void USCI0RX_ISR(void)
' f" r1 S- H2 u: T6 N5 G+ ^& G7 k/ t{8 A6 j1 ^: a0 Y# `8 H8 J3 p
   while(!(IFG2 & UCA0TXIFG));1 x0 [! e" Q7 e3 ]+ V& I
// UCA0TXBUF =0x33 ;// UCA0RXBUF;
( L3 \  I: k( ~}
. g& a2 m) }8 `  l, _$ B#pragma vector  = ADC10_VECTOR
+ a/ p( ]+ g& Y6 H: ^& y" E__interrupt void ADC10_A0_ISR(void)* _; S4 B! q% s( J
{
0 A/ A' V5 H. }2 f# J4 v8 ~4 H- L) `- h- f
  while(!(IFG2 & UCA0TXIFG));
2 o( H! z7 L- K1 t; S2 l   UCA0TXBUF = ((ADC10MEM*33)/1023);
" N+ x+ O; g3 m" h5 ^   k = 10000;) {' L! E! m, U- ~  W
   while(k--);
& N$ {7 z9 f9 j0 C5 x# _+ l* Q+ ^  p' u/ ~
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

154

主题

485

帖子

1156

积分

四级会员(40)

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

积分
1156
3#
发表于 2016-6-30 11:14 | 只看该作者
楼主辛苦了!
$ T2 ~8 F- r% t; F8 P& A- Y; g+ {

156

主题

503

帖子

1186

积分

四级会员(40)

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

积分
1186
2#
发表于 2016-6-29 15:46 | 只看该作者
学习中,谢谢分享
' @: U; W. a, ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 06:09 , Processed in 0.065911 second(s), 32 queries , Gzip On.

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

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

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