msp430基于proteus的基本程序_第1页
msp430基于proteus的基本程序_第2页
msp430基于proteus的基本程序_第3页
msp430基于proteus的基本程序_第4页
msp430基于proteus的基本程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、LED灯、数码管、蜂鸣器的控制,闪烁的实现,流水灯的实现:程序2.1.1:#include "io430.h"int main( void ) unsigned int i; long int j,k; unsigned a=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x80,0xc6,0xc0,0x86,0x8e; /P2输出数组 / Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P2DIR=0xFF;P

2、1DIR=0x1F; while(1) for(j=0;j<200000;j+) P2OUT=a0; P1OUT=0x1F; for(j=1;j<=16;j+) for(i=0;i<j;i+) P2OUT=aj; for(k=0;k<6000/(j+1);k+) P1OUT=0xE0; for(k=0;k<6000/(j+1);k+) P1OUT=0x1F; 此程序包括了LED灯、数码管、蜂鸣器的使用。功能是当数码管显示0F时,LED灯分别闪几下,蜂鸣器分别响几下。如图2.1图2.1 数码管示数和LED灯闪烁程序2.1.2:#include "msp43

3、0G2553.h"/*/程序功能:心形图案组成的流水灯依次点亮/*void main( ) unsigned int i; 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=

4、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/CA525P2.4/CA1/TA224P2.3/CA0/TA123P2.2/CAOUT/TA0/CA422P2.1/TAINCLK/CA321P2.0/ACLK

5、/CA220P1.2/TA114P1.1/TA013P1.0/TACLK/CAOUT12P1.3/TA215P1.4/SMCLK16P1.7/TA219P1.6/TA118P1.5/TA017P2.6/CA626P2.7/TA0/CA727P3.0/UCB0STE/UCA0CLK28P3.1/UCB0SIMO/UCB0SDA29P3.2/UCB0SOMI/UCB0SCL30P3.3/UCB0CLK/UCA0STE31P3.4/UCA0TXD/UCA0SIMO32P3.5/UCA0RXD/UCA0SOMI33P3.6/UCA1TXD/UCA1SIMO34P3.7/UCA1RXD/UCA1SOMI

6、35P4.5/TB541P4.4/TB440P4.3/TB339P4.2/TB238P4.1/TB137P4.0/TB036P4.6/TB642P4.7/TBCLK43AVCC64AVSS62P5.0/UCB1STE/UCA1CLK44P5.1/UCB1SIMO/UCB1SDA45P5.2/UCB1SOMI/UCB1SCL46P5.3/UCB1CLK/UCA1STE47P5.4/MCLK48P5.5/SMCLK49P5.6/ACLK50P5.7/TBOUTH/SVSOUT51P6.059P6.160P6.261P6.32P6.43P6.54P6.65P6.7/SVSIN6XT2OUT52XT2

7、IN53RST/NMI58TCK57TDI/TCLK55TMS56XIN8XOUT9TDO/TDI54U1MSP430F2491D3LED-BLUED4LED-BLUED5LED-BLUED6LED-BLUED15LED-REDD22LED-REDD23LED-REDD26LED-YELLOWD27LED-YELLOWD28LED-YELLOWD29LED-YELLOW图2.2 心形图案流水灯2、4*4按键的使用程序2.2.1:#include "msp430g2553.h"/*/函数功能:初始化键盘/*void Init_Port(void) P1DIR = 0; P1S

8、EL = 0; P1DIR |= BIT4; P1DIR |= BIT5; P1DIR |= BIT6; P1DIR |= BIT7; P1OUT = 0x00;/*/函数功能:延时函数/*void Delay(void) int i; for(i=0;i<100;i+) ;/*/函数功能:读取并扫描键值/*int KeyProcess(void) int nP10,nP11,nP12,nP13; int nRes = 0; /按键返回值 P1OUT = 0XE0; nP10 = P1IN & BIT0; if (nP10 = 0) nRes = 13; nP11 = P1IN

9、& 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

10、= 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

11、) 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)>&

12、gt;3; if(nP10 = 1 && nP11 = 1 && nP12 = 1 && nP13 = 1) break; return nRes; /返回到键盘扫描函数/*/函数功能:扫描键盘/*int KeyScan(void) int nP10,nP11,nP12,nP13; int nRes = 0; /按键返回值 while(1) nP10 = P1IN & BIT0; nP11 = (P1IN & BIT1) >> 1; nP12 = (P1IN & BIT2) >> 2; nP13 =

13、 (P1IN & BIT3) >> 3; if(nP10 = 0|nP11 = 0|nP12 = 0|nP13 = 0) Delay(); /消抖 nP10 = P1IN & BIT0; nP11 = (P1IN & BIT1) >> 1; nP12 = (P1IN & BIT2) >> 2; nP13 = (P1IN & BIT3) >> 3; if(nP10 = 0|nP11 = 0|nP12 = 0|nP13 = 0) nRes = KeyProcess(); /调用读取键值的函数 else nRes

14、 = -1; return nRes; /返回到主函数 /*/函数功能:控制P2管脚,数码管示数/*void shumaguan(int i) int k; unsigned int a=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x80,0xc6,0xc0,0x86,0x8e; /P2输出数组 for(k=0;k<30000;k+) P2OUT=ai-1;void main(void) WDTCTL = WDTPW + WDTHOLD; /关闭看门狗 int i; while(1) Init_Port(); /调用初始化键盘函数 i=KeyScan(); /扫描键盘 P2DIR=0XFF; /设置P2为输出 shumaguan(i); /调用数码管显示函数 图2.3 按键控制数码管3、LED点阵的控制程序2.3.1:#include "msp430G2553.h"/*/程序功能:用LED点阵显示心形/*void main( ) unsigned int i; P1DIR=0XFF;P2DIR=0xff; WDTCTL = WDTPW + WDTHOLD; while(1) for(i=0;i<100;i+) P1OUT=0xfd;P2OUT=0x6c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论