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

下載本文檔

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

文檔簡介

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

FPGA的結(jié)構(gòu)靈活,其邏輯單元、可編程部連線和I/O單元都可以由用戶編程,可以實現(xiàn)復(fù)雜邏輯功能,滿足各種設(shè)計需求。其速度快,功耗低,通用性強(qiáng),特別適用于大型系統(tǒng)的設(shè)計。使用FPGA還可以實現(xiàn)動態(tài)配置、在線系統(tǒng)重構(gòu)〔可以在系統(tǒng)運(yùn)行的不同時刻,按需要改變電路的功能,使系統(tǒng)具備多種空間相關(guān)或時間相關(guān)的任務(wù)及硬件軟化、軟件硬化等功能。用FPGA做為控制器對本系統(tǒng)進(jìn)行設(shè)計,利用它靈活豐富的I/0資源簡化了電路,降低了系統(tǒng)的成本。本作品用FPGA做為控制器,來實現(xiàn)LED點陣書寫顯示屏的功能。2系統(tǒng)方案2.1主控器選擇方案論證方案一:以ARM為系統(tǒng)控制器采用32位RISC微處理器ARM實現(xiàn)點陣屏的控制和編碼功能,基本上能完成題目的要求,但是ARM不適合多線程操作,如果應(yīng)用在系統(tǒng)中會使電路和軟件設(shè)計變得復(fù)雜。方案二:用FPGA作為系統(tǒng)控制器FPGA可以直接用硬件掃描、編碼、解碼、糾錯,速度快、穩(wěn)定性高、擴(kuò)展性能好、體積小,可以提供豐富的邏輯單元和I/O資源。用SOPC工具可以快速生成片上軟核處理器,將所有的控制單元集成在一片F(xiàn)PGA芯片,降低了額外的功耗開支。采用并行的輸入/輸出方式,可以達(dá)到很快的速度。這樣合理的分配了FPGA資源,具有很強(qiáng)的實時性和準(zhǔn)確性??梢詫崿F(xiàn)各種靈活控制。綜合考慮,最后采用方案二。2.2點陣驅(qū)動方案論證方案一:串行方式顯示這種顯示方式由譯碼器單元74HC138、數(shù)據(jù)移位寄存器74HC595和列驅(qū)動器組成,點陣顯示屏可以用少量I/O口接收控制器傳輸下來的大量數(shù)據(jù),此方案為點陣顯示屏系統(tǒng)中比較常用的,所用器件也比較常用,容易買到。但是它存在一個致命的缺點,就是刷新速度不夠快,高速度的地址編碼信息無法發(fā)送。方案二:并行方式顯示可以通過鎖存器芯片來增強(qiáng)FPGA的I/O口的驅(qū)動能力,將32位寬的數(shù)據(jù)同時輸入到LED點陣列中,達(dá)到并行控制LED點陣的目的。方案中運(yùn)用4片鎖存器74HC573來組成雙緩沖寄存器,驅(qū)動LED點陣行線,用5片3-8譯碼器74HC138組合成5-32譯碼器對LED點陣的32列進(jìn)行選取。這樣就避免了各行數(shù)據(jù)顯示不同步的問題。由于并行數(shù)據(jù)傳輸速度非???所以高速度的地址編碼信息可以同步發(fā)出。綜上所述,本設(shè)計最終選擇了第二個方案。3理論分析與計算3.1光筆選取和參數(shù)設(shè)計光筆用光電三極管3DU33做為的感光元件,LM393為比較器。由于點陣的光強(qiáng)相對較弱,通過光電三極管的電流很小,通過串接硅二極管來提升光電三極管發(fā)射極電壓,方便后級比較器作業(yè)。光筆原理圖如下圖:圖1光筆原理圖3.2LED點陣屏驅(qū)動設(shè)計本電路采用74HC573做電平轉(zhuǎn)換及行驅(qū)動,8550三極管做列驅(qū)動,用5片74HC138擴(kuò)展成5-32譯碼器對列選信號進(jìn)行譯碼,顯示亮度和器件參數(shù)均可達(dá)到系統(tǒng)要求的功能設(shè)計。系統(tǒng)原理圖如下:省略4行………省略4行………圖2LED點陣驅(qū)動原理圖3.3屏亮自動調(diào)節(jié)設(shè)計利用片外A/D轉(zhuǎn)換芯片將當(dāng)前光強(qiáng)轉(zhuǎn)換成數(shù)字信號,將傳統(tǒng)的PWM調(diào)光技術(shù)稍加修改,變換成帶編碼的PWM調(diào)光方式,根據(jù)顯示的容進(jìn)行屏亮的自動調(diào)節(jié)。設(shè)計的框圖如下:亮度調(diào)節(jié)亮度調(diào)節(jié)編碼區(qū)內(nèi)容顯示區(qū)清0調(diào)亮區(qū)光敏電阻A/D轉(zhuǎn)換圖3點陣屏亮度自動調(diào)節(jié)圖3.4超時關(guān)顯示節(jié)電設(shè)計基于定時器的數(shù)字電路,給定一個時間,當(dāng)光筆檢測到光信號,定時電路自動復(fù)位,否則定時電路到給定的時間后數(shù)字信號溢出,把溢出信號傳送給核心模塊,通過功耗管理模塊,把系統(tǒng)其余部分模塊的時鐘切斷以達(dá)到節(jié)電的目的。系統(tǒng)的節(jié)電框圖如下:全局時鐘全局時鐘功耗管理核心模塊片外器件片選控制片外器件圖4超時待機(jī)框圖4系統(tǒng)電路設(shè)計4.1系統(tǒng)工作原理以NIOSII軟核為主控,系統(tǒng)包括LED掃描為主的多功能模塊、按鍵管理模塊、LCD控制等,通過鍵盤掃描來確定工作模式以實現(xiàn)點亮、劃亮、擦除、區(qū)域拖拽等功能,用外圍電路的反相功能能實現(xiàn)點陣顯示屏的反顯,功耗管理模塊對各模塊時鐘的控制可以實現(xiàn)節(jié)電的功能。光筆輸入LED掃描光筆輸入LED掃描地址編碼地址解碼解碼糾錯反顯控制亮度調(diào)節(jié)反顯點陣數(shù)據(jù)顯示緩存RAM按鍵管理反顯點陣數(shù)據(jù)顯示緩存RAM按鍵管理點陣列選點陣列選驅(qū)動芯片片選控制A/D調(diào)光調(diào)理驅(qū)動芯片片選控制A/D調(diào)光調(diào)理NIOSII32位軟核微處理器功耗管理模塊NIOSII32位軟核微處理器功耗管理模塊LCD控制器LCD控制器圖5系統(tǒng)工作原理框圖4.2系統(tǒng)工作時序D10~D6送出Y軸坐標(biāo)的原碼,D5為原碼的奇校驗,D4~D0為原碼的反碼校檢。經(jīng)過雙層編碼校驗,有效防止了周邊點陣對數(shù)據(jù)的干擾。降低了CPU數(shù)據(jù)處理的難度,只有確定有效的數(shù)據(jù)才會通過中斷被CPU讀入部進(jìn)行處理。X軸坐標(biāo)值則為當(dāng)前所選列的地址。系統(tǒng)工作時序圖如下:D10D10D8……D9D0顯示區(qū)……地址編碼區(qū)上升沿讀入光筆數(shù)據(jù)5系統(tǒng)程序設(shè)計5.1系統(tǒng)流程概述本系統(tǒng)是以軟核NIOSII為主控,編程采用模塊死循環(huán)的方式:按任意模式設(shè)置鍵將會復(fù)位CPU,CPU重新啟動后將根據(jù)復(fù)位標(biāo)志進(jìn)入相應(yīng)的管理模式,從而實現(xiàn)點亮、劃亮、擦除、拖移等功能,這種編程模式在降低編程難度的同時增強(qiáng)了系統(tǒng)的可靠性。多字連寫模式讀復(fù)位多字連寫模式讀復(fù)位標(biāo)志讀顯示緩存RAM等待有效坐標(biāo)中斷更新顯示緩存等待有效坐標(biāo)中斷更新顯示緩存清除顯示緩存數(shù)據(jù)結(jié)束點亮模式筆畫擦除模式全屏擦除模式循環(huán)檢測KEY+/-更新待機(jī)時間…………按鍵存入字1并清屏循環(huán)顯示字1~4按鍵存入字4并清屏區(qū)域選擇選區(qū)拖動區(qū)域縫合建立輔助選區(qū)任意模式鍵對CPU進(jìn)行復(fù)位待機(jī)時間設(shè)定區(qū)域拖動模式圖6系統(tǒng)程序設(shè)計流程圖6系統(tǒng)測試與結(jié)果6.1劃亮反顯擦除拖移的測試和結(jié)果各模塊均調(diào)通,將調(diào)好的模塊連在一起,加上5v電壓源,啟動進(jìn)行系統(tǒng)初始化。按鍵進(jìn)入點亮模式,用光電筆在LED點陣書寫顯示屏上接觸,可以看到接觸的點點亮,LCD上顯示亮點的精確坐標(biāo)。用光筆快速的在書寫顯示屏上劃過,發(fā)現(xiàn)劃過的地方變亮,多次操作都能實現(xiàn)。再次按鍵,進(jìn)入反顯模式,光筆劃過,發(fā)現(xiàn)經(jīng)過的地方?jīng)]有亮其他的部分高亮,反顯測試正常。再次按鍵進(jìn)入擦除模式,用光筆在屏幕上劃過,顯示屏亮的地方變暗了。再按一次鍵可以看到整屏由亮變暗,實現(xiàn)了擦除這一功能。最后進(jìn)入多字連寫模式和區(qū)域拖動模式用光筆在LED點陣顯示屏上寫四個字,最后在屏上循環(huán)顯示。最后對寫的字用筆圈起來可以用筆移動。實現(xiàn)了對象拖移功能。經(jīng)過反復(fù)的測試,所有的功能都能很好的實現(xiàn),系統(tǒng)正常。6.2屏亮自動調(diào)節(jié)測試和結(jié)果外部光環(huán)境人為地改變后,測試LED點陣書寫顯示屏的亮度是否發(fā)生變化如果發(fā)生變化,則表明能夠自動調(diào)節(jié),結(jié)果屏亮隨外部環(huán)境的變化而改變,系統(tǒng)正常。6.3超時關(guān)顯示節(jié)電測試和結(jié)果加5v電壓啟動系統(tǒng),對系統(tǒng)初始化。設(shè)定待機(jī)關(guān)顯示的時間,在測試點接入萬用表,不進(jìn)行任何操作到設(shè)定的時間,看顯示屏是否自動關(guān)閉。結(jié)果書寫顯示屏自動關(guān)閉,電路板測試點上的電流小于5mA。表明測試正常,完成系統(tǒng)要求。7結(jié)論本作品完成了題目的基本要求和發(fā)揮部分的全部要求,系統(tǒng)性能良好。通過對作品的各項進(jìn)行了優(yōu)化,使系統(tǒng)的性能有了提高。FPGA的運(yùn)用提高了強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度,并且使電路簡單。同時也提高了系統(tǒng)的集成度和可靠性。參考文獻(xiàn)《模擬電子線路基礎(chǔ)》,吳運(yùn)昌著,:華南理工大學(xué),20XX;《數(shù)字電子技術(shù)基礎(chǔ)》,閻石著,:高等教育,1997年;《FPAG系統(tǒng)設(shè)計與實踐》,黃智偉著,:電子工業(yè),20XX;《EDA技術(shù)與應(yīng)用〔第2版》,江國強(qiáng)著,:電子工業(yè),20XX;《電子系統(tǒng)設(shè)計》,金平、明山、余祥著,:電子工業(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;//第幾個字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;//是否離開原點volatilealt_u8huidao_start_point;//是否回到原點volatilealt_u8shixing_xuanqu;//是否已經(jīng)實心選區(qū)//volatilealt_u8temps_x;volatilealt_u8temps_y;alt_u8gillian_x[]="**_twins_y.";//實際上是yalt_u8gillian_y[]="**_twins_x.";//實際上時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>;//注冊外部中斷,對應(yīng)的參數(shù)分別為中斷優(yōu)先級,傳遞//到中斷服務(wù)函數(shù)的參數(shù),和中斷服務(wù)函數(shù)。IOWR_ALTERA_AVALON_PIO_IRQ_MASK<PIO_PEN_OK_BASE,0x1>;//使能按鍵中斷位,這里在定義硬件時只用了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;//是否離開原點huidao_start_point=0;//是否回到原點shixing_xuanqu=0;//是否已經(jīng)實心選區(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,"點亮模式">;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,"點亮模式">;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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論