|
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* ?} |
|