51单片机C语言写的数码管显示哪里出问题了?
发布网友
发布时间:2023-10-19 23:18
我来回答
共4个回答
热心网友
时间:2024-05-25 00:34
f(P3_6==0) //按下后,数码管闪烁
{
delay(10);
while(!P3_7);
flag=0;
}
这个地方你是不是写错了?应该是查询while(!P3_6);吧?
另外,你在中断里面等待flag==1是不行的,因为你采用查询方式,而且是在主程序里面查询,因此,在中断里面等待是不行的,程序可能会在这个地方进入死循环
热心网友
时间:2024-05-25 00:34
当然有问题了,什么是中断你了解了吗???中断里面可以调用其他函数吗???
热心网友
时间:2024-05-25 00:34
这程序写的够乱得
在中断里的操作尽量是置标志位
像你写的那两个函数 应该放在主循环里
其次 按键 你不做防抖处理吗 ?
如果你按住键的话 你要在主循环里不断的给flag 置1 吗 ?
没仔细看
if(P3_6==0) //按下后,数码管闪烁
{
delay(10);
while(!P3_7); ?????????????????????????????????????????????????????????????????????
flag=0;
}
if(P3_7==0) //按下后正常显示
{
delay(10);
while(!P3_7);
flag=1;
}
热心网友
时间:2024-05-25 00:35
在中断里调用的函数需要申明为重载入函数
具体网上有很多例子
热心网友
时间:2024-05-25 00:34
f(P3_6==0) //按下后,数码管闪烁
{
delay(10);
while(!P3_7);
flag=0;
}
这个地方你是不是写错了?应该是查询while(!P3_6);吧?
另外,你在中断里面等待flag==1是不行的,因为你采用查询方式,而且是在主程序里面查询,因此,在中断里面等待是不行的,程序可能会在这个地方进入死循环
热心网友
时间:2024-05-25 00:34
当然有问题了,什么是中断你了解了吗???中断里面可以调用其他函数吗???
热心网友
时间:2024-05-25 00:35
这程序写的够乱得
在中断里的操作尽量是置标志位
像你写的那两个函数 应该放在主循环里
其次 按键 你不做防抖处理吗 ?
如果你按住键的话 你要在主循环里不断的给flag 置1 吗 ?
没仔细看
if(P3_6==0) //按下后,数码管闪烁
{
delay(10);
while(!P3_7); ?????????????????????????????????????????????????????????????????????
flag=0;
}
if(P3_7==0) //按下后正常显示
{
delay(10);
while(!P3_7);
flag=1;
}
热心网友
时间:2024-05-25 00:36
在中断里调用的函数需要申明为重载入函数
具体网上有很多例子
51单片机C语言写的数码管显示哪里出问题了?
f(P3_6==0) //按下后,数码管闪烁 { delay(10);while(!P3_7);flag=0;} 这个地方你是不是写错了?应该是查询while(!P3_6);吧?另外,你在中断里面等待flag==1是不行的,因为你采用查询方式,而且是在主程序里面查询,因此,在中断里面等待是不行的,程序可能会在这个地方进入死循环 ...
51单片机数码管显示不了
数码管的公共端没有连接。51单片机数码管显示不了是因为数码管的公共端没有连接。数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件。
帮忙看看这个51单片机的计数器程序哪里出问题了吧,用矩阵键盘控制的
1、数码管显示部分的问题,没有消 0 ,C 语言中变量初值都是 0 ,所以一开始就会显示 0 如果你不想让显示 0 ,那就要写消 0 的程序,就加两句话,很简单的 2、键盘处理部分的问题,如果确认你的键盘检测是对的,那么就是键值处理部分的问题了 3、51都是加法计数器,如果你要想进行减法计数的...
为什么我的51单片机数码管温度显示只显示-00000.06而且不能事实...
1.程序问题:程序中可能存在错误或者是不完善的设计,导致温度传感器采集的数据没有正确的进行处理显示,需要检查程序并进行调试对照采集温度数据。2.硬件问题:可能是温度传感器引脚连接的问题导致数据采集不正常,或者是数码管电路连接的问题导致不能够正确地显示。需要检查硬件电路的连接和功能。3. 环境问题...
高分:51单片机汇编程序,数码管跳动问题
应该是串口收发导致单片机忙不过来,显示就会闪烁,因为你的延时程序是空操作,也占用CPU,建议你用定时中断做显示程序,中断时间定在5ms就可以了,这个定时器可以通过计数干很多其他事,比如500ms干一次。这样就不用CPU做空操作干等了。给你贴一个我写的显示程序(在定时中断中调用,这个程序显示两组数据...
51单片机c语言编程序让两位数码管显示0-99,求指导!!急用!
参考下网上的程序,只要明白两个问题就不难了,第一是数码管的结构及显示原理;第二是动态显示
51单片机仿真时,数码管第一位显示的怎么不是0
明显错误:temp没有初始化,直接调用P2=table[temp];仔细想想,P2=table[temp]这句执行时,temp只可能是1、2、3、4。应该是0、1、2、3就可以了吧。因此 temp=0;...while(1){ P2=table[temp];temp++;if(temp==4){ temp=0;} } ...
...我写的51单片机,用的c语言,结果数码管就显示俩00,一直不动,这是怎么...
2,用KEY2做加,KEY3做减。按一个KEY2,当前操作的单元加1 ,(如“时”加一)。按一下KEY3,当前操作的单元减一。还可以把当前操作的单元显示为闪烁状态。键盘扫描处理,如扫描KEY1,先看KEY1是否按下,然后延时,然后再次看KEY1是否仍然按下,如果是,则确认KEY1有效,否则认为是抖动。
关于STC51单片机按键影响数码管亮度的问题
不知道你的是汇编语言写的程序还是用C语言写的,问题出在当按下按键时,你的程序是在等待按键释放吧,不再去执行显示子程序了,所以,才出现这种情况。你可以在等待按键释放的同时调用显示子程序。假设按键定义为ins1,显示子程序是display(),可以这么写:if(ins1==0){ 想要写的语句;while(ins1=...
51单片机数码管显示问题
一个数码管8段加一个公共端需要9根口线才能完全显示任意数字,为了节省IO口线,就利用了人眼视觉驻留的原理(就像电影胶片每秒24帧,连续起来播放你觉得没有任何间断),每一位数码管显示一会儿,然后关掉它,再去显示下一个数码管。只要保证在1秒内每个数码管能扫上个十几次二十几次,视觉上就好像同时...