電子活動看板 |
尚未結案
|
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
|
aki
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
我這有一本書是寫控制 5x7 dots 也許對你有幫助.
C 與 8051 單晶片實務設計-使用 Keil C》/賴麒文 書號:P6297 頁數:約 728 頁 ISBN:978-986-125-8 附件:光碟片 出版日期:2007年01月26日 出版廠商:文魁資訊股份有限公司 你可以參考看看囉 ! ===================引 用 tw00235701 文 章=================== 想問一下 現在外面電子活動看板的原理??? 他們的中文是如何顯示的... 因為小弟現在需要利用8255卡做16*16的點矩陣來顯示中文.... 可是...始終不知道點矩陣和程式如何同步顯示中文 |
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
5*7的我會用阿 但是5*7不能顯示中文阿..........
我是用陣列去儲存我要顯示的字的資料.... 只是現在這種方法不管用了.. 因為要求說..textbox輸入什麼 點矩陣就要顯示什麼.. 例如輸入 "welcome歡迎光臨" 點矩陣就要跟著顯示"welcome歡迎光臨" 16*16點矩陣 顯示一個字 不是必須要丟給他16筆資料嗎?? 老師說網路上找的到 人家算好的中文字碼表... 只是我們都找不到 例如 正=&H00,&HA1,&HB3,...等16筆←類似這種的表 所以我才想問看看 外面電子看板的是怎樣做的 |
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
這是我的程式碼..只是還不完整
因為還要加上開關控制左右移 我還沒寫進去 [code vb] Option Explicit Dim Count_value, Scan_value As Integer Dim PortAddress As Integer Dim LED_Matrix As Variant Dim Scan As Variant '掃描碼 Dim Count_speed As Integer Const SPEED = 500 Dim A8255 As Integer Dim Cword As Integer Private Sub Command1_Click() Dim j As Integer While 1 For j = 0 To 15 Out_addr_data A8255 2, &H0 Select Case j Case 0 Out_addr_data A8255, LED_Matrix(16 * Count_value) Case 1 Out_addr_data A8255, LED_Matrix(16 * Count_value 1) Case 2 Out_addr_data A8255, LED_Matrix(16 * Count_value 2) Case 3 Out_addr_data A8255, LED_Matrix(16 * Count_value 3) Case 4 Out_addr_data A8255, LED_Matrix(16 * Count_value 4) Case 5 Out_addr_data A8255, LED_Matrix(16 * Count_value 5) Case 6 Out_addr_data A8255, LED_Matrix(16 * Count_value 6) Case 7 Out_addr_data A8255, LED_Matrix(16 * Count_value 7) Case 8 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 8) Case 9 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 9) Case 10 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 10) Case 11 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 11) Case 12 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 12) Case 13 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 13) Case 14 Out_addr_data A8255 1, LED_Matrix(16 * Count_value 14) Case Else Out_addr_data A8255 1, LED_Matrix(16 * Count_value 15) End Select Out_addr_data A8255 2, Scan(j) Delay 200 Next j Text1.Text = Count_value Count_speed = Count_speed 1 If Count_speed = SPEED Then Count_speed = 0 If Count_value = 15 Then Count_value = 0 Else Count_value = Count_value 1 End If End If DoEvents Wend End Sub Public Sub Delay(t As Integer) Dim t1, t2 As Integer For t1 = 0 To t For t2 = 0 To t Next t2 Next t1 End Sub End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() LED_Matrix = Array(&HFF, &HFF, &HDF, &HEF, &HD1, &H9F, &H84, &H0, _ &HD1, &H55, &HDE, &H55, &HD1, &H1, &H85, &H55, _ &HD1, &H55, &HDE, &HFE, &HF9, &HF9, &H87, &HE7, _ &HB4, &H1F, &HF7, &HE7, &HF5, &HF9, &HE3, &HFE) '歡字 Scan = Array(&H0, &H1, &H2, &H3, &H4, &H5, &H6, &H7, &H8, &H9, &HA, &HB, &HC, &HD, &HE, &HF) Scan_value = 0 Count_value = 0 Count_speed = 0 Timer1.Enabled = False Timer1.Interval = 10 Cword = &H81 'port C為輸入 port A B為輸出 A8255 = &H80 PortAddress = &H378 out PortAddress 2, &H7 Out_addr_data A8255 3, Cword End Sub Public Sub Out_addr_data(addr As Integer, data As Variant) Dim i As Integer out PortAddress 2, &H7 out PortAddress, addr out PortAddress 2, &HF out PortAddress 2, &H7 out PortAddress, data out PortAddress 2, &H6 For i = 0 To 100: Next i out PortAddress 2, &H7 End Sub Public Function In_addr_data(addr As Integer) Dim i, data As Integer out PortAddress 2, &H7 out PortAddress, addr out PortAddress 2, &HF out PortAddress 2, &H7 out PortAddress, &HFF out PortAddress 2, &H27 out PortAddress 2, &H25 data = Inp(PortAddress) out PortAddress 2, &H27 In_addr_data = data End Function [/code]
編輯記錄
tw00235701 重新編輯於 2008-12-04 21:49:36, 註解 無‧
tw00235701 重新編輯於 2008-12-05 00:45:58, 註解 無‧ tw00235701 重新編輯於 2008-12-05 00:55:22, 註解 無‧ |
aki
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
這位同學益眾有一本書,
8051 C 語言寶典 型號:K6104015 作者:鄧錦城 有一章專門講 8x8, 16x16 dots 顯示中文的方法, 用 C 來寫,我想可以供你參考看看喔! ===================引 用 tw00235701 文 章=================== 5*7的我會用阿 但是5*7不能顯示中文阿.......... 我是用陣列去儲存我要顯示的字的資料.... 只是現在這種方法不管用了.. 因為要求說..textbox輸入什麼 點矩陣就要顯示什麼.. 例如輸入 "welcome歡迎光臨" 點矩陣就要跟著顯示"welcome歡迎光臨" 16*16點矩陣 顯示一個字 不是必須要丟給他16筆資料嗎?? 老師說網路上找的到 人家算好的中文字碼表... 只是我們都找不到 例如 正=&H00,&HA1,&HB3,...等16筆←類似這種的表 所以我才想問看看 外面電子看板的是怎樣做的 |
Eigen
初階會員 ![]() ![]() 發表:19 回覆:36 積分:26 註冊:2002-12-05 發送簡訊給我 |
參考這個 https://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=29996
去找 舊時代的 et3 內部的 STDFONT.15 或 google HZK16F 試試吧 在 xp 還用 et3 好像跟不上時代,也有版權問題 |
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
|
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
|
Eigen
初階會員 ![]() ![]() 發表:19 回覆:36 積分:26 註冊:2002-12-05 發送簡訊給我 |
用法參考這吧 http://topic.csdn.net/t/20001204/12/45009.html
我沒用過,不保證可行 要做這種東西,你要先決定你要顯示的字幕有多大,例如 16*16 ,那就 是 256 個點,表示,需要 32 bytes 才能表達出 256 個點 顯示端的操作很單純,就是將 pc 端給的資料,輸出到 io pin ,讓 led 顯示出來罷了。 問題在 pc 端,你需要一次丟 32byte 的顯示畫面給 mcu 。簡單點的作法,配置一個大array 將 edit 輸入的字,查表,轉成 16*16 or 8*16 ,塞到 array 之中。 另外配置一個 32byte 的array, 專門做從 大array 抓資料的動作,然後丟mcu |
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
|
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
|
tw00235701
一般會員 ![]() ![]() 發表:2 回覆:7 積分:1 註冊:2008-12-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |