- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE #/ 5
实现 4 位数码管与 4x4 按键的移位显示
,还有小数点的按键功能,注意,本例使用的是共阳数码管,用共阴的要 修改一下段码和位选。。。
#includereg
52.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
unsigned char code LED7Code[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0x40,0x79,0x24,0x30, 0x19,0x12,0x02,0x78,0x00,0x10};
//uint i=0,a=16,b=16,c=16;
uchar num[4]={16,16,16,16};
uchar _FLAG = 0;
uchar hang=0;
uchar lie=0;
uchar key_in;// 读入的按键信息,检测是否有键按下
//uint n=0;
//uint buff;
void delay(uchar t){uchar i,j;
for(i=0;it;i++){for(j=100;j0;j--);
{ ;}}}/*
void cshh(){IT1=1;//INT0 下降沿触发
EX1=1; //使能 INT0
EA=1; //开总 xx
PX1=0;}*/
uint scankey(){P2=0xf0;
delay
(10);
if((P20xf0)!=0xf0){switch(P2){case 0x70: hang=1;break;
case 0xb0: hang=2;break;
case 0xd0: hang=3;break;
case 0xe0: hang=4;break;
default:
break;}delay
(10);
P2=0x0f;
if((P20x0f)!=0x0f){switch(P2){case 0x07: lie=1; break;
case 0x0b:
lie=2; break;
case 0x0d:
lie=3; break;
case 0x0e:
lie=4; break;
default:
break;}}
delay
(5);
return(((hang-1)*4+lie)-1);}else return
(16);}uchar checkKey(void){uchar key_1, key_2;
static uchar key;
P2 = 0x0F;
key_1 = P2;
key_1 = key_1 0x0F;
delay
(5);
key_2 = P2;
key_2 = key_2 0x0F;
if(key_1 == key_2){if(key_2 == OxOf)//键弹起{if(_FLAG == 1){_FLAG = 2;//_FLAG=2表示按键弹起,一次按下动作结束
return key;}else if(_FLAG == 0){return 0xff;}}
else //键按下{if(_FLAG == 0){_FLAG = 1;//_FLAG表示按键按下,还未弹起
key = scankey();}}}else{return 0xff;}}
void display。//显示函数{uchar j, wei=0xff;〃位选信号首先选中最右侧的 LED 灯(即num[7]对应的LED灯)delay
(1);
wei=0xfe;
delay
(1);
/*if(key_in==15){P0 = LED7Code[num[0]]; //送段码信号 }else
{ */
for(j=0; j4; j++)
{//P0 = 0xff;
//delay
(1);
P0 = LED7Code[num[j]]; //送段码信号
P1 = wei;〃送某一个LED灯的位选信号
delay
(1);
P1 = Oxff;//清当前的位选信号
delay
(1);
num[5]、wei = wei 1 | 0x01; //位选信号左移,依次向左选中 num[6] 、 num[4]、num[3]、num[2]、num[1]、num[0]所对应的 LED^T}//}}void keyFun(uchar new_key){num[3] = num[2];〃实现 LED
num[5]、
num[2] = num[1];
num[1] = num[0];
num[0] = new_key;}void main(){//cshh(); // 中断初始化
uchar m
您可能关注的文档
- 四有好教师事迹材料:扎根农村永不.docx
- 外国人管理研究.docx
- 外科护士年终述职汇报范文格式.docx
- 外联部工作总结归纳.docx
- 外贸专业毕业生的自我鉴定范文格式.docx
- 外贸员工的辞职汇报范文格式.docx
- 多媒体在小学低年级音乐教学中的作.docx
- 多彩的儿童生活第一单元教学设计.docx
- 多肉枝干番杏的养殖方法介绍.docx
- 多肉植物秋丽的生长习性与养殖方法.docx
- 中国国家标准 GB/T 31143-2025电弧故障检测和保护电器(AFDD)的一般要求.pdf
- GB/T 46644-2025印刷滚筒半径的测定方法.pdf
- 中国国家标准 GB/T 46644-2025印刷滚筒半径的测定方法.pdf
- 《GB/T 31143-2025电弧故障检测和保护电器(AFDD)的一般要求》.pdf
- 《GB/T 46644-2025印刷滚筒半径的测定方法》.pdf
- GB/T 19075.2-2025通风机 词汇及种类定义 第2部分:种类.pdf
- 中国国家标准 GB/T 19075.2-2025通风机 词汇及种类定义 第2部分:种类.pdf
- 《GB/T 19075.2-2025通风机 词汇及种类定义 第2部分:种类》.pdf
- 《GB/T 4960.4-2025核科学技术术语 第4部分:放射性核素》.pdf
- 中国国家标准 GB/T 4960.4-2025核科学技术术语 第4部分:放射性核素.pdf
最近下载
- NFPA 16-2019 泡沫-水喷头和泡沫-水喷雾系统安装标准.pdf VIP
- 乡村振兴背景下2025年职业技能培训体系建设与实施策略报告.docx VIP
- 陈景润(证明哥德巴赫猜想1+2论文)大偶数表为一个素数与一个不超过二个素数乘积之和.pdf VIP
- 食堂食材配送肉类禽类水产品食品配送车辆配备方案.docx VIP
- AVEVA Marine 船舶生产设计培训中文材料 (套料).pdf VIP
- 【冲刺】2025年-云南财经大学120201会计学《802管理学》考研学霸狂刷1000题(名词解释+.doc
- 生物实验技术原理与实践课件讲解.ppt VIP
- stm32嵌入式考试试题及答案.doc VIP
- 2025至2030中国军工电子行业深度分析及发展前景与发展战略报告.docx
- 嵌入式stm32考试试题及答案.doc VIP
原创力文档


文档评论(0)