完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 大漠里燃烧的年 于 2013-10-13 15:35 编辑
#include #include #include #define unchar unsigned char #define unint unsigned int unchar code LEDSEG[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; unchar temp,i,j; unchar dis_buf[]={16,16,16,0}; //显示3个空格和一个0 void display(void); void keyscan(void); unchar testkey(unchar); void delay(void); void main(void) {IT0=1; //外部中断0初始化 EX0=1; EA=1; P2=0xff; P0=0xff; while(1) {display();} } //********************************************************************** void key_int(void) interrupt 0 { unchar temp_h,temp_l,keynum; //行码、列码、键值 unchar code_h,code_l; if(testkey(0xf0)) { temp_l=0; temp_h=0; //功能:扫描键盘并更新显示缓冲区 code_l=0xfe; while(temp_l<0x04) { if(testkey(code_l)==1) { code_h=P2; if(P2^4==0) temp_h=0x00; else if(P2^5==0)temp_h=0x04; else if(P2^6==0)temp_h=0x08; else temp_h=0x0c; while(testkey(0xf0)){;} //等待按键放开 break; } else{code_l=code_l<<1|0x01; temp_l++; } } keynum=temp_h+temp_l; //更新显示缓冲区 dis_buf[0]=dis_buf[1]; dis_buf[1]=dis_buf[2]; dis_buf[2]=dis_buf[3]; dis_buf[3]=keynum; } } //********************************************************************** unchar testkey(unchar scan_code ) //测试是否有键按下,scan_code是扫描码,返回1说明有键按下 { unchar temp; P2=scan_code; delay(); //延时1ms防抖 temp=P2; if((~temp)&0xf0) return (1); else return (0); } //********************************************************************** void display(void) //显示4位数 { unchar i,di***it; di***it=0xfe; for(i=0;i<4;i++) { P2=di***it; //选中要显示的管 P0=LEDSEG[dis_buf]; //要先选中,才能输出显示数据!!!!!!!!!!! delay(); di***it=di***it<<1; //改变位码 di***it++; } } //********************************************************************** void delay(void) // 延时1ms { int a=0; for(a=0;a<1000;a++); } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux C接口编程入门之ioctl操作
285 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第十七章 machine.WDT类实验
434 浏览 0 评论
1079 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-通用文件I/O模型之close
1210 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第十五章 按键中断实验
1075 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11475 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-17 18:59 , Processed in 0.510884 second(s), Total 68, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号