專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

電子設(shè)計(jì)大賽-LED點(diǎn)陣書(shū)寫(xiě)顯示屏(總結(jié))

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年05月18日   【字體:

     今天終于決定要為這次電賽寫(xiě)點(diǎn)小結(jié)了。

                              遺憾.....

  2010/05/14

       歷經(jīng)了三個(gè)晚上的通宵,白天也逃課了。究竟還是沒(méi)把電路板做出來(lái)...遺憾....QG那邊那臺(tái)刻板機(jī),刻我電路板中的其中一面就需要5、6個(gè)小時(shí),而且還刻不成功,最后是因?yàn)閾?dān)心已經(jīng)軸心磨損的刻板機(jī)再這樣持續(xù)工作下去會(huì)壞掉而放棄刻板。那時(shí)我的心情很是沉重,因?yàn)殡娐钒暹@一環(huán)節(jié)的失敗就意味著之前的所有努力與成果都是枉然,沒(méi)有電路板作載體,再好的系統(tǒng)工作方案、再好的程序也得不到體現(xiàn)...眼看這二十多天的努力頻臨死亡心里真不是滋味。(end)

      2010/05/15

  已經(jīng)放棄了采用刻板機(jī)來(lái)制作電路板,而今天卻意外的發(fā)現(xiàn)工一某間室可以幫我激光打印熱轉(zhuǎn)印紙。之前我跑遍了半個(gè)大學(xué)城都找不到可以幫我激光打印熱轉(zhuǎn)印紙的地方(手工制作電路板的方法其中一種叫熱轉(zhuǎn)印法,需要激光打印機(jī)把高密度抗腐蝕碳粉打到熱轉(zhuǎn)印紙上面去,再熱轉(zhuǎn)印到覆銅板上去)。我抱著努力到最后的心態(tài)去打印了幾張熱轉(zhuǎn)印紙;蛟S是熱轉(zhuǎn)印紙的質(zhì)量問(wèn)題,每次打印都會(huì)受熱過(guò)度而卷縮(南亭的小賽格真不賣(mài)好東西,銅板又貴又不平整、甚至還雙面導(dǎo)電。,以致線(xiàn)路不完整,沒(méi)辦法了,總比沒(méi)有好,線(xiàn)路不完整就用油性筆補(bǔ)唄...

      到最后,試驗(yàn)品(小銅板)腐蝕的效果很好,線(xiàn)路很完整。大銅板(20cmX17CM)估計(jì)因我只用砂紙打磨了一下,沒(méi)有用酸性液體預(yù)處理過(guò),熱轉(zhuǎn)印效果不怎么樣,最后斷線(xiàn)的地方不少,這樣一直補(bǔ)線(xiàn),(同時(shí),曉光在把另一塊從QG那邊刻板機(jī)做出來(lái)的失敗品的線(xiàn)路進(jìn)行抗腐蝕的劃線(xiàn)和斷線(xiàn)的處理)直到下午五點(diǎn)多,已經(jīng)超過(guò)了作品上交時(shí)間...這也意味著我們這次比賽以遺憾告終了....(end)

 

        雖然這次比賽是不成功了,但作品還可以繼續(xù)做下去,這樣可以當(dāng)做我們的一次項(xiàng)目經(jīng)驗(yàn)。我是這么認(rèn)為的:拿不了獎(jiǎng)也沒(méi)關(guān)系,以后拿獎(jiǎng)的機(jī)會(huì)還多。最重要的是在比賽中使自己得到鍛煉,能力得到提升。不過(guò)這下子要得找個(gè)更好的手工制作電路板的方法。這熱轉(zhuǎn)印法太依賴(lài)于特定的機(jī)器(激光打印機(jī))了 ,萬(wàn)一以后他不幫我們打了那我們就麻煩了。 (感嘆:如果我能早點(diǎn)發(fā)現(xiàn)這里可以幫我進(jìn)行激光打印,那我的電路板或許早就做出來(lái)了!不過(guò),人能有多少個(gè)“如果”?)

         另外,我覺(jué)得我自己對(duì)這次比賽的時(shí)間安排得不太好:大概是4月15號(hào)公布題目,直至4月底我才把系統(tǒng)詳細(xì)的最優(yōu)工作方案寫(xiě)了下來(lái) (可惜這段時(shí)間只有我一個(gè)人在做,宇曦老是說(shuō)沒(méi)頭緒,天天在打PSP和看小說(shuō),而曉光也剛學(xué)單片機(jī)沒(méi)多久。不然,大家能好好合作的話(huà)相信速度會(huì)更快!)。大概是4月28號(hào)左右吧,我把LED屏驅(qū)動(dòng)板的原理圖畫(huà)好后(即系統(tǒng)工作方案已經(jīng)定下了、元器件也選好了) ,宇曦也幫忙布線(xiàn)。

        這樣直到5月1號(hào),宇曦回家了(5月7/8號(hào)回來(lái)),曉光也回家了(貌似是5月5號(hào)回來(lái)的吧,忘記了),那慘了,留下我一個(gè)寂寞的孩子在孤軍作戰(zhàn).....于是我不甘寂寞,5月1號(hào)跟女朋友出去玩了......接下來(lái)幾天,我的主要工作是寫(xiě)程序。在宇曦回來(lái)之前,貌似我剩下幾個(gè)函數(shù)還沒(méi)寫(xiě):最頭大的一個(gè)“對(duì)象拖移”函數(shù)還有其他幾個(gè)小函數(shù)。宇曦回來(lái)后,我把對(duì)象拖移交給他寫(xiě)了(你是數(shù)據(jù)結(jié)構(gòu)上的“刷題哥”啊,所以,這種算法難度高的事就拜托你了!沒(méi)時(shí)間了,我弄其他的驅(qū)動(dòng)去)。(感嘆:如果早期宇曦能積極點(diǎn)就好。

         接下來(lái)在最后的那幾天,大家都積極了,我們一起把主控板、光筆的PCB圖都設(shè)計(jì)好。我忘記了自己什么時(shí)候把程序調(diào)得通過(guò)編譯了....同時(shí),我在另一塊開(kāi)發(fā)板上測(cè)試通過(guò)了一些諸如延時(shí)函數(shù)(該單片機(jī)是1T單片機(jī),用同樣的晶振,速度卻是普通51單片機(jī)的8~12倍,好東西。、AD掃描(STC12C5A60S2單片機(jī)P1.0~P1.7內(nèi)置8路10位高精度AD模塊)等等的函數(shù)。那時(shí)候眼看形勢(shì)發(fā)展得還可以,真沒(méi)想到在最后我們會(huì)敗在電路板的制作上面....

 

 

         最后,我說(shuō)說(shuō)我們這個(gè)作品的設(shè)計(jì)方案,有興趣的童鞋們可以看看:

      首先,是題目要求:

  

LED點(diǎn)陣書(shū)寫(xiě)顯示屏
一、任務(wù)

設(shè)計(jì)并制作一個(gè)基于32×32點(diǎn)陣LED模塊的書(shū)寫(xiě)顯示屏,其系統(tǒng)結(jié)構(gòu)如圖1所示。在控制器的管理下,LED點(diǎn)陣模塊顯示屏工作在人眼不易覺(jué)察的掃描微亮和人眼可見(jiàn)的顯示點(diǎn)亮模式下;當(dāng)光筆觸及LED點(diǎn)陣模塊表面時(shí),先由光筆檢測(cè)觸及位置處LED點(diǎn)的掃描微亮以獲取其行列坐標(biāo),再依據(jù)功能需求決定該坐標(biāo)處的LED是否點(diǎn)亮至人眼可見(jiàn)的顯示狀態(tài)(如圖1中光筆接觸處的深色LED點(diǎn)已被點(diǎn)亮),從而在屏上實(shí)現(xiàn)“點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫(huà)擦除、連寫(xiě)多字、對(duì)象拖移”等書(shū)寫(xiě)顯示功能。

   控制器
 
32×32   

 LED    

點(diǎn)陣模塊  
 
光筆  
 


 

圖1  LED點(diǎn)陣書(shū)寫(xiě)顯示屏系統(tǒng)結(jié)構(gòu)示意圖

二、要求

1.基本要求

(1)在“點(diǎn)亮”功能下,當(dāng)光筆接觸屏上某點(diǎn)LED時(shí),能即時(shí)點(diǎn)亮該點(diǎn)LED,并在控制器上同步顯示該點(diǎn)LED的行列坐標(biāo)值(左上角定為行列坐標(biāo)原點(diǎn))。

(2)在“劃亮”功能下,當(dāng)光筆在屏上快速劃過(guò)時(shí),能同步點(diǎn)亮劃過(guò)的各點(diǎn)LED,其速度要求2s內(nèi)能劃過(guò)并點(diǎn)亮40點(diǎn)LED。

(3)在“反顯”功能下,能對(duì)屏上顯示的信息實(shí)現(xiàn)反相顯示(即:字體筆畫(huà)處不亮,無(wú)筆畫(huà)處高亮)。

(4)在“整屏擦除”功能下,能實(shí)現(xiàn)對(duì)屏上所顯示信息的整屏擦除。

2.發(fā)揮部分

(1)在“筆畫(huà)擦除”功能下,能用光筆擦除屏上所顯漢字的筆畫(huà)。

(2)在“連寫(xiě)多字”功能下,能結(jié)合自選的擦除方式,在30s內(nèi)在屏上以“劃亮”方式逐個(gè)寫(xiě)出四個(gè)漢字(總筆畫(huà)數(shù)不大于30)且存入機(jī)內(nèi),寫(xiě)完后再將所存四字在屏上逐個(gè)輪流顯示。

(3)在“對(duì)象拖移”功能下,能用光筆將選定顯示內(nèi)容在屏上進(jìn)行拖移。先用光筆以“劃亮”方式在屏上圈定欲拖移顯示對(duì)象,再用光筆將該對(duì)象拖移到屏上另一位置。

(4)當(dāng)環(huán)境光強(qiáng)改變時(shí),能自動(dòng)連續(xù)調(diào)節(jié)屏上顯示亮度。

(5)當(dāng)光筆連續(xù)未接觸屏面的時(shí)間超過(guò)1~5min時(shí)(此時(shí)間可由控制器設(shè)定),能自動(dòng)關(guān)閉屏上顯示,并使整個(gè)系統(tǒng)進(jìn)入休眠狀態(tài),此時(shí)系統(tǒng)工作電流應(yīng)不大于5mA。

(6)其他。

三、說(shuō)明

1.設(shè)計(jì)制作時(shí)所用LED點(diǎn)陣模塊的發(fā)光顏色不限。

2.各種功能的切換方式自定,但應(yīng)力求操作簡(jiǎn)便。

3.在各種功能的實(shí)際操作過(guò)程中,必要時(shí)可用按鍵或其他控制方式進(jìn)行輔助。例如,“連寫(xiě)多字”時(shí),寫(xiě)完一字后用自定義控制方式存入該字并清屏,然后再寫(xiě)下一字。

4.系統(tǒng)應(yīng)采用5V單電源供電。

5.設(shè)計(jì)制作時(shí)應(yīng)在電路板上留有系統(tǒng)耗電參數(shù)的測(cè)試點(diǎn)。

6.設(shè)計(jì)報(bào)告正文中應(yīng)包括系統(tǒng)總體框圖、核心電路原理圖、主要流程圖、主要的測(cè)試結(jié)果。完整的電路原理圖、重要的源程序和完整的測(cè)試結(jié)果用附件給出。

 

 

       分析:這個(gè)系統(tǒng)最核心的兩個(gè)部分是:光筆掃描、LED屏幕顯示。

題目所說(shuō)的“微亮掃描”中的微亮意為:高速、短時(shí)間地點(diǎn)亮、熄滅每一個(gè)LED燈,利用人眼的“視覺(jué)停留效應(yīng)”(貌似是這么個(gè)叫法),讓人眼察覺(jué)不出LED燈的閃爍,人眼只會(huì)覺(jué)得它是在微亮。而題目中要求每秒光筆能至少劃過(guò)并點(diǎn)亮20個(gè)點(diǎn),那也意味著掃描一次光筆所在位置并讓屏幕更新顯示并延時(shí)的操作必須<=50ms,而且光筆位置的掃描所占的時(shí)間比必須遠(yuǎn)遠(yuǎn)<LED顯示所占的時(shí)間比。這樣,由于掃描過(guò)程中,光筆所在點(diǎn)的的LED燈亮的時(shí)間是非常短暫的,所以對(duì)光敏器件有兩個(gè)要求:響應(yīng)速度快、靈敏。于是我選用了3DU33光電三極管。tr、tf(電平的上升、下降變化所需最小時(shí)間)均小于5微秒,而且3DU33是對(duì)波長(zhǎng)為880nm的近紅外光反應(yīng)最靈敏(LED屏上的LED燈也是紅光燈),再加上3DU33在基極產(chǎn)生的光電流經(jīng)過(guò)自身的放大能達(dá)到3ma左右,這電流足以讓外接的8050(NPN三極管)進(jìn)入深飽和,這樣一來(lái),光筆對(duì)光的反應(yīng)時(shí)很穩(wěn)定了。(結(jié)果我們做出來(lái)的電路板只有光筆,這光筆的外形挺像一架潛艇的,哈哈,我那笨拙的手工總是被宇曦笑,不過(guò)這光筆對(duì)光的反應(yīng)還真的想預(yù)期那樣非常穩(wěn)定,而且對(duì)自然光沒(méi)反應(yīng)(抗自然光干擾))

       另外,在光筆上,我安裝了一個(gè)小按鍵(為了人性化而設(shè)計(jì)的),因?yàn)榧偃缥野压夤P對(duì)著LED屏卻不想寫(xiě)字、或者寫(xiě)字過(guò)程中輕輕拖過(guò)LED屏的表面,在普通情況下都默認(rèn)為寫(xiě)字。這樣就不好了,我把按鍵裝在人手大拇指最常按到的地方,這樣,我真要寫(xiě)字時(shí)便自然而然的按下去了。這按鍵接到外部中斷口(平時(shí)關(guān)掉外部中斷用來(lái)作普通IO口用),這樣,程序里面可以判斷按鍵是否被按下而決定是否進(jìn)行光筆掃描和數(shù)據(jù)更新了。另外,這按鍵還有一個(gè)好處,就是可以在空閑模式(待機(jī))時(shí)按下喚醒整個(gè)系統(tǒng),即我想寫(xiě)字時(shí),隨手用拇指按一下便可以寫(xiě)了,很人性化吧?呵呵~(至于這個(gè)按鍵的按鍵抖動(dòng),我接了個(gè)旁路電容去抖,再說(shuō),因?yàn)榘存I抖動(dòng)時(shí)間比掃描一次并更新顯示的50ms要小得多,所以可以忽略其帶來(lái)的負(fù)面影響,負(fù)面影響幾乎為0)。

        關(guān)于這個(gè)光筆,最后我說(shuō)說(shuō)這個(gè)掃描方案,這幾乎是這個(gè)系統(tǒng)的核心(以后的所有操作都有依賴(lài)于它):我最初的笨方案是一個(gè)一個(gè)點(diǎn)的掃描,沒(méi)掃描一次就是1024個(gè)點(diǎn),算法/操作時(shí)間復(fù)雜度為O(1024)。這是最笨最沒(méi)效率的方法。后來(lái)改進(jìn)了,把光筆接到普通IO口上去,每次選通一行LED,給該行中32列LED同步輸出(用74HC573的輸出使能控制可以做到)這32列的地址編碼(0~31可以用5位二進(jìn)制數(shù)表示,所以32列LED的地址編碼都是5位數(shù)據(jù)),每次截取32列編碼中的一位送出去,再讀回光筆端口數(shù)據(jù),共5位。這樣馬上就可以判斷光筆所在列?墒,這樣當(dāng)光筆在第31列就分辨不出來(lái)了,因?yàn)閽呙璨辉诠夤P當(dāng)前所在行的話(huà),數(shù)據(jù)與掃描在光筆所在行,而光筆在31列的效果一樣,同樣是11111(b)。而且這種方案的算法/操作時(shí)間復(fù)雜度為O(32*5)=O(160)。為了解決這個(gè)問(wèn)題,我再加以改進(jìn)了一下,把光筆接到定時(shí)器/計(jì)數(shù)器端口,并讓計(jì)數(shù)器賦初值:65535-N,(N>=1)并把該定時(shí)器/計(jì)數(shù)器工作方式選為16位計(jì)數(shù)器。在每次的行掃描時(shí)同步給32列以N次高低脈沖(電平持續(xù)時(shí)間>=5微秒)。這樣當(dāng)行掃描切換到光筆當(dāng)前所在行時(shí),光筆電平從高到低跳變N次就可以觸發(fā)計(jì)數(shù)器中斷。N取指為2就可以有效地抗干擾了。     進(jìn)入計(jì)數(shù)器中斷服務(wù)程序后,保持當(dāng)前行選通并保存行數(shù)據(jù),同步給32列以5次編碼脈沖(電平的高低變化)。這樣讀回的5位數(shù)據(jù)就是光筆當(dāng)前所在列坐標(biāo),保存,OK!這種改進(jìn)的方案不僅解決了上述問(wèn)題,而且提高了抗干擾性,還有一個(gè)更重要的是它的算法/操作時(shí)間復(fù)雜度僅為:O'(32*N+5),如果N取指為2,則時(shí)間復(fù)雜度為:O'(69),而且比起第二個(gè)方案,O(1)'<O(1)。因?yàn)椴捎糜?jì)數(shù)器中斷,所以比起第二個(gè)方案節(jié)省了很多CPU時(shí)間。

        最后,我說(shuō)說(shuō)整個(gè)系統(tǒng)的構(gòu)架。我是首先按照題目要求把實(shí)現(xiàn)的功能劃分為兩種性質(zhì):功能、和對(duì)功能的操作。

       功能:必須時(shí)刻運(yùn)行(不時(shí)刻運(yùn)行也要間斷運(yùn)行,即在   次數(shù)--時(shí)間  坐標(biāo)系上的表現(xiàn)是線(xiàn)性的)。

       操作:不能預(yù)知什么時(shí)候運(yùn)行,由使用者決定,即在    次數(shù)--時(shí)間  坐標(biāo)系上的表現(xiàn)是離散的。

     功能有如下:1、點(diǎn)亮與畫(huà)亮 (即寫(xiě)字功能、開(kāi)機(jī)默認(rèn))
              2、多字連寫(xiě)
              3、自動(dòng)調(diào)光功能
                4、超時(shí)待機(jī)功能

   對(duì)功能的操作有如下:

                          1、反顯(可對(duì)于功能1和功能2模塊操作)
           2、整屏擦除(可對(duì)于功能1和功能2模塊操作)
          3、光筆擦除(可對(duì)于功能1和功能2模塊操作)
              4、對(duì)象拖移(可對(duì)于功能1和功能2模塊操作)
           5、寫(xiě)字存儲(chǔ)(可對(duì)于功能1和功能2模塊操作)PS:由于時(shí)間問(wèn)題,
                  而且這個(gè)功能題目沒(méi)要求,暫先擱置
           6、自動(dòng)調(diào)光參數(shù)設(shè)置,即調(diào)整使用者喜好的屏幕亮度級(jí)別,

           而同時(shí),系統(tǒng)會(huì)在這個(gè)級(jí)別內(nèi)對(duì)LED屏根據(jù)環(huán)境光強(qiáng)的變化而自動(dòng)調(diào)光
          7、超時(shí)待機(jī)時(shí)間設(shè)定

  然后接下來(lái)就是程序了.........程序很長(zhǎng)呢,不知道各位童鞋們看不看得下(因?yàn)槲覀円黄鸶傻挠铌亍怨庹f(shuō)看不下,估計(jì)宇曦這家伙是懶得不愿意看),由于篇幅有限完整的程序和電路圖請(qǐng)點(diǎn)這里:http://www.torrancerestoration.com/mcu/839.html,完全測(cè)試通過(guò),如有問(wèn)題可與我聯(lián)系.

關(guān)閉窗口

相關(guān)文章