LED點(diǎn)陣書寫顯示屏資料大全_第1頁(yè)
LED點(diǎn)陣書寫顯示屏資料大全_第2頁(yè)
LED點(diǎn)陣書寫顯示屏資料大全_第3頁(yè)
LED點(diǎn)陣書寫顯示屏資料大全_第4頁(yè)
LED點(diǎn)陣書寫顯示屏資料大全_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

./論文一第一章緒論1.1課題來源本課題來源于全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽LED點(diǎn)陣書寫顯示屏,它是一種控制半導(dǎo)體發(fā)光二極管的顯示裝置,其主要功能是實(shí)現(xiàn)"點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫擦除、連寫多字、對(duì)象拖移"等書寫顯示。1.2設(shè)計(jì)任務(wù)及要求設(shè)計(jì)并制作一個(gè)基于32×32點(diǎn)陣LED模塊的書寫顯示屏,其系統(tǒng)結(jié)構(gòu)如圖1-1所示。在控制器的管理下,LED點(diǎn)陣模塊顯示屏工作在人眼不易覺察的掃描微亮和人眼可見的顯示點(diǎn)亮模式下;當(dāng)光筆觸及LED點(diǎn)陣模塊表面時(shí),先由光筆檢測(cè)觸及位置處LED點(diǎn)的掃描微亮以獲取其行列坐標(biāo),再依據(jù)功能需求決定該坐標(biāo)處的LED是否點(diǎn)亮至人眼可見的顯示狀態(tài),從而在屏上實(shí)現(xiàn)"點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫擦除、連寫多字、對(duì)象拖移"等書寫顯示功能??刂破骺刂破?2×32LED點(diǎn)陣模塊光筆圖1-1LED點(diǎn)陣書寫顯示屏系統(tǒng)結(jié)構(gòu)示意圖設(shè)計(jì)的最終要:在點(diǎn)亮功能下當(dāng)光筆接觸屏上某點(diǎn)LED時(shí),能即時(shí)點(diǎn)亮該LED;在劃亮功能下當(dāng)光筆快速劃過時(shí),能同步點(diǎn)亮劃過的各LED,其速度要求2S能劃過并點(diǎn)亮40點(diǎn)LED;在反顯功能下能對(duì)屏上顯示的信息實(shí)現(xiàn)反向顯示;在屏幕擦除功能下能實(shí)現(xiàn)對(duì)屏上所顯示信息整屏擦除;在筆畫擦除功能下,能用光筆擦除屏上所顯漢字的筆畫;在連寫多字功能下,能結(jié)合自選的擦除方式,在30S以劃亮方式寫出四個(gè)漢字且存入機(jī);在對(duì)象拖移功能下,能用光筆將選定顯示容在屏上進(jìn)行拖移,先用光筆以劃亮方式在屏上圈定欲拖移顯示對(duì)象,再用光筆將該對(duì)象拖移到屏上另一位置;當(dāng)光強(qiáng)改變時(shí),能自動(dòng)連續(xù)調(diào)節(jié)屏上顯示亮度;當(dāng)光筆連續(xù)未接觸屏面的時(shí)間超過1-5MIN時(shí),自動(dòng)關(guān)閉屏上顯示,并使系統(tǒng)進(jìn)入休眠模式。.第二章系統(tǒng)方案設(shè)計(jì)2.1.系統(tǒng)的總體設(shè)計(jì)根據(jù)課題要求,LED點(diǎn)陣書寫顯示屏由主控模塊,按鍵電路、LED點(diǎn)陣模塊、光筆電路及LED點(diǎn)陣驅(qū)動(dòng)顯示等部分組成。系統(tǒng)框圖如圖2-1所示:按鍵按鍵MCU驅(qū)動(dòng)電路LED點(diǎn)陣光筆檢測(cè)LCD顯示光強(qiáng)檢測(cè)圖2-1系統(tǒng)框圖2.2各模塊的設(shè)計(jì)。.核心控制模塊的的設(shè)計(jì)核心控制模塊是系統(tǒng)的大腦,控制著系統(tǒng)的所有輸入輸出、計(jì)算、判斷與決策。"LED點(diǎn)陣書寫顯示屏"檢測(cè)精度要求高且數(shù)據(jù)存儲(chǔ)容量大,選擇適合的控制模塊,能確保其快速是實(shí)現(xiàn)穩(wěn)定及達(dá)到系統(tǒng)要求的基本條件。使用STC系列單片機(jī),該系列單片機(jī)是高集成單片機(jī),功能和性能都要比51系列強(qiáng)大很多。比如STC11F32是1T單片機(jī),速度是AT89S51的12倍。而且部集成了置振蕩器和復(fù)位,EEPROM、ADC、PWM、四態(tài)I/O接口。.光筆設(shè)計(jì)光筆設(shè)計(jì)的關(guān)鍵是選擇合適的傳感器件,只有具有很高的靈敏度和一定的響應(yīng)時(shí)間的傳感器才能完成系統(tǒng)的要求及功能。方案一:采用核心部件為光敏電阻制成的光筆檢測(cè)系統(tǒng)。光敏電阻是將光能轉(zhuǎn)換為電能的一種傳感器件,它是構(gòu)成光電式傳感器的主要部件。光敏電阻結(jié)構(gòu)簡(jiǎn)單、使用方.便、價(jià)格便宜,但經(jīng)調(diào)試發(fā)現(xiàn)其響應(yīng)時(shí)間長(zhǎng),不易檢測(cè)。方案二:采用光敏二極管,與光敏電阻相比有較好的高頻特性,具有一定的可靠性,功耗低.相比于光敏電阻而言靈敏度較差,需要較高倍數(shù)的放大器才能實(shí)現(xiàn)精準(zhǔn)識(shí)別的效果。方案三:采用光敏三極管,其工作原理與光敏二極管相似。但光敏三極管除了具有光敏二極管能將光信號(hào)轉(zhuǎn)換成電信號(hào)的功能外,還有對(duì)電信號(hào)放大的功能。所以其靈敏度更高,響應(yīng)時(shí)間快?;谝陨戏治?我們采用光敏三極管作為光筆的檢測(cè)部件。.顯示方案的設(shè)計(jì)采用LCD液晶顯示器。LCD有明顯的優(yōu)點(diǎn):微功耗、尺寸小,超薄輕巧、顯示信息量大、字跡清晰、美觀、視覺舒適。使整個(gè)控制系統(tǒng)更加人性化。采用LCM301液晶顯示器,其是串行口顯示,所需I/O口較少,節(jié)省了資源,焊接電路時(shí)也較為方便。.點(diǎn)陣顯示模式設(shè)計(jì)將點(diǎn)陣的驅(qū)動(dòng)電源分為兩路,一路為正常電壓,另一路通過硬件電路調(diào)節(jié)恰好能使點(diǎn)陣處于微亮狀態(tài)。結(jié)合軟件實(shí)現(xiàn)點(diǎn)陣的顯示模式的改變。這樣節(jié)省了資源的同時(shí),也節(jié)約了時(shí)間.第三章系統(tǒng)硬件設(shè)計(jì)3.1光筆的設(shè)計(jì)光筆用光電三極管3DU33型光敏三極管檢測(cè)點(diǎn)陣屏發(fā)光的強(qiáng)弱變化電壓信號(hào),LM393為比較器。由于點(diǎn)陣的光強(qiáng)相對(duì)較弱,通過光電三極管的電流很小,通過串接硅二極管來提升光電三極管發(fā)射極電壓,方便后級(jí)比較器作業(yè),便于單片機(jī)檢測(cè)信號(hào)。光筆原理圖如下圖3-1所示:圖3-1光筆原理圖在一空的筆殼,將光敏三極管放置在筆殼底端,光敏三極管的引腳從一個(gè)與其直徑等寬的空管引出至空管的頂部,并在其中一引腳中接一彈片,在接近的地方用銅片貫穿空管且正好卡在筆管的部。與此同時(shí),用一彈簧套在空管外部,并將其底不固定,這樣,當(dāng)筆管在點(diǎn)陣屏上上下抖動(dòng)時(shí),部光敏三極管就能很好的檢測(cè)了。其結(jié)構(gòu)如圖3-2所示:.圖3-2光筆的結(jié)構(gòu)圖3.232×32LED點(diǎn)陣的連接經(jīng)分析要想得到32×32的點(diǎn)陣需要用16個(gè)共陽(yáng)型8×8點(diǎn)陣〔其引腳圖如圖3-3所示來構(gòu)建。其方法是將點(diǎn)陣對(duì)應(yīng)的行線和列線分別進(jìn)行連接,使每一條行線引腳接一行32個(gè)LED,列線也相同。圖3-3LED點(diǎn)陣.3.332×32LED點(diǎn)陣的驅(qū)動(dòng)控制電路32×32LED點(diǎn)陣的行信息控制用2片74HC154,構(gòu)成5—32譯碼器,單片機(jī)口線控制其譯碼輸出。列的微亮掃描、點(diǎn)亮也分別用2片74HC154,4個(gè)片選分別單獨(dú)控制,微亮掃描〔2.5V、點(diǎn)亮〔5V電源分別通過三極管構(gòu)成的開關(guān)加到點(diǎn)陣的列控制端。由于整屏顯示是1024個(gè)燈循環(huán)亮,為提高顯示亮度,限流電阻取51歐姆〔取消也可以,但為了防止制作調(diào)試過程中燒壞LED燈,不取消為好,電路如圖3-4所示。微亮掃描時(shí)流過LED的電流為:〔2.5-1.8/51=13.7mA點(diǎn)亮點(diǎn)陣時(shí)流過LED的電流為:〔5-1.8/51=62.7mA流過LED電流雖然比較大,但時(shí)間很短,因此不會(huì)燒壞LED燈。圖3-4LED驅(qū)動(dòng)電路3.4顯示電路部分功能及原理為了滿足系統(tǒng)在工作時(shí)能準(zhǔn)確顯示光筆對(duì)應(yīng)亮點(diǎn)所處的行列坐標(biāo)值,我們采用型號(hào)為L(zhǎng)CM103的液晶顯示器顯示。LCM103為10位多功能通用型8段式液晶顯示模塊,含看門狗時(shí)鐘發(fā)生器2種頻率的蜂鳴驅(qū)動(dòng)電路置顯示RAM,可顯示任意字段筆畫劃3-4線串行接口可與任何單片機(jī)接口。其接口應(yīng)用模塊如圖3-5所示:引腳排列圖如表3-1所示。.引腳符號(hào)說明輸入/輸出1VDD正電源,必須接!輸入2VLCDLCD屏工作電壓調(diào)整,可調(diào)整視角對(duì)比度,必須接!。輸入3/INTWDT/定時(shí)器輸出,集電極開路輸出,不用可不接。輸出4LED不用輸入5BZ壓電瓷蜂鳴片驅(qū)動(dòng)+極輸出6/BZ壓電瓷蜂鳴片驅(qū)動(dòng)-極輸出7/CS模塊片選,部上拉,必須接!輸入8/RD模塊數(shù)據(jù)讀出控制線,部上拉輸入9/WR模塊數(shù)據(jù)/指令寫入控制線,部上拉,必須接!輸入10DATA數(shù)據(jù)輸入/輸出,部上拉,必須接!輸入/輸出11VSS負(fù)電源,接地線,必須接!圖3-5LCD接口應(yīng)用模塊表3-1LED接口引腳排列圖注:B處焊盤為用戶需降低功耗時(shí)外加32.768KHz晶體。A處兩焊盤分別接VDD與VLCD。3.5鍵盤的使用及設(shè)計(jì)鍵盤是使用比較簡(jiǎn)單的獨(dú)立式鍵盤,而且具有發(fā)光二極管指示功能模塊。在程序中采用中斷掃描的方式,在沒有鍵操作時(shí)CPU執(zhí)行正常程序,只在有鍵操作時(shí)才處理鍵盤程序。其電路如圖3-6所示:.圖3-6獨(dú)立式鍵盤電路圖按鍵功能:按鍵一:實(shí)現(xiàn)點(diǎn)亮等功能;按鍵二:修改休眠時(shí)間;按鍵三:實(shí)現(xiàn)多姿連寫時(shí)的保存與回放;按鍵四:實(shí)現(xiàn)整屏擦除于休眠喚醒3.6光照的檢測(cè)與控制經(jīng)分析,想要實(shí)現(xiàn)當(dāng)環(huán)境光強(qiáng)改變時(shí)能自動(dòng)連續(xù)調(diào)節(jié)屏上顯示亮度的要求,其關(guān)鍵是對(duì)點(diǎn)陣周圍環(huán)境光照的檢測(cè)與控制。我們通過硬件電路很好的完成了對(duì)光照的檢測(cè)?;驹硎怯肔M358與光敏電阻夠成一恒流源并于三極管的基極連接,當(dāng)光敏電阻因光強(qiáng)的變化而改變其自身阻值時(shí),三極管的基極電壓也會(huì)隨著變化。與其集電極連接的發(fā)光二極管的亮度也會(huì)伴隨著改變,以此判斷周圍光強(qiáng)的變化。電路如圖3-7所示:。圖3-7光照檢測(cè)電路.第四章系統(tǒng)軟件設(shè)計(jì)4.1主程序設(shè)計(jì)主程序包括系統(tǒng)初始化,點(diǎn)陣掃描控制,液晶顯示,以及"反顯"、"擦除"等功能下數(shù)據(jù)處理程序,流程圖如圖4-1所示。其中點(diǎn)陣掃描控制程序,微亮掃描控制由單片機(jī)口控制對(duì)以譯碼器的片選和地址輸入,使點(diǎn)陣按行列有規(guī)律地循環(huán)點(diǎn)亮,由圖3-3知點(diǎn)亮顯示的列控制信息譯碼地址與微亮連接在一起,控制點(diǎn)亮的工作過程是通過判斷點(diǎn)陣顯示緩沖容對(duì)應(yīng)位的信息,控制其片選,當(dāng)需要點(diǎn)亮?xí)r,控制片選有效,反之,控制片選無效,利用微亮掃描過程實(shí)現(xiàn)點(diǎn)亮控制。圖4-1主程序框圖圖4-1主程序框圖.4.2外中斷0服務(wù)程序〔坐標(biāo)檢測(cè)外中斷0是作為光筆的檢測(cè)使用,由圖3-2知,光筆碰觸顯示屏過程中,遇到發(fā)光點(diǎn)輸出翻轉(zhuǎn)的跳變信號(hào),送給單片機(jī)中斷,作為中斷的觸發(fā)信號(hào),由于中斷程序優(yōu)先執(zhí)行,打斷微亮掃描過程,在中斷服務(wù)程序中根據(jù)此時(shí)的行列掃描的序號(hào),就可判斷光點(diǎn)的坐標(biāo),進(jìn)而為其他功能的實(shí)現(xiàn)提供依據(jù),流程圖如圖4-2所示圖4-2圖4-2中斷程序框圖.4.3.外中斷1服務(wù)程序〔按鍵處理外中斷1為按鍵操作處理程序,如圖4-3所示:圖4-3外中斷1服務(wù)程序框圖4.4.LCM103驅(qū)動(dòng)程序設(shè)計(jì)LCM103采用的是串行接口,所有數(shù)據(jù)都是在脈沖的作用下一位一位按順序?qū)懭肽K部,由時(shí)序圖知數(shù)據(jù)線上信息是在脈沖上升沿寫入。寫命令的數(shù)據(jù)格式是12位,單個(gè)寫數(shù)據(jù)的格式是13位,寫數(shù)據(jù)也可以連續(xù)寫,由于每個(gè)字位占用部3個(gè)RAM空間存放字段碼,因此寫數(shù)據(jù)采用連續(xù)寫方式比較好。在數(shù)據(jù)連續(xù)寫格式中,前面9位為模式位和模塊部RAM的起始地址,后面數(shù)據(jù)格式是每3位加1個(gè)0,取三個(gè)一組構(gòu)成一個(gè)字位的信息,也是12位,這樣就可以將所有寫操作〔命令和數(shù)據(jù)分為寫9位信息和寫12位信息兩個(gè)功能程序。顯示字段的排列方式與LED數(shù)碼管一致,每位字段編碼由8段構(gòu)成〔顯示RAM.筆畫表,占用連續(xù)的3個(gè)地址空間,但在寫入格式中每個(gè)數(shù)據(jù)是4位,編寫字符的字段碼時(shí)要給每個(gè)數(shù)據(jù)后加0,0~9顯示字符的字段碼如表4-1所示。表4-10~9顯示字符的字段碼字符二進(jìn)制十六進(jìn)制D0D1D2D3D0D1D2D3D0D1D2D3010000110111086EH1100000100000820H21000110010108CAH31000111000108E2H41000101001008A4H50000111001100e6H60000111011100EEH7100001100000860H81000111011108EEH91000111001108E6H地址低→高在寫數(shù)據(jù)送顯示之前,先按照初始化步驟進(jìn)行初始化,然后寫數(shù)據(jù),程序見附錄。第五章系統(tǒng)測(cè)試與結(jié)果5.1劃亮反顯擦除拖移的測(cè)試和結(jié)果各模塊均調(diào)通,將調(diào)好的模塊連在一起,加上5v電壓源,啟動(dòng)進(jìn)行系統(tǒng)初始化。按鍵進(jìn)入點(diǎn)亮模式,用光電筆在LED點(diǎn)陣書寫顯示屏上接觸,可以看到接觸的點(diǎn)點(diǎn)亮,LCD上顯示亮點(diǎn)的精確坐標(biāo)。用光筆快速的在書寫顯示屏上劃過,發(fā)現(xiàn)劃過的地方變亮,多次操作都能實(shí)現(xiàn)。再次按鍵,進(jìn)入反顯模式,光筆劃過,發(fā)現(xiàn)經(jīng)過的地方?jīng)]有亮其他的部分高亮,反顯測(cè)試正常。再次按鍵進(jìn)入擦除模式,用光筆在屏幕上劃過,顯示屏亮的地方變暗了。再按一次鍵可以看到整屏由亮變暗,實(shí)現(xiàn)了擦除這一功能。最后進(jìn)入多字連寫模式和區(qū)域拖動(dòng)模式用光筆在LED點(diǎn)陣顯示屏上寫四個(gè)字,最后在屏上循環(huán)顯示。最后對(duì)寫的字用筆圈起來可以用筆移動(dòng)。實(shí)現(xiàn)了對(duì)象拖移功能。經(jīng)過反復(fù)的測(cè)試,所有的功能都能很好的實(shí)現(xiàn),系統(tǒng)正常。加5v電壓?jiǎn)?dòng)系統(tǒng),對(duì)系統(tǒng)初始化。設(shè)定待機(jī)關(guān)顯示的時(shí)間,在測(cè)試點(diǎn)接入萬用表,不進(jìn)行任何操作到設(shè)定的時(shí)間,看顯示屏是否自動(dòng)關(guān)閉。結(jié)果書寫顯示屏自動(dòng)關(guān)閉,電路板測(cè)試點(diǎn)上的電流小于5mA。表明測(cè)試正常,完成系統(tǒng)要求.附錄1總電原理圖〔單片機(jī)系統(tǒng)與點(diǎn)陣驅(qū)動(dòng)電路論文二LED點(diǎn)陣書寫顯示屏摘要本系統(tǒng)以高速單片機(jī)STCF1132為核心,設(shè)計(jì)并制作了一個(gè)基于32×32點(diǎn)陣LED模塊顯示屏。該點(diǎn)陣可以實(shí)現(xiàn)掃描微亮和顯示點(diǎn)亮兩種工作模式,能夠通過自制光筆檢測(cè)在點(diǎn)陣處于掃描微亮狀態(tài)時(shí)獲取其行列坐標(biāo)信息,并能通過液晶顯示出來,同時(shí)能依據(jù)功能要求控制檢測(cè)點(diǎn)處LED的亮滅,在屏幕上實(shí)現(xiàn)"點(diǎn)亮、劃亮、反顯、整屏擦除、筆畫擦除、連寫多字、對(duì)象拖移"等書寫顯示功能,并且通過按鍵可以實(shí)現(xiàn)不同功能之間的切換。同時(shí)還能夠根據(jù)環(huán)境光強(qiáng)的變化,自動(dòng)連續(xù)調(diào)節(jié)顯示屏上顯示的亮度。設(shè)計(jì)方案運(yùn)用了4-16線譯碼器74HC154驅(qū)動(dòng)點(diǎn)陣的行和列,通過單片機(jī)的控制實(shí)現(xiàn)各種顯示功能,顯示屏亮度的自動(dòng)調(diào)節(jié)采用光敏電阻檢測(cè)環(huán)境光強(qiáng),通過A/D轉(zhuǎn)換、D/A轉(zhuǎn)換實(shí)現(xiàn)對(duì)顯示亮度的自動(dòng)調(diào)節(jié)。關(guān)鍵詞:LED點(diǎn)陣單片機(jī)74HC154一、設(shè)計(jì)任務(wù)及要求1.設(shè)計(jì)任務(wù)控制器32×32控制器32×32LED點(diǎn)陣模塊光筆二、方案論證與比較1.核心控制模塊的的選擇核心控制模塊是系統(tǒng)的大腦,控制著系統(tǒng)的所有輸入輸出、計(jì)算、判斷與決策。"LED點(diǎn)陣書寫顯示屏"檢測(cè)精度要求高且數(shù)據(jù)存儲(chǔ)容量大,選擇適合的控制模塊,能確保其快速是實(shí)現(xiàn)穩(wěn)定及達(dá)到系統(tǒng)要求的基本條件。方案一:使用ATMEL公司的51系列單片機(jī)。此系列單片機(jī)使用廣泛,但運(yùn)算速度相對(duì)較慢、存儲(chǔ)容量小,難以存儲(chǔ)大容量程序及數(shù)據(jù)。方案二:使用STC系列單片機(jī),該系列單片機(jī)是高集成單片機(jī),功能和性能都要比51系列強(qiáng)大很多。比如STC11F32是1T單片機(jī),速度是AT89S51的12倍。而且部集成了置振蕩器和復(fù)位,EEPROM、ADC、PWM、四態(tài)I/O接口?;谝陨戏治鑫覀儾捎酶咚?、高容量的STC11F32單片機(jī)。2.光筆設(shè)計(jì)的方案選擇光筆設(shè)計(jì)的關(guān)鍵是選擇合適的傳感器件,只有具有很高的靈敏度和一定的響應(yīng)時(shí)間的傳感器才能完成系統(tǒng)的要求及功能。方案一:采用核心部件為光敏電阻制成的光筆檢測(cè)系統(tǒng)。光敏電阻是將光能轉(zhuǎn)換為電能的一種傳感器件,它是構(gòu)成光電式傳感器的主要部件。光敏電阻結(jié)構(gòu)簡(jiǎn)單、使用方便、價(jià)格便宜,但經(jīng)調(diào)試發(fā)現(xiàn)其響應(yīng)時(shí)間長(zhǎng),不易檢測(cè)。方案二:采用光敏二極管,與光敏電阻相比有較好的高頻特性,具有一定的可靠性,功耗低.相比于光敏電阻而言靈敏度較差,需要較高倍數(shù)的放大器才能實(shí)現(xiàn)精準(zhǔn)識(shí)別的效果。方案三:采用光敏三極管,其工作原理與光敏二極管相似。但光敏三極管除了具有光敏二極管能將光信號(hào)轉(zhuǎn)換成電信號(hào)的功能外,還有對(duì)電信號(hào)放大的功能。所以其靈敏度更高,響應(yīng)時(shí)間快。基于以上分析,我們采用光敏三極管作為光筆的檢測(cè)部件。3.顯示方案的選擇<1>顯示種類的選擇方案一:采用LED數(shù)碼管顯示器。LED數(shù)碼管亮度高,醒目,但是其電路復(fù)雜,占用資源較多,顯示信息量較小。方案二:采用LCD液晶顯示器。LCD有明顯的優(yōu)點(diǎn):微功耗、尺寸小,超薄輕巧、顯示信息量大、字跡清晰、美觀、視覺舒適。使整個(gè)控制系統(tǒng)更加人性化?;谏厦娴谋容^分析和現(xiàn)有的LCD器件,選用方案二。<2>液晶顯示模塊的選擇方案一:采用SMCA1602并行口液晶顯示器,其功耗低且使用方便。但占用的I/O口線較多,而單片機(jī)I/O口資源有限。方案二:采用LCM301液晶顯示器,其是串行口顯示,所需I/O口較少,節(jié)省了資源,焊接電路時(shí)也較為方便。本設(shè)計(jì)使用的I/O口比較多,基于以上分析,我們選擇方案二。4.點(diǎn)陣顯示模式方案的選擇方案一:采用PWM調(diào)制方式,用軟件來控制點(diǎn)陣的點(diǎn)亮與熄滅。但考慮到實(shí)現(xiàn)設(shè)計(jì)的要求需大的存儲(chǔ)空間,為節(jié)省資源我們放棄了這種方案。方案二:將點(diǎn)陣的驅(qū)動(dòng)電源分為兩路,一路為正常電壓,另一路通過硬件電路調(diào)節(jié)恰好能使點(diǎn)陣處于微亮狀態(tài)。結(jié)合軟件實(shí)現(xiàn)點(diǎn)陣的顯示模式的改變。這樣節(jié)省了資源的同時(shí),也節(jié)約了時(shí)間?;谝陨戏治鑫覀冞x擇了方案二。三、系統(tǒng)硬件設(shè)計(jì)1.系統(tǒng)的總體設(shè)計(jì)本設(shè)計(jì)以STCF1132為核心部件結(jié)合按鍵、LCD顯示、光筆檢測(cè)及LED點(diǎn)陣驅(qū)動(dòng)顯示等部分組成。系統(tǒng)框圖如圖2所示:MCUMCU驅(qū)動(dòng)電路LED點(diǎn)陣光筆檢測(cè)按鍵LCD顯示光強(qiáng)檢測(cè)圖2系統(tǒng)框圖2.單元模塊的設(shè)計(jì)及參數(shù)計(jì)算〔1光筆的設(shè)計(jì)及單元參數(shù)的設(shè)計(jì)在一空的筆殼,將光敏三極管放置在筆殼底端,光敏三極管的引腳從一個(gè)與其直徑等寬的空管引出至空管的頂部,并在其中一引腳中接一彈片,在接近的地方用銅片貫穿空管且正好卡在筆管的部。與此同時(shí),用一彈簧套在空管外部,并將其底不固定,這樣,當(dāng)筆管在點(diǎn)陣屏上上下抖動(dòng)時(shí),部光敏三極管就能很好的檢測(cè)了。其結(jié)構(gòu)如圖3所示:圖3光筆的結(jié)構(gòu)圖為了能使設(shè)計(jì)的光筆更好的檢測(cè),我們?cè)O(shè)計(jì)了如圖4所示的部電路圖。其基本原理是基于光敏三極管,通過電壓比較器傳輸?shù)絾纹瑱C(jī)系統(tǒng),進(jìn)而實(shí)現(xiàn)光筆的檢測(cè)。圖4光筆電路圖〔232×32LED點(diǎn)陣的連接及驅(qū)動(dòng)控制電路經(jīng)分析要想得到32×32的點(diǎn)陣需要用16個(gè)共陽(yáng)型8×8點(diǎn)陣〔其引腳圖如圖5所示來構(gòu)建。其方法是將點(diǎn)陣對(duì)應(yīng)的行線和列線分別進(jìn)行連接,使每一條行線引腳接一行32個(gè)LED,列線也相同。圖5分別將兩片74HC154四-十六譯碼器的Y0-Y15端口與32×32LED點(diǎn)陣的列的高低位相連,74HC154的輸入端口A、B、C、D、G1、G2與對(duì)應(yīng)的單片機(jī)I/O口連接。單片機(jī)先通過74HC154的G1、G2片選端口實(shí)現(xiàn)信號(hào)的選擇輸出,從而實(shí)現(xiàn)列的掃描,電路如圖6a所示。與列的驅(qū)動(dòng)相比,行的驅(qū)動(dòng)有所不同。分別將兩片74HC154經(jīng)過反相器后與每行相連接,而每片74HC154的G1、G2片選端由單獨(dú)的I/O口來控制。用一個(gè)+5V電源分成兩路對(duì)接好的點(diǎn)陣供電,目的是通過單片機(jī)控制一路用于點(diǎn)陣的掃描微亮,另一路用于點(diǎn)陣的顯示點(diǎn)亮。其電路圖如圖6b所示:圖6aLED點(diǎn)陣列的驅(qū)動(dòng)電路圖6bLED點(diǎn)陣行的驅(qū)動(dòng)電路〔3顯示電路部分功能及原理為了滿足系統(tǒng)在工作時(shí)能準(zhǔn)確顯示光筆對(duì)應(yīng)亮點(diǎn)所處的行列坐標(biāo)值,我們采用型號(hào)為L(zhǎng)CM103的液晶顯示器顯示。LCM103為10位多功能通用型8段式液晶顯示模塊,含看門狗時(shí)鐘發(fā)生器2種頻率的蜂鳴驅(qū)動(dòng)電路置顯示RAM,可顯示任意字段筆畫劃3-4線串行接口可與任何單片機(jī)接口。其接口應(yīng)用模塊如圖7所示:圖7LCD驅(qū)動(dòng)電路〔4鍵盤的使用及設(shè)計(jì)鍵盤是使用比較簡(jiǎn)單的獨(dú)立式鍵盤,而且具有發(fā)光二極管指示功能模塊。在程序中采用中斷掃描的方式,在沒有鍵操作時(shí)CPU執(zhí)行正常程序,只在有鍵操作時(shí)才處理鍵盤程序。其電路如圖8所示:圖8獨(dú)立式鍵盤電路圖按鍵功能:按鍵一:實(shí)現(xiàn)各按鍵功能的切換;按鍵二:按鍵三:按鍵3.4發(fā)揮部分的設(shè)計(jì)與實(shí)現(xiàn)光照的檢測(cè)與控制經(jīng)分析,想要實(shí)現(xiàn)當(dāng)環(huán)境光強(qiáng)改變時(shí)能自動(dòng)連續(xù)調(diào)節(jié)屏上顯示亮度的要求,其關(guān)鍵是對(duì)點(diǎn)陣周圍環(huán)境光照的檢測(cè)與控制。我們通過硬件電路很好的完成了對(duì)光照的檢測(cè)?;驹硎怯肔M358與光敏電阻夠成一恒流源并于三極管的基極連接,當(dāng)光敏電阻因光強(qiáng)的變化而改變其自身阻值時(shí),三極管的基極電壓也會(huì)隨著變化。與其集電極連接的發(fā)光二極管的亮度也會(huì)伴隨著改變,以此判斷周圍光強(qiáng)的變化。電路如圖9所示:圖9光照檢測(cè)電路四、系統(tǒng)軟件設(shè)計(jì)軟件設(shè)計(jì)包括單片機(jī)和CPLD。4.1程序總體流程圖4.2各個(gè)功能模塊流程圖論文三FORMTEXTLED點(diǎn)陣書寫顯示屏摘要本設(shè)計(jì)運(yùn)用了基于NiosII嵌入式處理器的SOPC技術(shù)。系統(tǒng)以ALTERA公司的CycloneII系列FPGA為數(shù)字平臺(tái),將微處理器、Avalon總線、LED點(diǎn)陣掃描控制器、存儲(chǔ)器和人機(jī)接口控制器等硬件設(shè)備集中在一片F(xiàn)PGA上,利用片硬件來實(shí)現(xiàn)LED點(diǎn)陣的帶地址掃描,降低系統(tǒng)總功耗和簡(jiǎn)化CPU編程的同時(shí),提高了系統(tǒng)的精確度、穩(wěn)定性和抗干擾性能。關(guān)鍵詞:SOPCFPGA帶地址掃描AbstractThisdesignusingtheNiosIIbasedonembeddedprocessorSOPCtechnology.ALTERAsystemtothecompanyfortheCycloneIIFPGAdigitalplatform、series、Willmicroprocessor、AvalonbusofLEDdotmatrixscanningcontroller、memoryandhuman-computerinterfacecontrollerhardwaredevicefocusedonsuchaFPGA,UsingthepieceofhardwaretoachieveinsideofLEDdotmatrixwithaddressscanning,reducethetotalpoweroftheprogrammingandsimplifytheCPU,improvetheprecisionandstabilityofthesystemandtheanti-jammingperformance.Keyword:SOPCFPGAAddressscanning目錄1引言32系統(tǒng)方案32.1主控器選擇方案論證32.2點(diǎn)陣驅(qū)動(dòng)方案論證33理論分析與計(jì)算43.1光筆選取與參數(shù)設(shè)計(jì)53.2LED點(diǎn)陣屏驅(qū)動(dòng)參數(shù)設(shè)計(jì)53.3屏亮自動(dòng)調(diào)節(jié)設(shè)計(jì)63.4超時(shí)關(guān)顯示節(jié)電設(shè)計(jì)64系統(tǒng)電路設(shè)計(jì)74.1系統(tǒng)工作原理74.2系統(tǒng)工作時(shí)序75系統(tǒng)程序設(shè)計(jì)85.1系統(tǒng)流程概述85.2系統(tǒng)總流程圖86系統(tǒng)測(cè)試與結(jié)果97結(jié)論9參考文獻(xiàn)10附錄:10附1:電路原理圖10附2:掃描電路硬件描述11附2:軟核NIOSII程序17附4:完整的測(cè)試結(jié)果471引言LED點(diǎn)陣顯示屏被用到很多領(lǐng)域,隨著電子技術(shù)的發(fā)展,LED點(diǎn)陣書寫顯示屏的廣泛應(yīng)用是一種趨勢(shì)。傳統(tǒng)的LED點(diǎn)陣顯示是由微處理器實(shí)現(xiàn)的,但是以FPGA做控制器將成為發(fā)展趨勢(shì)。

