SOGO論壇
  登入   註冊   找回密碼
查看: 1884|回覆: 5
列印 上一主題 下一主題

[問題求助] 16X16點矩陣 Keil uVision4 [複製連結]

Rank: 3Rank: 3

狀態︰ 離線
跳轉到指定樓層
1
發表於 2013-3-17 22:55:18 |只看該作者 |倒序瀏覽
誰會用Keil uVision4寫 16X16字幕 的程式
可以教一下嗎?
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 4

數位軟體勳章

狀態︰ 離線
2
發表於 2013-3-20 07:30:44 |只看該作者
ATMEL AT89S52 有 32 個 I/O ,要設計成 16*16 LED display ,可不簡單!
32 個 I/O 可要全部都要使用上了,硬體做好了嗎?若是已經做好了,可以帶來台
南市 (我家) 可以幫您試試看!
最好是自己動手試試,累積撰寫程式的經驗!

Rank: 3Rank: 3

狀態︰ 離線
3
發表於 2013-3-20 23:05:19 |只看該作者
如果可以的話 麻煩寫個樣品給我閱讀看看
顯示畫面文字我再自行編改

3123.JPG (200.68 KB, 下載次數: 25)

Rank: 3Rank: 3

狀態︰ 離線
4
發表於 2013-3-21 22:35:25 |只看該作者
#include <reg51.h>
int da1[8]={0xf3,0xf3,0xf3,0xf3,0xe3,0xff,0xff,0xff};
int da2[8]={0x8f,0x87,0xe3,0xf3,0xe3,0xff,0xff,0xff};
int da3[8]={0x07,0x83,0xf3,0x90,0x00,0x00,0x90,0xf3};
int da4[8]={0xff,0xff,0xff,0x80,0x00,0x3e,0x3f,0x3f};
sbit ul=P3^6;
sbit dl=P3^7;
delay(int d)
{
int i,j;
for (i=0;i<d;i++)
for (j=0;j<6;j++);
}
dptr()
{
int i,i2;
for (i=15;i>-1;i--)
{ P3=0xff;
P0=i;
if (i<8)
{ ul=1;dl=0;
delay(3);
P2=da1[7-i];
ul=0;dl=1;
delay(3);
P2=da2[7-i];
ul=0;dl=0;
}
else
{
ul=1;dl=0;
delay(3);
P2=da3[15-i];
ul=0;dl=1;
delay(3);
P2=da4[15-i];
ul=0;dl=0;
}
delay(10);
}
}
main()
{
while(1)
{
dptr();
}
}

=======
Program Size: data=75.0 xdata=0 code=397
creating hex file from "222"...
"222" - 0 Error(s), 3 Warning(s). 問題我看不懂 可以幫忙嗎

Rank: 1

狀態︰ 離線
5
發表於 2013-3-24 02:33:32 |只看該作者
你要先知道 74LS154、74LS373 怎麼使用的。

Delay() 是為了延遲掃描線,d x 6 圈的 cycle,這部分實際延遲多久要看你 IC 指令周期來算。

P00~P03 (共4Bits) 是你打燈的掃描線,因為是 4bits 所以可以表示數字 0~15。

從線路來看,是直接把值丟給 74LS154 讓它去控制哪一顆電晶體要打開。

從程式來看你的掃描線就是 dptr() 副程式中的變數 i ,每次 i 都從 15→14→13→…→0 這樣跑。

P0=i;     每次 i 都丟給 P00~P03 (也就是丟0~15)。

但是 P04 腳位的改變,對 74LS154 的 G2 腳有啥作用,你要看一下。

每換一條掃描線時延遲 "delay(10);" 時間。

if (i<8)  是區分現在要把資料丟   左半邊  還是  右半邊  的矩陣。

P2 就是控制顯示什麼字樣,每次丟 P2 前,只會丟給一顆 74LS373(兩顆 74LS373 分別控制上面8顆燈、下面8顆燈)。

所以用 P36、P37 控制 74LS373 的 LE 腳,Latch Enable (Active HIGH) Input。

至於送什麼資料出來,這部分你就自己推演一下 For 迴圈吧。
已有 1 人評分威望 收起 理由
紅塵孤鳥 + 1 感謝您熱心幫助會員解決問題,論壇需要您的.

總評分: 威望 + 1   查看全部評分

Rank: 1

狀態︰ 離線
6
發表於 2013-3-24 02:37:59 |只看該作者
補充一下,關於 P04 腳位,你目前程式碼中,並不會改變到 P04。

因為每次 i 都從 15→14→13→…→0 這樣循環,不會超過 15。

只是一直給它 0 會怎麼樣你要了解一下。
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-5-5 13:41

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部