51单片机(四位数码管的显示)程序[1]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机(四位数码管的显示)程序
基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管 上显示P ”个字符;2)等待按键,如按了任何一个键,则将这 4个字符清除, 改为显示0000”个字符(为数字的0)。
E3最佳答案
下面这个程序是4x4距阵键盘丄ED 数码管显示,一共可以到0-F 显示,你可以稍微 改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你!
#i nclude
Dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; //gongyang 数码管 0-F 代码
void key_delay(void) {
int t;
for(t=0;t<500;t++);
}
un sig ned
char k;
//设置全局变量k 为键盘的键值
键盘延时函数
键盘扫描函数 ***************************** */
//延时函数
void
keyscan(void)
//键盘初始化 //有键按下? //延时 //确认真的有键按下? //使行线 P2.4 为低电平,其余行为高电平 //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)//键盘扫描函数 {
unsigned char a;
P2 = 0xf0;
if(P2!=0xf0)
{
key_delay();
if(P2!=0xf0)
{
P2 = 0xfe;
key_delay();
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=Dig[0];break;
case 1:P0=Dig[1];break;
case 2:P0=Dig[2];break;
case 3:P0=Dig[3];break;
case 4:P0=Dig[4];break;
case 5:P0=Dig[5];break;
************************
**** ***
主函数 * ********************************** //调用键盘扫描函数 //查找按键对应的数码管显示代码
case 6:P0=Dig[6];break;
case 7:P0=Dig[7];break;
case 8:P0=Dig[8];break;
case 9:P0=Dig[9];break;
case
10:P0=Dig[10];break;
case
11:P0=Dig[11];break;
case
12:P0=Dig[12];break;
case
13:P0=Dig[13];break;
case
14:P0=Dig[14];break;
case
15:P0=Dig[15];break;
default:break; // 退出
}
}
}
end
Welcome To
Download !! !
欢迎您的下载,资料仅供参考!