完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、问题要求:
选用一个蓝色的 ZigBee 节点盒进行开发。 实现功能:ZigBee 节点盒一上电,两只 LED 灯(连接灯和通讯灯)就 亮,当按下 SW1 键后,两只灯进入相互切换状态(其中一个灯亮,另一 个灯灭),如此循环效果显示。 二、逻辑代码实现: #include typedef unsigned char uchar; typedef unsigned int uint; #define LED1 P1_0 #define LED2 P1_1 #define SW1 P1_2 uchar ledState = 0; void DelayMs(uint t) { uint j,k; for(j=0;j for(k=0;k<525;k++); } } void InitLed(void) { P1SEL &= ~0x07; //把P1.0、P1.1、P1.2设为GPIO P1DIR |= 0x03; //设置P1.0、P1.1为输出模式 LED1 = 1; LED2 = 1; //设置为点亮状态 } void InitSW1(void) { P1DIR &= ~0x04; //设置P1.2为输入模式 P1IEN |= 0x04; //使能P1.2中断模式 PICTL |= 0x02; //下降沿触发中断 IEN2 |= 0x10; //开启P1的中断 P1IFG = 0x00; //清除中断标志位 EA = 1; //开启所有中断 } #pragma vector = P1INT_VECTOR __interrupt void P1_ISR(void) { ledState = 1; LED1 = 0; P1IFG = 0; P1IF = 0; } void main(void) { InitLed(); //初始化LED InitSW1(); //初始化按键,并打开中断 while(1) { if(ledState == 1) { DelayMs(1000); //延时1s LED2 = !LED2; LED1 = !LED1; } } } 以实现题目要求为目的,逐渐提高程序开发的效率。 |
|
|
|
只有小组成员才能发言,加入小组>>
3272 浏览 9 评论
2948 浏览 16 评论
3449 浏览 1 评论
8969 浏览 16 评论
4042 浏览 18 评论
1087浏览 3评论
563浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
558浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2295浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1851浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 13:22 , Processed in 1.263396 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号