freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stc單片機的旋轉(zhuǎn)led屏的設(shè)計畢業(yè)設(shè)計論文(編輯修改稿)

2024-07-24 21:09 本頁面
 

【文章內(nèi)容簡介】 圖28 紅外遙控接收流程圖 LED驅(qū)動電路LED驅(qū)動電路是整個LED的核心,由芯片協(xié)同控制。考慮到在同一時刻,MCU可能需要進行射頻接收,解壓縮碼,讀取寫入,顯示控制等一系列操作,根據(jù)顯示原理,在延時區(qū)間內(nèi),LED需要保持狀態(tài)不變,在空間劃過軌跡形成文字圖案等。故以上操作必須在該延時區(qū)間內(nèi)完成,如果無法完成將導(dǎo)致顯示不暢或者顯示變形,所以LED驅(qū)動電路是整個設(shè)計的核心部分 旋轉(zhuǎn)LED平面板電路圖旋轉(zhuǎn)LED時鐘工作原理是利用人眼視覺暫留的原理。(a)所示,(b)所示的內(nèi)框和外框。緊挨著外框的那個LED燈用來顯示時間刻度,(b)所示。假設(shè)12點那個刻度為0,那么每個小時時針之間的角度為360176。247。12=30176。,于是當(dāng)一列發(fā)光二極管每旋轉(zhuǎn)30176。,該LED燈就點亮一個瞬間以呈現(xiàn)出時間刻度。,人眼就會誤認為先后產(chǎn)生的12個刻度是同一時刻顯示出來的。顯示秒針、分針、時針的方法跟顯示時間刻度的原理一樣。平面板電路如圖28所示 圖28 旋轉(zhuǎn)LED平面板原理圖 旋轉(zhuǎn)LED側(cè)面電路圖采用的是旋轉(zhuǎn)掃描顯示方法,即顯示器件只有一列共36個高亮度發(fā)光二極管,由電機帶動其進行旋轉(zhuǎn),運行到某一位置時就顯示該位置的狀態(tài),到下一位置時又顯示下一位置的狀態(tài),由于人眼具有視覺暫留的特性,當(dāng)畫面以一定速率刷新時,人眼看到的就是連續(xù)的圖像。本設(shè)計用一列顯示器件即完成了全部內(nèi)容的顯示,掃描過程由機械轉(zhuǎn)動更換位置來實現(xiàn)。旋轉(zhuǎn)LED側(cè)面電路圖如29所示 圖29 旋轉(zhuǎn)LED側(cè)面板電路圖第三章 軟件部分 POV LED軟件簡介新型旋轉(zhuǎn)LED顯示器控制系統(tǒng)與軟件件的開發(fā)與設(shè)計選用的是宏晶科技的八位MCU,采用C語言完成代碼編寫。在下位機,采用改進的LZSS算法對數(shù)據(jù)包進行壓縮;在旋轉(zhuǎn)板系統(tǒng)中,編寫、調(diào)試代碼,完成各個模塊正常穩(wěn)定的工作;設(shè)計轉(zhuǎn)速控制與顯示的自適應(yīng)算法,使整個系統(tǒng)顯示與電機轉(zhuǎn)速構(gòu)成信息上的反饋。系統(tǒng)程序由C語言編寫,使用Keil uVision2 完成編寫、編譯、糾錯、連接。Keil uVision2是德國Keil Software 公司出品的C語言軟件開發(fā)系統(tǒng),該軟件還能嵌入?yún)R編語言,使程序達到接近于匯編的工作效率。Keil uVision2共豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面,生成的目標(biāo)代碼效率非常高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。 上位機軟件ZQB 軟件主要由三部分組成,(1)菜單、展示欄與狀態(tài)欄(2)平面圖形涂鴉部分(3)軟件主體操作部分。如圖31所示圖31 上位機軟件圓形涂鴉部分正右方代表起始位置“0”,正左方為位置“89”,整個圓分為180份。當(dāng)鼠標(biāo)在圓內(nèi)活動時,按下左鍵,則鼠標(biāo)過往的地方LED燈亮,按下右鍵,則鼠標(biāo)過往的地方LED燈滅。矩形LED部分能夠精確描繪內(nèi)部LED燈狀態(tài),其中左邊為高位,右邊為低位,8盞LED燈為一個存儲字節(jié),數(shù)據(jù)存儲從左到右。矩形LED邊框右側(cè)是表示LED燈旋轉(zhuǎn)位置,從0179共180份。軟件主體操作部分:(1)標(biāo)題:當(dāng)無工程時,顯示無工程;當(dāng)建立了工程后,顯示對應(yīng)工程名字;當(dāng)文件修改了以后,在工程名前面會出現(xiàn)一個“*”號,保存后,“*”號消失;(2)平面(圖片/動畫):圖片取模,是將符合的格式進行取模;注意,僅支持24位真彩圖片,不支持其他格式的圖片;圖片取模的方法,不論圖片大小,先將圖片按比例縮小,并在圖片中心取模;注意,圖片至少應(yīng)該為67x67,再次導(dǎo)入圖片時,原來的數(shù)據(jù)不丟失,方便數(shù)據(jù)合成;單選按鈕“動畫”、“圖片”,在列表框中顯示當(dāng)前保存的動畫和圖片數(shù)據(jù);在列表框中可以按上下鍵進行翻看,也可以按組合鍵ctrl+上下鍵進行上下圖片、動畫幀的互換;保存amp。增加,將左側(cè)平面中的數(shù)據(jù)保存到“動畫”或者“圖片”中去;刪除,選擇右側(cè)的幀,從指定的列表中刪除;保存修改,當(dāng)對右側(cè)的幀修改后,點擊此按鈕將保存數(shù)據(jù);循環(huán)預(yù)覽,對右側(cè)列表中的數(shù)據(jù)進行循環(huán)演示;(3)平面(字符):欄1,選擇目前自帶的字體;欄2,輸入需要在平面上顯示的字符,不能超過4個;欄3,調(diào)整字體大??;欄4,調(diào)整字符上下位置;按鈕5,將文字上投至平面;(4)平面(快捷操作):按鈕“矩”,對矩形LED部分執(zhí)行下拉欄操作;按鈕“圓”,對整個平面執(zhí)行下拉欄操作;下拉欄,顯示平面填充樣式;按鈕“P”,將當(dāng)前平面中的數(shù)據(jù)顯示出來;(5)側(cè)面(文字):文字輸入窗口,輸入需要計算的16點陣字符;按鈕“M”,將當(dāng)前輸入的字符數(shù)據(jù)顯示出來;(6)時間:對下位機進行時間同步,會在消息窗口中顯示信息同步過程信息;注意,需要下位機代碼支持,并且要打開串口;(7)串口:串口通信的設(shè)置;(8)燒寫:將上位機的數(shù)據(jù)傳遞給下位機,并在消息窗口中顯示下載數(shù)據(jù)的過程;注意,需要下位機代碼支持,并且要打開串口;(9)消息:顯示上位機與下位機通信消息; 系統(tǒng)編程語言和編程工具在單片機的開發(fā)應(yīng)用系統(tǒng)中,匯編語言作為系統(tǒng)的嵌入式系統(tǒng)的編程語言,已經(jīng)不能滿足實際需要,高級語言被逐漸引入,C語言就是其中之一。C語言是一種通用的計算機程序設(shè)計語言,它既有高級語言的各種特征,又能直接操作系統(tǒng)硬件。對于大多數(shù)S系列單片機,使用C語言與匯編語言相比具有如下特點:⑴不需要了解處理器的指令集,也不必了解存儲器結(jié)構(gòu)。(2) 寄存器分配和尋址方式由編譯器進行管理。 (3) 指定操作的變量選擇組合提高了程序的可讀性。 (4) 可使用與人的思維更相近的關(guān)鍵字和操作函數(shù)。 (5) 程序的開發(fā)和調(diào)試時間大大縮短。 (6) C語言中的庫文件提供了許多標(biāo)準(zhǔn)的例程。 (7) 可實現(xiàn)模塊化編程技術(shù),從而可將己編制好的程序加入到新程序中。 (8) C語言可移植性好且非常普及。 系統(tǒng)各模塊程序的設(shè)計 主控機程序模塊首先,對單片機串口初始化,設(shè)置波特率為2400bit/s,以及nRF401初始化設(shè)置,因為nRF401是半雙工的無線通訊,所以初始設(shè)置為發(fā)射狀態(tài),選擇通信頻道1。然后,調(diào)用鍵盤函數(shù)讀取鍵盤狀態(tài),通過讀取鍵盤狀態(tài),獲得要發(fā)送的控制數(shù)字指令,通過CRC檢驗轉(zhuǎn)換成數(shù)字命令,從串口通過nRF401把命令發(fā)送出去。主程序流程圖如圖32所示關(guān)閉顯示遙控按鍵信息獲取時間數(shù)據(jù)庫0串行口初始化獲取1302的時間DS1302初始化外部中斷初始化關(guān)閉顯示開始根據(jù)DISMODE執(zhí)行相應(yīng)的顯示函數(shù)圖32 主程序流程圖 從機程序模塊從機的程序開始,對NRF40串口、MAX6969以及中斷進行初始化,然后進入默認的中文顯示模式,等待中斷。因為16陣列每個點顯示的時間是由定時器確定的,但是,電機的轉(zhuǎn)速,一開始都是不確定的。所以,一開始顯示的不怎么正確。等到進入中斷以后,通過自適應(yīng)算法,逐漸對計時器的初始值進行調(diào)整,過一定時間后,顯示就正常了。進入中斷后,通過對接收的數(shù)據(jù)進行判斷,實現(xiàn)文字和數(shù)字顯示的切換。 下面簡單說下,自適應(yīng)算法的實現(xiàn)過程。首先,把假設(shè)旋轉(zhuǎn)一周顯示的點陣數(shù)為16*128。那就意味著旋轉(zhuǎn)一周需要顯示的點數(shù)為128個。由于電機旋轉(zhuǎn)一周產(chǎn)生的中斷次數(shù)為3次。那么每次外部中斷發(fā)生時,應(yīng)該掃描的點數(shù)為43個。在這里我設(shè)計為45個。也就是外部中斷產(chǎn)生時,定時器應(yīng)該產(chǎn)生的中斷次數(shù)為45次(也就是掃描45個點)。當(dāng)進入外部中斷時,通過判斷計時的中斷次數(shù)來重新調(diào)整計時器的值,如果定時器中斷次數(shù)大于45,表明LED顯示一個點的時間太短(圖象或者文字寬度減少),應(yīng)該適當(dāng)?shù)难娱L定時器定時時間;若定時器中斷次數(shù)小于45,表明LED顯示一個點的時間過長,應(yīng)該適當(dāng)減少定時器定時時間。通過對定時器定時時間的不斷調(diào)整(也就是調(diào)整LED顯示每一個點的時間),從而達到穩(wěn)定的顯示。這種方法只需在軟件上進行修改、調(diào)試,即使電機的轉(zhuǎn)速發(fā)生了改變,也能夠正確的顯示文字或圖象。采用中斷是為了更有效的利用單片機內(nèi)部資源,為了能夠連續(xù)的顯示文字和圖像采用了外部中斷的方法,即在外部中斷的時候,計算和調(diào)整顯示文字和圖像的時間,為了得到可靠地外部資源,其中外部中斷0用于獲取電機轉(zhuǎn)速脈沖以及修改定時器0的參數(shù),外部中斷1用于接受紅外數(shù)據(jù),外部中斷1的流程圖如圖33所示,外部中斷0的流程圖如圖34所示YYYNNN退出Startflag=1置接受完畢是否接受完畢數(shù)據(jù)加數(shù)組信號是否在65~132之間Startflag==1?開始 圖33 外部中斷1流程圖 結(jié)束根據(jù)定時器0當(dāng)前值計數(shù)電機轉(zhuǎn)速speed++置外部中斷標(biāo)志位為1開始 圖34 外部中斷0流程圖再設(shè)計中需要達到人機交互,比如要求用遙控器來控制旋轉(zhuǎn)LED的旋轉(zhuǎn)速度,通過視覺暫留的時間來呈現(xiàn)團,此時就要用到了定時器了,定時器1的作用就是用來測量當(dāng)前的電機轉(zhuǎn)速以及用來修改時間,定時器0是用來確定視覺暫留維持的時間。定時器0的流程圖如圖35所示,定時器1的流程圖如圖36所示退出中斷計數(shù)變量T0S+1重置TH0/TL0計數(shù)初值置中斷標(biāo)志位停止計數(shù)開始圖35 定時器0的流程圖N分秒時各加1N關(guān)定時器0YY置顯示標(biāo)志位Speed>10?S==8000?設(shè)置圖像刷新標(biāo)志位開始圖36 定時器1的流程圖第四章 系統(tǒng)調(diào)試 原件焊接和整版測試⑴原件焊接焊接前對電阻、電容的量值要進行測試、篩選、選擇與電路中參數(shù)值最接近的元件。芯片選擇時要注意封裝。本系統(tǒng)中的元件全是直插式的。⑵整板測試整板測試是在元件焊接完成但未加電前對電路板進行檢查。該過程是系統(tǒng)上電前的檢查工作,需要對每個器件逐個引腳進行檢查,一方面是檢查有沒有引腳虛焊或與其他信號短路,另一方面是對器件引腳的在檢查,查看設(shè)計是否正確。整板測試可以按照先電源和地,再逐個器件引腳的順序測試。⑶上電功能測試上電測試是調(diào)試的關(guān)鍵部分,按照系統(tǒng)方案設(shè)計的模塊化思想,應(yīng)該分模塊測試字體。首先還是應(yīng)該測試電源部分,系統(tǒng)上電以后,測試各個電源接口和器件的電源部分是否正常工作,同時應(yīng)注意系統(tǒng)中有無器件過熱情況,如果有的話,可能是相應(yīng)的器件損壞或電路中有短路,需要處理之后再加電。如果沒有問題則可以進行功能的檢測。 系統(tǒng)硬件測試由于系統(tǒng)硬件較復(fù)雜,硬件電路裝配、焊接完成后,可能不能正常工作。為了方便測試,采用分塊調(diào)試的方法。電路由多個模塊組成,電源模塊、復(fù)位電路、輸入輸出接口電路、下載接口電路等。單片機處理器是系統(tǒng)的靈魂,所以先對單片機進行測試調(diào)試。首先,利用下載口檢測電路、下載接口電路等。單片機處理器是系統(tǒng)的靈魂,所以先對單片機進行檢測調(diào)試。首先。利用下載口檢測單片機,如果檢測不到,問題一般是單片機的復(fù)位電路、下載口以及晶振。分別對這三個端口進行檢測,基本都可以解決問題。其次,對從機的MAX6969芯片進行檢測。檢測芯片的電源連接情況,使能控制端的情況。這些問題都解決以后,就可以進行軟件測試了。 軟件測試硬件測試完成以后,軟件測試就非常重要了,系統(tǒng)軟件調(diào)試時也要分塊來進行調(diào)試,這樣才能使進程有條不紊的進行下去,而不至于出現(xiàn)混亂。首先進行MAX6969LED驅(qū)動芯片。通過參閱有關(guān)資料,詳細了解芯片的參數(shù),以及控制方法,調(diào)試起來就方便多了。上電以后,發(fā)現(xiàn)LED并沒有顯示。利用萬用表測量輸出端口的電壓發(fā)現(xiàn)電壓幾乎為零。通過查閱資料。MAX6969的使能控制端OE的,當(dāng)OE=1時,MAX6969輸出為高阻態(tài)。通過對OE端的檢測,發(fā)現(xiàn)OE的電平為高電平,原來有跟條線沒有接上。焊接好跳線后,上電后,MAX6969可以正常工作了。其次,對通訊模塊進行測試。為了方便測試,在不PCB的時候,把主機模塊的單片機的端口引出來。接上液晶,把接收到的數(shù)據(jù)用液晶顯示出來。但是,系統(tǒng)上電以后,液晶一直沒有顯示出接受的屆結(jié)果。通過檢測發(fā)現(xiàn),nRF401沒有接上的時候,端口電壓正常。通過線路檢測,發(fā)現(xiàn)端口的電源線沒有接好。解決電源問題以后,再次上電,但是液晶顯示的數(shù)據(jù)也是不正確。通過對軟件程序的仔細分析,以及閱讀相關(guān)書籍,在無線通訊中,往往存在干擾,所以必須要對通訊的數(shù)據(jù)進行檢測。通常檢驗數(shù)據(jù)的方法有,奇偶檢驗,CRC檢驗等。奇偶校驗的方法比較簡單,但是當(dāng)錯誤的數(shù)據(jù)位為偶數(shù)個時,檢測不出數(shù)據(jù)有錯。CRC校驗理論可以檢測出任何位的錯誤,但是計算比價復(fù)雜,增加了單片機的工作負擔(dān)。不過CEC檢測表可以實現(xiàn)簡單的8bit的CRC檢驗() CRC校驗十六進制數(shù)0x000x010x020x030x040x050x060x07CRC檢驗碼0x000x0d0x170x1a0x230x2e0x340x39十六進制數(shù)0x080x090x0a0x0b0x0c0x0d0x0e0x0fCRC檢驗碼Ox460x4b0x510x5c0x650x680x720x7f其原理是要把發(fā)送的命令通過讀表的方式得到CRC校驗碼,發(fā)送出去,這種方式簡單快捷,大幅度的減少了單片機的工作量。 系統(tǒng)聯(lián)調(diào)最后,便是系統(tǒng)整體的調(diào)試了。系統(tǒng)上電后,并沒有看到正確的文字顯示。文字顯示歪歪斜斜,過了很長時間,還是這樣。分析可能是定時器的初始值可能太大或太小所至。通過修改程序,從進入中斷開始倒計時到進入下次中斷,把時間發(fā)送出去。液晶顯示的數(shù)據(jù)和預(yù)先設(shè)想的數(shù)據(jù)相差很遠。通過修改定時器的
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1