[問題] 8051 有時候有反應有時候沒反應
開發平台(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)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.128.156.248
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1434176865.A.4BB.html
推
06/13 17:49, , 1F
06/13 17:49, 1F
→
06/13 17:51, , 2F
06/13 17:51, 2F
→
06/13 17:52, , 3F
06/13 17:52, 3F
→
06/13 17:53, , 4F
06/13 17:53, 4F
→
06/16 14:34, , 5F
06/16 14:34, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章