|
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/ ~
} |
|