FPGA的結(jié)構(gòu)靈活,其邏輯單元、可編程部連線和I/O單元都可以由用戶編程,可以實(shí)現(xiàn)復(fù)雜邏輯功能,滿足各種設(shè)計(jì)需求。其速度快,功耗低,通用性強(qiáng),特別適用于大型系統(tǒng)的設(shè)計(jì)。使用FPGA還可以實(shí)現(xiàn)動(dòng)態(tài)配置、在線系統(tǒng)重構(gòu)〔可以在系統(tǒng)運(yùn)行的不同時(shí)刻,按需要改變電路的功能,使系統(tǒng)具備多種空間相關(guān)或時(shí)間相關(guān)的任務(wù)及硬件軟化、軟件硬化等功能。用FPGA做為控制器對(duì)本系統(tǒng)進(jìn)行設(shè)計(jì),利用它靈活豐富的I/0資源簡(jiǎn)化了電路,降低了系統(tǒng)的成本。本作品用FPGA做為控制器,來實(shí)現(xiàn)LED點(diǎn)陣書寫顯示屏的功能。2系統(tǒng)方案2.1主控器選擇方案論證方案一:以ARM為系統(tǒng)控制器采用32位RISC微處理器ARM實(shí)現(xiàn)點(diǎn)陣屏的控制和編碼功能,基本上能完成題目的要求,但是ARM不適合多線程操作,如果應(yīng)用在系統(tǒng)中會(huì)使電路和軟件設(shè)計(jì)變得復(fù)雜。方案二:用FPGA作為系統(tǒng)控制器FPGA可以直接用硬件掃描、編碼、解碼、糾錯(cuò),速度快、穩(wěn)定性高、擴(kuò)展性能好、體積小,可以提供豐富的邏輯單元和I/O資源。用SOPC工具可以快速生成片上軟核處理器,將所有的控制單元集成在一片F(xiàn)PGA芯片,降低了額外的功耗開支。采用并行的輸入/輸出方式,可以達(dá)到很快的速度。這樣合理的分配了FPGA資源,具有很強(qiáng)的實(shí)時(shí)性和準(zhǔn)確性??梢詫?shí)現(xiàn)各種靈活控制。綜合考慮,最后采用方案二。2.2點(diǎn)陣驅(qū)動(dòng)方案論證方案一:串行方式顯示這種顯示方式由譯碼器單元74HC138、數(shù)據(jù)移位寄存器74HC595和列驅(qū)動(dòng)器組成,點(diǎn)陣顯示屏可以用少量I/O口接收控制器傳輸下來的大量數(shù)據(jù),此方案為點(diǎn)陣顯示屏系統(tǒng)中比較常用的,所用器件也比較常用,容易買到。但是它存在一個(gè)致命的缺點(diǎn),就是刷新速度不夠快,高速度的地址編碼信息無法發(fā)送。方案二:并行方式顯示可以通過鎖存器芯片來增強(qiáng)FPGA的I/O口的驅(qū)動(dòng)能力,將32位寬的數(shù)據(jù)同時(shí)輸入到LED點(diǎn)陣列中,達(dá)到并行控制LED點(diǎn)陣的目的。方案中運(yùn)用4片鎖存器74HC573來組成雙緩沖寄存器,驅(qū)動(dòng)LED點(diǎn)陣行線,用5片3-8譯碼器74HC138組合成5-32譯碼器對(duì)LED點(diǎn)陣的32列進(jìn)行選取。這樣就避免了各行數(shù)據(jù)顯示不同步的問題。由于并行數(shù)據(jù)傳輸速度非???所以高速度的地址編碼信息可以同步發(fā)出。綜上所述,本設(shè)計(jì)最終選擇了第二個(gè)方案。3理論分析與計(jì)算3.1光筆選取和參數(shù)設(shè)計(jì)光筆用光電三極管3DU33做為的感光元件,LM393為比較器。由于點(diǎn)陣的光強(qiáng)相對(duì)較弱,通過光電三極管的電流很小,通過串接硅二極管來提升光電三極管發(fā)射極電壓,方便后級(jí)比較器作業(yè)。光筆原理圖如下圖:圖1光筆原理圖3.2LED點(diǎn)陣屏驅(qū)動(dòng)設(shè)計(jì)本電路采用74HC573做電平轉(zhuǎn)換及行驅(qū)動(dòng),8550三極管做列驅(qū)動(dòng),用5片74HC138擴(kuò)展成5-32譯碼器對(duì)列選信號(hào)進(jìn)行譯碼,顯示亮度和器件參數(shù)均可達(dá)到系統(tǒng)要求的功能設(shè)計(jì)。系統(tǒng)原理圖如下:省略4行………省略4行………圖2LED點(diǎn)陣驅(qū)動(dòng)原理圖3.3屏亮自動(dòng)調(diào)節(jié)設(shè)計(jì)利用片外A/D轉(zhuǎn)換芯片將當(dāng)前光強(qiáng)轉(zhuǎn)換成數(shù)字信號(hào),將傳統(tǒng)的PWM調(diào)光技術(shù)稍加修改,變換成帶編碼的PWM調(diào)光方式,根據(jù)顯示的容進(jìn)行屏亮的自動(dòng)調(diào)節(jié)。設(shè)計(jì)的框圖如下:亮度調(diào)節(jié)亮度調(diào)節(jié)編碼區(qū)內(nèi)容顯示區(qū)清0調(diào)亮區(qū)光敏電阻A/D轉(zhuǎn)換圖3點(diǎn)陣屏亮度自動(dòng)調(diào)節(jié)圖3.4超時(shí)關(guān)顯示節(jié)電設(shè)計(jì)基于定時(shí)器的數(shù)字電路,給定一個(gè)時(shí)間,當(dāng)光筆檢測(cè)到光信號(hào),定時(shí)電路自動(dòng)復(fù)位,否則定時(shí)電路到給定的時(shí)間后數(shù)字信號(hào)溢出,把溢出信號(hào)傳送給核心模塊,通過功耗管理模塊,把系統(tǒng)其余部分模塊的時(shí)鐘切斷以達(dá)到節(jié)電的目的。系統(tǒng)的節(jié)電框圖如下:全局時(shí)鐘全局時(shí)鐘功耗管理核心模塊片外器件片選控制片外器件圖4超時(shí)待機(jī)框圖4系統(tǒng)電路設(shè)計(jì)4.1系統(tǒng)工作原理以NIOSII軟核為主控,系統(tǒng)包括LED掃描為主的多功能模塊、按鍵管理模塊、LCD控制等,通過鍵盤掃描來確定工作模式以實(shí)現(xiàn)點(diǎn)亮、劃亮、擦除、區(qū)域拖拽等功能,用外圍電路的反相功能能實(shí)現(xiàn)點(diǎn)陣顯示屏的反顯,功耗管理模塊對(duì)各模塊時(shí)鐘的控制可以實(shí)現(xiàn)節(jié)電的功能。光筆輸入LED掃描光筆輸入LED掃描地址編碼地址解碼解碼糾錯(cuò)反顯控制亮度調(diào)節(jié)反顯點(diǎn)陣數(shù)據(jù)顯示緩存RAM按鍵管理反顯點(diǎn)陣數(shù)據(jù)顯示緩存RAM按鍵管理點(diǎn)陣列選點(diǎn)陣列選驅(qū)動(dòng)芯片片選控制A/D調(diào)光調(diào)理驅(qū)動(dòng)芯片片選控制A/D調(diào)光調(diào)理NIOSII32位軟核微處理器功耗管理模塊NIOSII32位軟核微處理器功耗管理模塊LCD控制器LCD控制器圖5系統(tǒng)工作原理框圖4.2系統(tǒng)工作時(shí)序D10~D6送出Y軸坐標(biāo)的原碼,D5為原碼的奇校驗(yàn),D4~D0為原碼的反碼校檢。經(jīng)過雙層編碼校驗(yàn),有效防止了周邊點(diǎn)陣對(duì)數(shù)據(jù)的干擾。降低了CPU數(shù)據(jù)處理的難度,只有確定有效的數(shù)據(jù)才會(huì)通過中斷被CPU讀入部進(jìn)行處理。X軸坐標(biāo)值則為當(dāng)前所選列的地址。系統(tǒng)工作時(shí)序圖如下:D10D10D8……D9D0顯示區(qū)……地址編碼區(qū)上升沿讀入光筆數(shù)據(jù)5系統(tǒng)程序設(shè)計(jì)5.1系統(tǒng)流程概述本系統(tǒng)是以軟核NIOSII為主控,編程采用模塊死循環(huán)的方式:按任意模式設(shè)置鍵將會(huì)復(fù)位CPU,CPU重新啟動(dòng)后將根據(jù)復(fù)位標(biāo)志進(jìn)入相應(yīng)的管理模式,從而實(shí)現(xiàn)點(diǎn)亮、劃亮、擦除、拖移等功能,這種編程模式在降低編程難度的同時(shí)增強(qiáng)了系統(tǒng)的可靠性。多字連寫模式讀復(fù)位多字連寫模式讀復(fù)位標(biāo)志讀顯示緩存RAM等待有效坐標(biāo)中斷更新顯示緩存等待有效坐標(biāo)中斷更新顯示緩存清除顯示緩存數(shù)據(jù)結(jié)束點(diǎn)亮模式筆畫擦除模式全屏擦除模式循環(huán)檢測(cè)KEY+/-更新待機(jī)時(shí)間…………按鍵存入字1并清屏循環(huán)顯示字1~4按鍵存入字4并清屏區(qū)域選擇選區(qū)拖動(dòng)區(qū)域縫合建立輔助選區(qū)任意模式鍵對(duì)CPU進(jìn)行復(fù)位待機(jī)時(shí)間設(shè)定區(qū)域拖動(dòng)模式圖6系統(tǒng)程序設(shè)計(jì)流程圖6系統(tǒng)測(cè)試與結(jié)果6.1劃亮反顯擦除拖移的測(cè)試和結(jié)果各模塊均調(diào)通,將調(diào)好的模塊連在一起,加上5v電壓源,啟動(dòng)進(jìn)行系統(tǒng)初始化。按鍵進(jìn)入點(diǎn)亮模式,用光電筆在LED點(diǎn)陣書寫顯示屏上接觸,可以看到接觸的點(diǎn)點(diǎn)亮,LCD上顯示亮點(diǎn)的精確坐標(biāo)。用光筆快速的在書寫顯示屏上劃過,發(fā)現(xiàn)劃過的地方變亮,多次操作都能實(shí)現(xiàn)。再次按鍵,進(jìn)入反顯模式,光筆劃過,發(fā)現(xiàn)經(jīng)過的地方?jīng)]有亮其他的部分高亮,反顯測(cè)試正常。再次按鍵進(jìn)入擦除模式,用光筆在屏幕上劃過,顯示屏亮的地方變暗了。再按一次鍵可以看到整屏由亮變暗,實(shí)現(xiàn)了擦除這一功能。最后進(jìn)入多字連寫模式和區(qū)域拖動(dòng)模式用光筆在LED點(diǎn)陣顯示屏上寫四個(gè)字,最后在屏上循環(huán)顯示。最后對(duì)寫的字用筆圈起來可以用筆移動(dòng)。實(shí)現(xiàn)了對(duì)象拖移功能。經(jīng)過反復(fù)的測(cè)試,所有的功能都能很好的實(shí)現(xiàn),系統(tǒng)正常。6.2屏亮自動(dòng)調(diào)節(jié)測(cè)試和結(jié)果外部光環(huán)境人為地改變后,測(cè)試LED點(diǎn)陣書寫顯示屏的亮度是否發(fā)生變化如果發(fā)生變化,則表明能夠自動(dòng)調(diào)節(jié),結(jié)果屏亮隨外部環(huán)境的變化而改變,系統(tǒng)正常。6.3超時(shí)關(guān)顯示節(jié)電測(cè)試和結(jié)果加5v電壓?jiǎn)?dòng)系統(tǒng),對(duì)系統(tǒng)初始化。設(shè)定待機(jī)關(guān)顯示的時(shí)間,在測(cè)試點(diǎn)接入萬用表,不進(jìn)行任何操作到設(shè)定的時(shí)間,看顯示屏是否自動(dòng)關(guān)閉。結(jié)果書寫顯示屏自動(dòng)關(guān)閉,電路板測(cè)試點(diǎn)上的電流小于5mA。表明測(cè)試正常,完成系統(tǒng)要求。7結(jié)論本作品完成了題目的基本要求和發(fā)揮部分的全部要求,系統(tǒng)性能良好。通過對(duì)作品的各項(xiàng)進(jìn)行了優(yōu)化,使系統(tǒng)的性能有了提高。FPGA的運(yùn)用提高了強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度,并且使電路簡(jiǎn)單。同時(shí)也提高了系統(tǒng)的集成度和可靠性。參考文獻(xiàn)《模擬電子線路基礎(chǔ)》,吳運(yùn)昌著,:華南理工大學(xué),20XX;《數(shù)字電子技術(shù)基礎(chǔ)》,閻石著,:高等教育,1997年;《FPAG系統(tǒng)設(shè)計(jì)與實(shí)踐》,黃智偉著,:電子工業(yè),20XX;《EDA技術(shù)與應(yīng)用〔第2版》,江國(guó)強(qiáng)著,:電子工業(yè),20XX;《電子系統(tǒng)設(shè)計(jì)》,金平、明山、余祥著,:電子工業(yè),20XX;附錄附1:FPGA部構(gòu)架圖附2掃描電路硬件描述modulesaomiao<ram_data,ram_address, saomiao_clk,saomiao_en_n, leds_data32,leds_select, pen_in, pen_zuobiao_x,pen_zuobiao_y,pen_ok ,pen_du_shunjian,liangdu>; //reg[7:0]liangdu; input[7:0]liangdu; output[3:0]pen_du_shunjian; reg[3:0]pen_du_shunjian; //line91input[31:0]ram_data;output[4:0]ram_address;inputsaomiao_clk,saomiao_en_n;output[31:0]leds_data32;output[4:0]leds_select;inputpen_in;output[4:0]pen_zuobiao_x;output[4:0]pen_zuobiao_y;outputpen_ok;//兩次數(shù)據(jù)相同,座標(biāo)值有效,輸出中斷regram_clock;reg[31:0]leds_data32;reg[4:0]leds_select;reg[4:0]pen_zuobiao_x;reg[4:0]pen_zuobiao_y;regpen_ok;reg[4:0]ram_address;reg[11:0]all_shixu;//d'2047.//hang+xiao.//6bits//\5..1\0.reg[5:0]pen_serial;reg[5:0]pen_serial_backup;reg[4:0]pen_serial_fan;always<negedgesaomiao_clk>beginif<!saomiao_en_n> begin leds_select<=5'b11111; all_shixu=9'd0; leds_data32<=32'h00000000; pen_zuobiao_x<=5'b00001; pen_zuobiao_y<=5'b00010; pen_du_shunjian<=0;////////////////////////////////////// endelse begin all_shixu<=all_shixu+1; //////////////////////////////////////////////////////////////// //liangdu='hff; if<all_shixu==<12'd2000+<liangdu*5-1281>>>leds_data32<=32'h00000000;//liangdu if<all_shixu==12'd2000>all_shixu<=12'd0; // case<all_shixu> 12'd0:leds_data32<=32'h00000000; 12'd1: begin leds_select<=leds_select+1; end // 12'd2:leds_data32<=32'hffff0000; 12'd52:pen_serial[5]<=pen_in; //bigwei 12'd53:leds_data32<=32'hff00ff00; 12'd103:pen_serial[4]<=pen_in; //3 12'd104:leds_data32<=32'hf0f0f0f0; 12'd154:pen_serial[3]<=pen_in; //2 12'd155:leds_data32<=32'hcccccccc; 12'd205:pen_serial[2]<=pen_in; //1 12'd206:leds_data32<=32'haaaaaaaa; 12'd256:pen_serial[1]<=pen_in; //smallwei // 12'd257:leds_data32<=32'h69969669;// 12'd307:pen_serial[0]<=pen_in; //反碼 /////////////////////////////////////////////////// 12'd308:leds_data32<=32'h0000ffff; 12'd358:pen_serial_fan[4]<=pen_in; //bigwei 12'd359:leds_data32<=32'h00ff00ff; 12'd409:pen_serial_fan[3]<=pen_in; //3 12'd410:leds_data32<=32'h0f0f0f0f; 12'd460:pen_serial_fan[2]<=pen_in; //2 12'd461:leds_data32<=32'h33333333; 12'd511:pen_serial_fan[1]<=pen_in; //1 12'd512:leds_data32<=32'h55555555; 12'd562:pen_serial_fan[0]<=pen_in; //smallwei ///////////////////////////////////////////////////// 12'd563:leds_data32<=ram_data;//xianshi /* 11'd369: begin pen_zuobiao_x<=pen_serial[5:1]; pen_zuobiao_y<=leds_select; end */ 12'd564:if< <pen_serial[0]!=<pen_serial[5]+pen_serial[4]+pen_serial[3]+pen_serial[2]+pen_serial[1]>> &&<pen_serial_fan==~pen_serial[5:1]> > begin if<pen_serial==pen_serial_backup> begin pen_zuobiao_x<=pen_serial[5:1]; pen_zuobiao_y<=leds_select; pen_ok<=1; end pen_serial_backup<=pen_serial;//getnewdata end //-- 12'd580:pen_ok<=0;//getnewdata endcase // endendEndmodule附3軟核NIOSII程序#include"sys/alt_stdio.h"#include"system.h"#include"altera_avalon_pio_regs.h"#include"alt_types.h"#include"lcd12864.h"volatilealt_u8temp_x_old;volatilealt_u8temp_y_old;volatilealt_u8PEN_GET;//markintvolatilealt_u8DiJiGeZi;//第幾個(gè)字volatilealt_u32ram_zi_1[32];volatilealt_u32ram_zi_2[32];volatilealt_u32ram_zi_3[32];volatilealt_u32ram_zi_4[32];alt_u8disp_dijigezi[]="-";volatilealt_u8quyu_state;//區(qū)域功能volatilealt_u8start_x_point;volatilealt_u8start_y_point;volatilealt_u32ram_back_up[32];volatilealt_u32ram_shixin_xuanqu[32];/*volatilealt_u8quyu_state;//區(qū)域功能volatilealt_u8start_x_point;volatilealt_u8start_y_point;volatilealt_u32ram_back_up[32];volatilealt_u32ram_shixin_xuanqu[32];*/volatilealt_u8start_point_biaozhi;volatilealt_u8likai_start_point;//是否離開原點(diǎn)volatilealt_u8huidao_start_point;//是否回到原點(diǎn)volatilealt_u8shixing_xuanqu;//是否已經(jīng)實(shí)心選區(qū)//volatilealt_u8temps_x;volatilealt_u8temps_y;alt_u8gillian_x[]="**_twins_y.";//實(shí)際上是yalt_u8gillian_y[]="**_twins_x.";//實(shí)際上時(shí)xalt_u8num_table[]="0123456789ABCDEF";alt_u8twins[]="twins!";alt_u8int_isr[]="--";alt_u8int_isr_cishu;volatilealt_u32ram_main[32];#definepen_ok_intIORD_ALTERA_AVALON_PIO_DATA<PIO_PEN_OK_BASE>&0X01voidmain_delays<alt_u16DELAYS>{for<;DELAYS>0;DELAYS-->;}voiddelays_32bit<alt_u32DELAYS>{for<;DELAYS>0;DELAYS-->;}voidpen_ok_ISR<void*context,alt_u32id>//中斷服務(wù)程序。{temps_x=IORD_ALTERA_AVALON_PIO_DATA<PIO_PEN_X_BASE>;//&0X1f;temps_y=IORD_ALTERA_AVALON_PIO_DATA<PIO_PEN_Y_BASE>;//&0X1f;PEN_GET=0x01;IOWR_ALTERA_AVALON_PIO_IRQ_MASK<PIO_PEN_OK_BASE,0X0>;IOWR_ALTERA_AVALON_PIO_EDGE_CAP<PIO_PEN_OK_BASE,0>;IOWR_ALTERA_AVALON_PIO_IRQ_MASK<PIO_PEN_OK_BASE,0X1>;}intmain<>{alt_u8CHOI;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;LCD_Init<>;alt_irq_register<PIO_PEN_OK_IRQ,0,pen_ok_ISR>;//注冊(cè)外部中斷,對(duì)應(yīng)的參數(shù)分別為中斷優(yōu)先級(jí),傳遞//到中斷服務(wù)函數(shù)的參數(shù),和中斷服務(wù)函數(shù)。IOWR_ALTERA_AVALON_PIO_IRQ_MASK<PIO_PEN_OK_BASE,0x1>;//使能按鍵中斷位,這里在定義硬件時(shí)只用了1位IOWR_ALTERA_AVALON_PIO_EDGE_CAP<PIO_PEN_OK_BASE,0x0>;//邊沿捕獲寄存器清零//for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;main_delays<3>;ram_main[CHOI]=IORD_ALTERA_AVALON_PIO_DATA<POWER_ON_RAM_READ_BASE>;//&0X1f;}start_point_biaozhi=1;likai_start_point=0;//是否離開原點(diǎn)huidao_start_point=0;//是否回到原點(diǎn)shixing_xuanqu=0;//是否已經(jīng)實(shí)心選區(qū)alt_u8yuandianzuobiao[]="X:--Y:--";alt_u8key_mode=IORD_ALTERA_AVALON_PIO_DATA<KEY_STATE_BASE>;//&0X1f;alt_u32temps_set_point;switch<key_mode>{case<0x00>:LCD_String<26,"點(diǎn)亮模式">;while<1>{//if<IORD_ALTERA_AVALON_PIO_DATA<PEN_LINE_BASE>==1>{floatx_yuan,y_yuan;floatx_zhong,y_zhong;alt_u8x_all_temp,y_all_temp;floatxielv_temp;floatxielv_all;x_yuan=temp_x_old;y_yuan=temp_y_old;x_zhong=temps_x;y_zhong=temps_y;xielv_temp=1;//<<x_zhong-x_yuan>/<y_zhong-y_yuan>>;//if<<temps_x>=temp_x_old>&&<temps_y>=temp_y_old>>{for<y_all_temp=0;y_all_temp<33;y_all_temp++>{for<x_all_temp=0;x_all_temp<32;x_all_temp++>{xielv_all=<x_all_temp/*-x_yuan*/>/<y_all_temp/*-y_yuan*/>;if<xielv_all==xielv_temp>{temps_set_point=1;temps_set_point=temps_set_point<<x_all_temp;ram_main[y_all_temp]=ram_main[y_all_temp]|temps_set_point;}}}}for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_main[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}}}/*case<0x00>:LCD_String<26,"點(diǎn)亮模式">;while<1>{if<0x01==PEN_GET>{PEN_GET=0x00;gillian_x[0]=num_table[temps_x/10];//串行g(shù)illian_x[1]=num_table[temps_x%10];gillian_y[0]=num_table[temps_y/10];gillian_y[1]=num_table[temps_y%10];//LCD_String<0,gillian_x>;LCD_String<8,gillian_y>;int_isr_cishu++;int_isr[0]=num_table[int_isr_cishu/16];int_isr[1]=num_table[int_isr_cishu%16];LCD_String<7,int_isr>;temps_set_point=1;temps_set_point=temps_set_point<<temps_x;ram_main[temps_y]=ram_main[temps_y]|temps_set_point;*//*if<IORD_ALTERA_AVALON_PIO_DATA<PEN_LINE_BASE>==1>{alt_u8x_yuan,y_yuan;alt_u8x_zhong,y_zhong;alt_u8x_all_temp,y_all_temp;alt_u8xielv_temp;x_yuan=temp_x_old;y_yuan=temp_y_old;x_zhong=temps_x;y_zhong=temps_y;xielv_temp=<<x_zhong-x_yuan>/<y_zhong-y_yuan>>;if<<temps_x>=temp_x_old>&&<temps_y>=temp_y_old>>{for<y_all_temp=0;y_all_temp<32;y_all_temp++>{for<x_all_temp=0;x_all_temp<32;x_all_temp++>{if<<<x_all_temp-x_yuan>/<y_all_temp-y_yuan>>==xielv_temp>{temps_set_point=1;temps_set_point=temps_set_point<<x_all_temp;ram_main[y_all_temp]=ram_main[y_all_temp]|temps_set_point;}}}}}temp_x_old=temps_x;temp_y_old=temps_y;*//*}for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_main[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}}break;*/case<0x01>:LCD_String<26,"擦除模式">;while<1>{if<0x01==PEN_GET>{PEN_GET=0x00;gillian_x[0]=num_table[temps_x/10];//串行g(shù)illian_x[1]=num_table[temps_x%10];gillian_y[0]=num_table[temps_y/10];gillian_y[1]=num_table[temps_y%10];//LCD_String<0,gillian_x>;LCD_String<8,gillian_y>;int_isr_cishu++;int_isr[0]=num_table[int_isr_cishu/16];int_isr[1]=num_table[int_isr_cishu%16];LCD_String<7,int_isr>;temps_set_point=1;temps_set_point=temps_set_point<<temps_x;ram_main[temps_y]=ram_main[temps_y]&<~temps_set_point>;}for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_main[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}}break;case<0x02>:LCD_String<26,"多字連寫">;DiJiGeZi=1;while<1>{disp_dijigezi[0]=num_table[DiJiGeZi];if<DiJiGeZi!=5>LCD_String<30,disp_dijigezi>;elseLCD_String<26,"循環(huán)顯示">;if<DiJiGeZi==5>while<1>{for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_zi_1[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}delays_32bit<0xffffff>;for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_zi_2[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}delays_32bit<0xffffff>;for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_zi_3[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}delays_32bit<0xffffff>;for<CHOI=0;CHOI<32;CHOI++>{IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_DATA_BASE,ram_zi_4[CHOI]>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_ADDR_BASE,CHOI>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,1>;IOWR_ALTERA_AVALON_PIO_DATA<PIO_RAM_EN_BASE,0>;}delays_32bit<0xffffff>;}if<<IORD_ALTERA_AVALON_PIO_DATA<KE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論