开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
8051 (C)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
按下按钮 有时候有反应 有时候没有
喂入的资料(Input):
按下按钮
预期的正确结果(Expected Output):
四位数七段+1
0000~99999
错误结果(Wrong Output):
有时有+1有时没有
程式码(Code):(请善用置底文网页, 记得排版)
https://gist.github.com/okok897/85538583c8a3977323bb
#include <reg51.h> //8051接脚定义。
#define seg7 P1
#define segs P2
#define PB P0 //按钮
void scanner(int);
void delay(int);
int i;
int flag;
unsigned char j;
char seg[10]={0xc0,0xf9,0xa4,0xb0,0x99, //七段的字形
0x92,0x82,0xf8,0x80,0x90};
main()
{
PB=1;
flag=0;
i=0;
while(1)
{
scanner(i);
if (PB==0){
delay(10);
while(PB){
delay(20);
i++;
scanner(i);
break;
}
}
}
}
void scanner(int num){
segs=0x07; //千位数扫描信号。
seg7=seg[(num/100)/10]; //显示千位数字。
delay(2);
segs=0x0b; //百位数扫描信号。
seg7=seg[(num/100)%10]; //显示百位数字。
delay(2);
segs=0x0d; //十位数扫描信号。
seg7=seg[(num%100)/10]; //显示十位数字。
delay(2);
segs=0x0e; //个位数扫描信号。
seg7=seg[(num%100)%10]; //显示个位数字。
delay(2);
}
void delay(int t){
int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++);
}
补充说明(Supplement):
请教如何改良程式
不知道问题是不是出在防弹跳或是 七段显示的delay时 按钮放开但是在delay所以没反应?
我觉得我的程式有点像是在硬干....
这是我第一次在ptt发文 (Y)