资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
51单片机(四位数码管的显示)程序 基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管上显示“P_ _ _”4个字符;2)等待按键,如按了任何一个键,则将这4个字符清除,改为显示“0000”4个字符(为数字的0)。最佳答案 下面这个程序是4x4距阵键盘,LED数码管显示,一共可以到0-F显示,你可以稍微改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你!#includeunsigned char code Dig=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; /gongyang数码管 0-F 代码 unsigned char k; /设置全局变量k 为键盘的键值/*键盘延时函数*/void key_delay(void) /延时函数 int t; for(t=0;t500;t+);/*键盘扫描函数*/void keyscan(void) /键盘扫描函数 unsigned char a; P2 = 0xf0; /键盘初始化 if(P2!=0xf0) /有键按下? key_delay(); /延时 if(P2!=0xf0) /确认真的有键按下? P2 = 0xfe; /使行线P2.4为低电平,其余行为高电平 key_delay(); a = P2; /a作为缓存 switch (a) /开始执行行列扫描 case 0xee:k=15;break; case 0xde:k=11;break; case 0xbe:k=7;break; case 0x7e:k=3;break; default:P2 = 0xfd; /使行线P2.5为低电平,其余行为高电平 a = P2; switch (a) case 0xed:k=14;break; case 0xdd:k=10;break; case 0xbd:k=6;break; case 0x7d:k=2;break; default:P2 = 0xfb; /使行线P2.6为低电平,其余行为高电平 a = P2; switch (a) case 0xeb:k=13;break; case 0xdb:k=9;break; case 0xbb:k=5;break; case 0x7b:k=1;break; default:P2 = 0xf7; /使行线P2.7为低电平,其余行为高电平 a = P2; switch (a) case 0xe7:k=12;break; case 0xd7:k=8;break; case 0xb7:k=4;break; case 0x77:k=0;break; default:break; break; /* *主函数*/void main(void) while(1) keyscan(); /调用键盘扫描函数 switch(k) /查找按键对应的数码管显示代码 case 0:P0=Dig0;break; case 1:P0=Dig1;break; case 2:P0=Dig2;break; case 3:P0=Dig3;break; case 4:P0=Dig4;break; case 5:P0=Dig5;break; case 6:P0=Dig6;break; case 7:P0=Dig7;break; case 8:P0=Dig8;break; case 9:P0=Dig9;break; case 10:P0=Dig10;break; case 11:P0=Dig11;break; case 12:P0=Dig12;break; case 13:P0=Dig13;break; case 14:P0=Dig14;break; case 15:P0=Dig15;break; default:break; /退出 /*end*/
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号