//在数码管上显示字符6,按下外部按键中断0(S5)则8左移动,按下外部按键中断1(S4)则8右移动。 #include<reg52.h> sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; unsigned char key,keyvalue,y,adress; unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; // 0 1 2 3 4 5 6 7 8 void delay(unsigned char n) { unsigned char j; while(n--) { for(j=0;j<123;j++); } } void init0() { IT0=1; EX0=1; IT1=1; EX1=1; EA=1; } void keyscan(void)//按键扫描 { key=0x0f; if(key!=0x0f) { delay(10); if(key!=0x0f) { key=0x0f; switch(key)//line { case(0x07):keyvalue=0;break; case(0x0b):keyvalue=1;break; case(0x0d):keyvalue=2;break; case(0x0e):keyvalue=3;break; } key=0xf0; switch(key)// { case(0x70):keyvalue=keyvalue;break; case(0xb0):keyvalue=keyvalue+4;break; case(0xd0):keyvalue=keyvalue+8;break; case(0xe0):keyvalue=keyvalue+12;break; } while((y<30)&&(key!=0xf0)) { delay(10);y++; } } } } void weizhi(void)//数码管位选 { switch(adress) { case(0):LSC=0;LSB=0;LSA=0;break; case(1):LSC=0;LSB=0;LSA=1;break; case(2):LSC=0;LSB=1;LSA=0;break; case(3):LSC=0;LSB=1;LSA=1;break; case(4):LSC=1;LSB=0;LSA=0;break; case(5):LSC=1;LSB=0;LSA=1;break; case(6):LSC=1;LSB=1;LSA=0;break; case(7):LSC=1;LSB=1;LSA=1;break; } } void int0() interrupt 0 //s5左移 { EX0=0; if(keyvalue==4) { delay(1); if(keyvalue==4) { adress++; } } EX0=1; } void int1() interrupt 2 //s4右移 { EX1=0; if(keyvalue==3) { delay(1); if(keyvalue==3) { adress--; } } EX1=1; } void main() { init0(); adress=0; while(1) { keyscan(); weizhi(); P0=smgduan[6]; } }
共5条
1/1 1 跳转至页
求助!按键不能实现数码管卫位移

只看楼主 1楼
共5条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】接线错误导致测试数据异常被打赏40分 | |
stm32f103驱动舵机被打赏20分 | |
汽车+汽车电子电阻解释与分析被打赏5分 | |
STM32F103的I2C驱动OLED动态显示被打赏30分 | |
分享汽车通信和多媒体总线结构被打赏20分 | |
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
NUCLEO-U083RC学习历程38+串口通过队列的方式输出两个字符串被打赏20分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 |