完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
小弟刚学这单片机,纠结两天了,请哪位大侠帮助一下。用一个独立键盘控制一个LED,按一下亮,再按一下灭。
#include "msp430g2553.h" #define uchar unsigned char #define uint unsigned int char keycan(void); void delay(void); int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR &=~BIT0;//p1.0设为输入 P1DIR |=BIT1; //p1.1设为输出 while(1) { if(keycan())//判断按键是否按下; P1OUT |=0x00;//点亮LED; else P1OUT |=BIT1;//熄灭LED; } } char keycan(void) { uchar t=0,i; if(!(P1IN & BIT0)) { for(i=0;i<8000;i++);//延时一段时间,消除按键抖动 if (!(P1IN&BIT0)) //如果P1输入寄存器P1IN的第0位还是0,则返回1,表示按键按下 { while(!(P1IN&BIT0)); t++; if(t>1) t=0; } } return t; } |
|
相关推荐
12 个讨论
|
|
|
while(1)
{ if(keycan())//判断按键是否按下; P1OUT ^= BIT1; while(keycan()); //等待键盘释放 ) char keycan(void) { uchar t=0,i; if(!(P1IN & BIT0)) { //i是字符型,不能超过255,超过的溢出抛弃 for(i=0;i<250;i++)_NOP();//延时一段时间,消除按键抖动 //t可以为任意不等于0的数字 if (!(P1IN&BIT0)) t = 6; //如果P1输入寄存器P1IN的第0位还是0,则返回1,表示按键按下 } return t; } |
|
|
|
|
|
|
|
|
本帖最后由 A—F—D 于 2012-8-15 00:40 编辑
按键IO要设置成上拉模式,手册里有,我遇到过 Pullup/Pulldown Resistor Enable Registers PxREN Each bit in each PxREN register enables or disables the pullup/pulldown resistor of the corresponding I/O pin. The corresponding bit in the PxOUT register selects if the pin is pulled up or pulled down. Bit = 0: Pullup/pulldown resistor disabled Bit = 1: Pullup/pulldown resistor enabled |
|
|
|
|
|
|
|
|
最好有个上拉电阻
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3327个成员聚集在这个小组
加入小组9571 浏览 1 评论
10369 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10689 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2658 浏览 1 评论
5115 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
10692浏览 2评论
10371浏览 1评论
9573浏览 1评论
8231浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 17:26 , Processed in 1.129399 second(s), Total 66, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2235