msp430基于proteus的基本程序.docx

上传人:b****3 文档编号:2579433 上传时间:2022-11-02 格式:DOCX 页数:8 大小:94.03KB
下载 相关 举报
msp430基于proteus的基本程序.docx_第1页
第1页 / 共8页
msp430基于proteus的基本程序.docx_第2页
第2页 / 共8页
msp430基于proteus的基本程序.docx_第3页
第3页 / 共8页
msp430基于proteus的基本程序.docx_第4页
第4页 / 共8页
msp430基于proteus的基本程序.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

msp430基于proteus的基本程序.docx

《msp430基于proteus的基本程序.docx》由会员分享,可在线阅读,更多相关《msp430基于proteus的基本程序.docx(8页珍藏版)》请在冰豆网上搜索。

msp430基于proteus的基本程序.docx

1、LED灯、数码管、蜂鸣器的控制,闪烁的实现,流水灯的实现:

程序2.1.1:

#include"io430.h"

intmain(void)

{

unsignedinti;

longintj,k;

unsigneda[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x80,0xc6,0xc0,0x86,0x8e};//P2输出数组

//Stopwatchdogtimertopreventtimeoutreset

WDTCTL=WDTPW+WDTHOLD;

P2DIR=0xFF;P1DIR=0x1F;

while

(1)

{

for(j=0;j<200000;j++)

{

P2OUT=a[0];

P1OUT=0x1F;

}

for(j=1;j<=16;j++)

{

for(i=0;i

{

P2OUT=a[j];

for(k=0;k<6000/(j+1);k++)

P1OUT=0xE0;

for(k=0;k<6000/(j+1);k++)

P1OUT=0x1F;

}

}

}

}

此程序包括了LED灯、数码管、蜂鸣器的使用。

功能是当数码管显示0~F时,LED灯分别闪几下,蜂鸣器分别响几下。

如图2.1

图2.1数码管示数和LED灯闪烁

程序2.1.2:

#include"msp430G2553.h"

//*********************************************************

//程序功能:

心形图案组成的流水灯依次点亮

//*********************************************************

voidmain()

{

unsignedinti;

P1DIR=0XFF;

WDTCTL=WDTPW+WDTHOLD;

while

(1)

{

for(i=0;i<50000;i++);

P1OUT=0X00;

for(i=0;i<50000;i++);

P1OUT=0XAA;

for(i=0;i<50000;i++);

P1OUT=0X55;

for(i=0;i<50000;i++);

P1OUT=0X7F;

for(i=0;i<50000;i++);

P1OUT=0XBF;

for(i=0;i<50000;i++);

P1OUT=0XDF;

for(i=0;i<20000;i++);

P1OUT=0XEF;

for(i=0;i<50000;i++);

P1OUT=0XF7;

for(i=0;i<50000;i++);

P1OUT=0XFB;

for(i=0;i<50000;i++);

P1OUT=0XFD;

for(i=0;i<50000;i++);

P1OUT=0XFE;

}

}

P2.5/ROSC/CA5

25

P2.4/CA1/TA2

24

P2.3/CA0/TA1

23

P2.2/CAOUT/TA0/CA4

22

P2.1/TAINCLK/CA3

21

P2.0/ACLK/CA2

20

P1.2/TA1

14

P1.1/TA0

13

P1.0/TACLK/CAOUT

12

P1.3/TA2

15

P1.4/SMCLK

16

P1.7/TA2

19

P1.6/TA1

18

P1.5/TA0

17

P2.6/CA6

26

P2.7/TA0/CA7

27

P3.0/UCB0STE/UCA0CLK

28

P3.1/UCB0SIMO/UCB0SDA

29

P3.2/UCB0SOMI/UCB0SCL

30

P3.3/UCB0CLK/UCA0STE

31

P3.4/UCA0TXD/UCA0SIMO

32

P3.5/UCA0RXD/UCA0SOMI

33

P3.6/UCA1TXD/UCA1SIMO

34

P3.7/UCA1RXD/UCA1SOMI

35

P4.5/TB5

41

P4.4/TB4

40

P4.3/TB3

39

P4.2/TB2

38

P4.1/TB1

37

P4.0/TB0

36

P4.6/TB6

42

P4.7/TBCLK

43

AVCC

64

AVSS

62

P5.0/UCB1STE/UCA1CLK

44

P5.1/UCB1SIMO/UCB1SDA

45

P5.2/UCB1SOMI/UCB1SCL

46

P5.3/UCB1CLK/UCA1STE

47

P5.4/MCLK

48

P5.5/SMCLK

49

P5.6/ACLK

50

P5.7/TBOUTH/SVSOUT

51

P6.0

59

P6.1

60

P6.2

61

P6.3

2

P6.4

3

P6.5

4

P6.6

5

P6.7/SVSIN

6

XT2OUT

52

XT2IN

53

RST/NMI

58

TCK

57

TDI/TCLK

55

TMS

56

XIN

8

XOUT

9

TDO/TDI

54

U1

MSP430F2491

D3

LED-BLUE

D4

LED-BLUE

D5

LED-BLUE

D6

LED-BLUE

D15

LED-RED

D22

LED-RED

D23

LED-RED

D26

LED-YELLOW

D27

LED-YELLOW

D28

LED-YELLOW

D29

LED-YELLOW

图2.2心形图案流水灯

2、4*4按键的使用

程序2.2.1:

#include"msp430g2553.h"

//*****************************************************************

//函数功能:

初始化键盘

//*****************************************************************

voidInit_Port(void)

{

P1DIR=0;

P1SEL=0;

P1DIR|=BIT4;

P1DIR|=BIT5;

P1DIR|=BIT6;

P1DIR|=BIT7;

P1OUT=0x00;

}

//******************************************************************

//函数功能:

延时函数

//******************************************************************

voidDelay(void)

{

inti;

for(i=0;i<100;i++);

}

//******************************************************************

//函数功能:

读取并扫描键值

//******************************************************************

intKeyProcess(void)

{

intnP10,nP11,nP12,nP13;

intnRes=0;//按键返回值

P1OUT=0XE0;

nP10=P1IN&BIT0;

if(nP10==0)nRes=13;

nP11=P1IN&BIT1;

if(nP11==0)nRes=14;

nP12=P1IN&BIT2;

if(nP12==0)nRes=15;

nP13=P1IN&BIT3;

if(nP13==0)nRes=16;

P1OUT=0XD0;

nP10=P1IN&BIT0;

if(nP10==0)nRes=9;

nP11=P1IN&BIT1;

if(nP11==0)nRes=10;

nP12=P1IN&BIT2;

if(nP12==0)nRes=11;

nP13=P1IN&BIT3;

if(nP13==0)nRes=12;

P1OUT=0XB0;

nP10=P1IN&BIT0;

if(nP10==0)nRes=5;

nP11=P1IN&BIT1;

if(nP11==0)nRes=6;

nP12=P1IN&BIT2;

if(nP12==0)nRes=7;

nP13=P1IN&BIT3;

if(nP13==0)nRes=8;

P1OUT=0X70;

nP10=P1IN&BIT0;

if(nP10==0)nRes=1;

nP11=P1IN&BIT1;

if(nP11==0)nRes=2;

nP12=P1IN&BIT2;

if(nP12==0)nRes=3;

nP13=P1IN&BIT3;

if(nP13==0)nRes=4;

P1OUT=0x00;

for(;;)

{

nP10=P1IN&BIT0;

nP11=(P1IN&BIT1)>>1;

nP12=(P1IN&BIT2)>>2;

nP13=(P1IN&BIT3)>>3;

if(nP10==1&&nP11==1&&nP12==1&&nP13==1)

{

break;

}

}

returnnRes;//返回到键盘扫描函数

}

//****************************************************************

//函数功能:

扫描键盘

//****************************************************************

intKeyScan(void)

{

intnP10,nP11,nP12,nP13;

intnRes=0;//按键返回值

while

(1)

{

nP10=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1