




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承包合同终止协议
- 木材公司销售合同
- 平面模特拍摄合同
- 电力施工劳务合同
- 漫画助理外包合同
- 油漆劳务分包合同协议书
- 无人机物流配送运营合作项目合同
- 商丘幼儿师范高等专科学校《旅行社经营管理》2023-2024学年第二学期期末试卷
- 山东管理学院《高阶地质资源勘查与评价》2023-2024学年第二学期期末试卷
- 文华学院《地理科学类专业导论》2023-2024学年第二学期期末试卷
- 飞行器小学生课件
- 应急突发处置
- 2024年定融认购协议合同范文
- 2024数据中心综合布线工程产品选用指南
- 《检验检测机构资质认定评审准则》知识试题
- GCP培训课件教学课件
- 2023-2024学年广东省广州市天河区八年级(上)期末英语试卷
- 砸墙合同协议书(2篇)
- 2024加油站操作员安全培训考试题及答案
- GB/T 5267.5-2024紧固件表面处理第5部分:热扩散渗锌层
- 全国医疗服务项目技术规范
评论
0/150
提交评论