全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4114
推到 Plurk!
推到 Facebook!

8051 控制十顆LED燈...補上電路

答題得分者是:src
iestlpeggy
一般會員


發表:17
回覆:18
積分:7
註冊:2007-12-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-31 12:48:41 IP:211.74.xxx.xxx 訂閱
目前有問題就是 一個port 我是會用
但是在多加上 剩下的兩隻腳位
跟程式部分 好像無法完成我想達到的動作
以下是我想動作的圖示
左邊數來第一第二 就是port2 .0.1

●亮
○暗
●●●●●●●●●●
按下開關
○●●●●●●●●●
按下開關
○○●●●●●●●●
按下開關
○○○●●●●●●●
按下開關
○○○○●●●●●●
按下開關
○○○○○●●●●●
按下開關
○○○○○○●●●●
按下開關
○○○○○○○●●●
按下開關
○○○○○○○○●●
按下開關
○○○○○○○○○●
按下開關
○○○○○○○○○○

就執行一次,不會無窮盡的重複

下面是目前程式
可是發現按鍵部分居然沒有反應

希望可以幫我查看有什麼原因

[code cpp]
#include
sbit wled =P0^7;

sbit K1 =P1^1;
//char DATA_7SEG[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
/*--------------------------------*/
delay(int d)
{
int i,j;
for(i=0;i for(j=0;j<100;j );
}
/*--------------------------------*/
unsigned char SEG=0;
void main()
{
while(1)
{
P0=0x00;
P2=0xFC;

while(1)
{
if(K1==0)break;
delay(100);
}
}
while(1)
{
P0=0x00;
P2=0xFD;

while(1)
{
if(K1==1)break;
delay(100);
}
}
while(1)
{
P0=0x00;
P2=0xFF;

while (1)
{
if(K1==1)break;
delay(100);
//if(SEG>=0xff)SEG=0;
SEG<<=1;
SEG|=0x01;
delay(100);
P0=SEG;
}
}


}
[/code]
編輯記錄
iestlpeggy 重新編輯於 2008-07-31 20:02:04, 註解 無‧
iestlpeggy 重新編輯於 2008-08-01 23:23:57, 註解 無‧
src
高階會員


發表:1
回覆:94
積分:154
註冊:2005-08-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-31 19:19:29 IP:59.117.xxx.xxx 訂閱

[code c#]
#include
sbit K1 =P1^1;
/*--------------------------------*/
delay(int d)
{
int i,j;
for(i=0;i for(j=0;j<100;j );
}
/*--------------------------------*/
unsigned int SEG=0;
void main()
{
while(1)
{
P0=0x00;
P2=0xFC;
while( K1 );
SEG = 0;
while (1)
{
SEG <<= 1;
SEG |= 0x01;
delay(200);
if(SEG == 0x07FF)
{
SEG = 0;
}
P0=SEG;
P2=((SEG >> 8) | 0xFC);
if(K1==1)break;
}
}
}
[/code]
iestlpeggy
一般會員


發表:17
回覆:18
積分:7
註冊:2007-12-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-31 19:58:51 IP:59.105.xxx.xxx 訂閱
大大 我發現這樣去測電路
變成按鍵沒有用到
會自動一直執行說
而且 會無窮盡的跑
===================引 用 src 文 章===================

[code c#]
#include
sbit K1 =P1^1;
/*--------------------------------*/
delay(int d)
{
int i,j;
for(i=0;i for(j=0;j<100;j );
}
/*--------------------------------*/
unsigned int SEG=0;
void main()
{
while(1)
{
P0=0x00;
P2=0xFC;
while( K1 );
SEG = 0;
while (1)
{
SEG <<= 1;
SEG |= 0x01;
delay(200);
if(SEG == 0x07FF)
{
SEG = 0;
}
P0=SEG;
P2=((SEG >> 8) | 0xFC);
if(K1==1)break;
}
}
}
[/code]



src
高階會員


發表:1
回覆:94
積分:154
註冊:2005-08-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-08-01 06:06:09 IP:59.115.xxx.xxx 訂閱
請把電路圖貼上
iestlpeggy
一般會員


發表:17
回覆:18
積分:7
註冊:2007-12-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-08-01 11:00:03 IP:211.74.xxx.xxx 訂閱

===================引 用 src 文 章===================
請把電路圖貼上

f5.wretch.yimg.com/iestlpeggy/6/1095169870.jpg

因為不會放圖 就放到其他空間
src
高階會員


發表:1
回覆:94
積分:154
註冊:2005-08-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-08-01 18:49:13 IP:59.117.xxx.xxx 訂閱
您的網址無法開啟
===================引 用 iestlpeggy 文 章===================

===================引 用 src 文 章===================
請把電路圖貼上

f5.wretch.yimg.com/iestlpeggy/6/1095169870.jpg

因為不會放圖 就放到其他空間
系統時間:2024-05-02 10:16:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!