作者d062637776 (寸土寸金台北市信義區)
看板ASM
標題[問題] 求高手解說單晶片(8051)程式碼
時間Mon Aug 31 04:47:54 2009
是這樣的,最近我在做關於紅綠燈小綠人矩陣圖型的報告
而我朋友剛好有用 mikroC 這套軟體寫出簡單的單晶片(8051)小綠人動態掃描的程式。
可是我看不太懂,希望有高手可以幫忙解說程式碼。
------------------------------------------------------------------------------
void main()
{
int key,count;
char s[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //borad all lack oil
const char l[4][8]= {
{
0b10011111,
0b10011111,
0b11001111,
0b11000111,
0b10000111,
0b11100111,
0b11010111,
0b11001011
}
,
{
0b10011111,
0b10011111,
0b11000111,
0b11001011,
0b10000011,
0b11000111,
0b11011011,
0b10011001
}
,
{
0b10011111,
0b10011111,
0b11000011,
0b11001101,
0b00100111,
0b11000111,
0b10111011,
0b00111001
}
,
{
0b10011111,
0b10011111,
0b11000111,
0b11001011,
0b10000011,
0b11000111,
0b11011011,
0b10011001
}
};
do
{
for(key=0;key<20;key++)
{
for(count=0;count<8;count++)
{
p1=s[count]; //掃描各排
p2=l[key/5][count]; //送各排字型
delay_ms(2);
}
delay_ms(30);
}
}
while(1);
}
------------------------------------------------------------------------------
以下是用 Proteus海神 模擬的結果(圖):
http://tinyurl.com/nhoub2
------------------------------------------------------------------------------
PS.另外可否請板友將寫此程式碼的過程轉換成"流程圖"(可用箭頭→述說就好)
EX:開始→設定陣列→....→結束
讓我更好理解來製作報告 麻煩您
--
老化四徵兆
○ zzzz ! * \○/ ★ (○ ?
└□ "
○□═ □ □>
√√ ╦══╦
∥ |\
坐著一直睡 躺著睡不著 舊的一直提 說過就忘記
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.181.46
※ 編輯: d062637776 來自: 114.33.181.46 (08/31 04:51)
1F:推 ruemann:你這個實際跑起來可能會覺得畫面會閃 08/31 06:49
2F:→ ruemann:它的做法很簡單,就是每一個film約46ms(其中30ms是空白) 08/31 06:51
3F:→ ruemann:然後每2ms跑一個掃描線,每個畫面由八條掃描線組合而成 08/31 06:51
4F:→ ruemann:全部的動作只有四張圖,就這樣 08/31 06:52
5F:→ ruemann:最後,根據我對8051的了解,這個線路實際上應該是推不動 08/31 06:55
6F:→ ruemann:也就是應該看不到模擬的畫面(led的亮度會很弱或是沒有) 08/31 06:55
有用海神模擬過了
http://tinyurl.com/nhoub2
※ 編輯: d062637776 來自: 114.33.181.46 (08/31 21:43)
7F:→ d062637776:模擬也是我朋友拉的 程式是專為模擬而寫 08/31 21:56