《51单片机(四位数码管的显示)程序》由会员分享,可在线阅读,更多相关《51单片机(四位数码管的显示)程序(3页珍藏版)》请在金锄头文库上搜索。
1、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
2、,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
3、= 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为低电平,其余行
4、为高电平 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)
5、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*/