|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本程序是单片机MSP430G2553
, p' r$ Y8 t* {% a! b P1.2----------------------------UCA0TXD 串口发送端
& G4 n% [* ? K; `" | P1.1----------------------------UCA0RXD 串口接受端+ W# J6 }9 ]7 e ^2 t
P1.0----------------------------红灯指示* H9 ]0 d, [' ]+ b9 G2 V3 T0 k
P1.6----------------------------绿灯指示
3 Q* i! C$ F( e P1.5----------------------------模拟电压输入
" ]+ e f( `9 O& b6 p利用主辅时钟为1MHZ,串口波特率9600,
8 J1 L) J& A/ F f% J k 波特率:1000000/9600=104
5 Z1 m) b/ ^6 x* j" r7 g: x1 h UCA0BR0 = 104; // 1MHz 9600
* W# J$ x7 R+ r6 `/ Y4 n UCA0BR1 = 0; // 1MHz 9600$ x6 a* H/ d9 k4 y! N
5 }5 v8 y4 @: r7 W) E3 _+ p
现象: I3 P3 @( w7 G- l+ H, u, |9 r
功能(1)看到 P1.5口输入不同的电压经AD采样后发送 + [# q8 n# a C P; V' y2 [
功能(2)打开电脑串口调试助手,发送区有数据待发送时,在接受区将看到相应的数据。3 S' h o" H9 n3 M
******************************************************************************/8 D. J" |. Z% [' U: ^- w$ D z
#include <msp430g2553.h>2 S [8 o) i7 P5 I
float adc_voltage;
6 K" _6 I& j3 M/ W. Z# x2 }unsigned int k;
' O9 d! j) ^% xvoid sys_clk_config(void)1 G F) ?1 [" w# H0 x2 g$ `) u+ ~: s
{
* v6 X% }1 R4 N# h2 [5 N/ ? //ACLK = ; MCLK = SMCLK = DCOCLK = 1.1MHZ
+ C8 \; R; s& |3 s1 C( d* _7 w DCOCTL = 0;
5 e z8 f v' b9 L- ^ BCSCTL1 = CALBC1_1MHZ;; }( m4 D) H" i6 h' R( T" @% B
DCOCTL = CALDCO_1MHZ;
8 Z1 J% p T6 b3 c}
- A( u H8 j8 _void uart_gpio_init(void)( A; `+ h! J8 I& H i. ]
{
8 r8 [( Y# Q1 S //P1SEL |= BIT1 + BIT2;6 l! p. M1 W- P. F& w
//P1SEL2 |= BIT1 + BIT2;/ G/ [0 ` `, u0 m H( e. Q
//P1DIR |= BIT2;
' X2 J6 _9 S {" N0 A P1DIR = 0xFF; // All P1.x outputs
3 I& M4 _5 a0 T" Q2 S4 q1 n, A P1OUT = 0; // All P1.x reset, Y9 @3 W! s/ z4 F% k9 ^7 c
P1SEL |= BIT1 + BIT2 + BIT4; // P1.1 = RXD, P1.2=TXD! L" D% T, M) n! s8 h; o V
P1SEL2 |= BIT1 + BIT2; // P1.4 = SMCLK, others GPIO
6 z( k( R- R. b4 u. v) Z3 ~ P2DIR = 0xFF; // All P2.x outputs% L, t/ [, g6 k2 g7 D
}
' t0 E0 |* p& J! o( O. e! n* ?% `* Bvoid led_gpio_init(void)1 J$ x: U, B; z# A" I$ v1 d
{4 v0 s N+ J3 b9 r& u
}
% K9 v# F+ b7 J- a* z! W3 gvoid ad_gpio_init(void), @, K; S2 e/ t; ?4 j6 d5 u6 q: n
{
( _1 ~" n% ^+ s}
- @1 O) r p. L9 j8 kvoid uart_config(void)
' J' I5 C6 p: U{4 h1 w7 W$ v. V# H6 e7 E0 `
UCA0CTL1 |= UCSSEL_2;
/ Y3 Y- R9 |# e/ W
' E! H. P4 O. F UCA0BR0 = 104; // 1MHz 9600
1 c' \! q9 c* |. |+ M UCA0BR1 = 0; // 1MHz 9600- ], z/ w4 I" @& v
UCA0MCTL = UCBRS2 + UCBRS0;
/ [0 F( b7 e' Y7 t0 j UCA0CTL1 &= ~UCSWRST;& V$ O3 y' l3 G* [8 T" i
IE2 |= UCA0RXIE;& q" R1 F$ Q0 X7 d) ^' }
. U! H, y" n" K* v* N8 M}# a4 B8 Z( E% z, C+ c" ]0 S
void ad_config(void)
$ F) J# J& l- w/ |; S, d{
; U, N7 f, n& u) k0 k ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;- v0 v3 u3 z% [" V5 P/ Y
' z4 {7 I# U5 x; D ADC10CTL1 = INCH_5 + CONSEQ_2 ;
& m6 b+ j" _$ R% Y; F' i, J4 U ADC10AE0 |= 0x10;
2 @$ U/ W5 ~% L$ x2 O
0 a# [9 k' V" D( I/ B8 \) ^ ADC10CTL0 |= ENC + ADC10SC;
# Q( q' T. k2 z5 ?) S6 e
6 U( s; q+ D6 K1 o0 z/ X& C}
$ t* ]6 H1 f, l3 v6 I# Avoid main()5 y0 F1 b: f9 r. q7 E _
{
: C$ g, i: w/ R# n4 O. l0 `6 p$ O WDTCTL = WDTPW + WDTHOLD;1 Z q7 c" b. M B5 z
1 m6 }. w9 }2 Y
//sys_clk_config();- w3 [+ D4 b9 c! e* F5 b
b' @# j1 m; n- ]$ e. y uart_gpio_init();
8 E2 o1 Q: U" a) r+ O/ z$ x4 n: f2 l h& r
led_gpio_init();
- M, g3 M5 M& Y+ l& j0 g" @: l5 z7 Z8 S! ]
ad_gpio_init();
/ f: l; H3 o/ ~( l+ P" K" I- @- H7 V+ A3 G8 V6 ?
uart_config();
5 j% C: L" b* |% _: h c& }, i7 {% D' P
ad_config();
$ g5 O9 }% L; i" d# p __bis_SR_register(GIE);
* p6 G: _& j0 v1 J! i: W1 ^7 F while(1);* G! Z4 ], g- o* N1 G/ k% t
1 r& Z$ E! X/ M9 q2 S; P' o& |6 w! z& I; q9 w9 L. |
}3 S) U4 C; ?& |
#pragma vector = USCIAB0RX_VECTOR! M) i" n! j4 H0 n! [
__interrupt void USCI0RX_ISR(void)4 ?: o s B( f5 C8 k/ L
{
( \- l, G& R5 c% V1 N: s+ b while(!(IFG2 & UCA0TXIFG));8 k* A1 S' z' g3 a9 B. I b
// UCA0TXBUF =0x33 ;// UCA0RXBUF;
! [& h6 _+ n6 k( B! I} _' U0 P0 ^" |$ f% F8 _9 K# G+ {/ h
#pragma vector = ADC10_VECTOR# D9 ?7 }$ r9 l8 s7 f; F
__interrupt void ADC10_A0_ISR(void): ~* j( q. |1 Z4 j8 N' o
{7 ]! _' u1 _1 w7 V
2 E3 @' O0 H$ _ N7 t while(!(IFG2 & UCA0TXIFG));
, A1 ]- W* n% H) t v UCA0TXBUF = ((ADC10MEM*33)/1023);
8 Y+ i. T& M2 K o k = 10000;
/ z( m3 `; x9 R while(k--);6 }: W6 J( [# G
0 p. r( V/ [- ]4 I6 ]. Q' |
} |
|