完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//实现4个独立按键的功能,对应的体现在数码管上
#include "MSP430X14X.H" //宏定义 typedef unsigned char uchar; typedef unsigned int uint; //定义独立按键的输入量 #define keyin (P1IN & 0x0F) //数码管的编码表 uchar scandata[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //调用的函数声明 void Inital_Port(void); void delay_ms(uint i); int main( void ) { uchar temp,keyval = 0; // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; //对引脚进行初始化 Inital_Port(); while(1) { if(keyin != 0x0f) //如果有键被按下 { //delay_ms(20); //延时消抖 if(keyin != 0x0f) //再次检测按键状态 { temp=keyin; while(keyin != 0x0f); //等待按键被放开 switch(temp) //转换键值 { case 0x0e: keyval = 1;break; case 0x0d: keyval = 2;break; case 0x0b: keyval = 3;break; case 0x07: keyval = 4;break; default: keyval = 0;break; } P5OUT = scandata[keyval]; //用一位数码管显示 P3OUT &= ~BIT4; //P3.4连接的LED闪烁一下 delay_ms(20);delay_ms(20); P3OUT |= BIT4; } } } return 0; } /******************************* 延时函数 ********************************/ void delay_ms(uint i) { uint j; for(j=1000;j>0;j--) { for(;i>0;i--) {;} } } /*********************************** 端口初始化函数 **********************************/ void Inital_Port(void) { /*下面六行程序关闭所有的IO口*/ P1DIR = 0XFF; P1OUT = 0XFF; P2DIR = 0XFF; P2OUT = 0XFF; P3DIR = 0XFF; P3OUT = 0XFF; P4DIR = 0XFF; P4OUT = 0XFF; P5DIR = 0XFF; P5OUT = 0XFF; P6DIR = 0XFF; P6OUT = 0XFF; P1DIR = BIT7; //设置P1.0~P.6为输入状态,P.7为输出 P1OUT = 0; P3DIR |= BIT4; //设置P3.4为输出状态 P3OUT |= BIT4; //P3.4输出1,控制LED D9 P4DIR = 0xff; P5DIR = 0xff; P5OUT = 0xc0; //P4控制数码管段 P4OUT = 0x00; //P5控制数码管位 } 这是我对独立键盘的程序,原本没有什么新意,只是普通的延时消抖,可是在430单片机上运行时,竟然可以不用延时消抖,甚至数秒级的消抖,我实在不解,请高手指点 |
|
相关推荐
5个回答
|
|
|
|
延时你去卡一下时间..绝对不是1ms
|
|
|
|
|
|
|
|
你的问题 没有说清楚........... 另外 你写程序的风格不提倡! 还有,430有很多外部中断。。。按键的话,最好使用中断........ |
|
|
|
,程序风格有问题吗,我可是老老实实的模块化
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
158 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
237 浏览 0 评论
655 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
563 浏览 0 评论
862 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12033 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 13:43 , Processed in 0.642150 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号