问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问单片机中要怎么用按键控制数码管显示的模式。。用C语言编程。。

发布网友 发布时间:2022-04-28 21:11

我来回答

3个回答

热心网友 时间:2023-09-15 23:53

可以用按键中断,也可以用按键查询。
用按键中断:如果按键按下就进入中断子程序里,然后在中断子程序里改变显示模式即可
按键查询:用while 语句查询某个按键是否按下,如果未按下则继续执行子程序,如果按键按下则跳入到事先写好的子程序,在子程序里改变显示模式
希望能帮到你!

热心网友 时间:2023-09-15 23:53

延时有问题,10毫秒试一试,假如闪的话就改小。还有P0接上拉电阻没?单片机晶振工作没?这都要测试的

热心网友 时间:2023-09-15 23:54

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0};
uchar num,temp,num1;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar keyscan();
void display(uchar aa);
void main()
{
num=17;
la=1;
P0=0;
la=0;
wela=1;
P0=0xc0;
wela=0;

while(1)
{
display(keyscan());
}
}
void display(uchar aa)
{
la=1;
P0=table[aa-1];
la=0;
}
uchar keyscan()
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:num=1;
break;
case 0xde:num=2;
break;
case 0xbe:num=3;
break;
case 0x7e:num=4;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}

P3=0xfd;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:num=5;
break;
case 0xdd:num=6;
break;
case 0xbd:num=7;
break;
case 0x7d:num=8;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}

P3=0xfb;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:num=9;
break;
case 0xdb:num=10;
break;
case 0xbb:num=11;
break;
case 0x7b:num=12;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}

P3=0xf7;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:num=13;
break;
case 0xd7:num=14;
break;
case 0xb7:num=15;
break;
case 0x77:num=16;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
return num;

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 用C语言编程,使51单片机数码管从0显示到60 华为畅享10怎么设置otg? 51单片机C语言数码管动态显示 单片机如何用c语言使数码管显示3 c语言如何编程点亮一个数码管显示数字 51单片机C语言程序中如何确定数码管显示内容 我朋友的微信,停用了,我发的消息她还能看见吗 告诉微信好友删除自己的句子 梦到做手术和交朋友什么意思啊? 如果一个人看到你对他抖音点赞马上就设置私密是什么意思? 梦到自己给别人做手术 缩小图片看,为什么私密相册还有点赞数,没有公开过呀? 自已妻子去世了手机号要停用朋友圈怎么写? 明天就要动手术了,昨天晚上我做了一个梦,梦到陪我长大的奶奶,她出车祸的场面让我心碎我在她出车祸的地 梦到自己给别人做手术先是呗别人用手术刀把肚子开刀。然后我继续那个人给一个正常人开刀。 微信收藏隐私图会被官方看到吗 梦见陪亲人进产房,自己反而被做手术是什么意思? 梦到给别人做手术是什么意思 微信私密照片人家居然能点赞 梦见医生本人做手术,我去照顾她 华为畅享10怎么用OTG? 单片机C语言编程关于数码管动态显示的问题 怎样打开华为畅亨10s的OTG功能? 单片机实现4位一体数码管显示0000—FFFF的16进制(C语言编程)怎么编程? 华为畅享10s的OTG功能在哪里打? 如何用C语言实现数码管显示数字12345和HELLO oppor9s取消了应用加密,为什么进微信QQ还是要密码呢?怎么取消密码 华为畅享10怎么OTg怎么打开? C语言 单片机数码管动态显示 为什么会显示成这样,请高手帮忙,谢谢 oppor9s手机应用加密怎么取消 用51单片机C语言编写程序实现6位共阴极数码管循环显示0123456789ABCDEF,六个数码管是连续不同的六个数? OPPOr9s应用加密怎么取消? 华为畅享10plus OTG怎么打开? 51单片机C语言程序4个独立按键实现对数码管数字显示的加减清零等 激光打印机可加粉和不可加粉的区别 打印机硒鼓灌了粉,对打印机有什么损害么? hp打印机—12A易加粉硒鼓怎么加粉 连供硒鼓和易加粉硒鼓比有什么具体的不同? ps代做一张海报多少钱? ps中用一张图“替代”(包括这张图的样式)图层中一张图怎么做