<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)簡單實(shí)現(xiàn)圖形顯示的方法

          基于單片機(jī)簡單實(shí)現(xiàn)圖形顯示的方法

          作者: 時(shí)間:2011-08-23 來源:網(wǎng)絡(luò) 收藏

          3軟件設(shè)計(jì)

          當(dāng)上點(diǎn)復(fù)位后,Po__P3口均輸出高電平,所以在上電復(fù)位之后,我們首先用程序把所有端口置零,使輸出電壓為零,從而使鏡面處于原始靜止位置,并把中斷開啟,并置一些初始值。

          QQ截圖未命名1.jpg

          當(dāng)程序開始運(yùn)行之后就會進(jìn)入的選擇程序,我們設(shè)置一個(gè)延時(shí)程序,當(dāng)這段時(shí)問內(nèi)沒有按鍵按下時(shí),按照我們設(shè)置的初始值一個(gè)固定的;當(dāng)這段時(shí)間內(nèi)有按鍵按下時(shí),程序會根據(jù)我們按下的按鍵賦值,從而不同的或改變圖形的大小或者是改變圖形閃爍的頻率。本段程序的按鍵判斷可用比較法來完成,當(dāng)有按鍵按下時(shí),程序會進(jìn)入中斷,我們判斷Pl寄存器中的數(shù)據(jù)是否為FEH,若是則說明此時(shí)P1.0連接的按鍵按下,此時(shí)我們讓程序返回執(zhí)行某一圖形的顯示程序。圖形顯示程序是最重要的部分,我們根據(jù)對應(yīng)的按鍵按下時(shí),從中斷程序返回的數(shù)值判斷出,主程序中應(yīng)該要執(zhí)行某個(gè)圖形的顯示程序。圖形顯示程序中我們首先從直線開始說明,直線顯示比較,我們想顯示一條橫線的時(shí)候,就從的P2口輸出一組從H開始逐漸增大,然后又逐漸減小的值,從而是動力裝置得到一個(gè)從0逐漸變大再逐漸變小的信號,使其中一個(gè)鏡面沿中心軸逐漸的向一側(cè)偏轉(zhuǎn),然后在彈簧的恢復(fù)力的作用下漸漸復(fù)原,在顯示屏上投下一條橫線。同樣想顯示豎線的時(shí)候,我們只需要使程序從P2口輸出一段H逐漸變大,然后由大逐漸變小的值即可。

          顯示一條斜線時(shí),根據(jù)函數(shù)Y:KX+B可知,當(dāng)X軸上變化的值已知時(shí),就能算出對應(yīng)的Y軸的值,我們x軸上的數(shù)值從00H開始變大,然后變小時(shí),就能得到對應(yīng)的Y的值的變化趨勢,把這兩個(gè)值分別從P0口和P2口輸出,就會使兩個(gè)鏡子共同轉(zhuǎn)動,使顯示的圖形呈Y=KX+B趨勢。

          同樣,我們想顯示三角形時(shí),任何三角形都是有三條兩兩相交的有限的直線夠成,分別記作Y=KX,+B.,Y,=K,X,+BY= KX+B,我們把X軸的變量從H逐漸變大,再逐漸變小,而Y軸上的值分別按照各自的值在各自的區(qū)間內(nèi)變化一次,從而在P0口和P2口分別輸出一組對應(yīng)的變化信號,使輸出的圖形顯示出三角形。

          最后,矩形是由四條有限直線的構(gòu)成,并且是有兩組平行線,我們按照這個(gè)規(guī)律讓X軸和Y軸的數(shù)值各自變化一次,即可得到結(jié)果。型圖形,是由四條相交于一點(diǎn)的直線構(gòu)成,顯示的時(shí)候,我們必須首先計(jì)算出,相交點(diǎn)的坐標(biāo),然后分別按各自的變化規(guī)律,從P0口和P2口輸出一次就行。圓形顯示時(shí),我們首先計(jì)算出圓點(diǎn)的坐標(biāo)然后,按照公式 Xz+Yz:Rz計(jì)算出各個(gè)點(diǎn)的坐標(biāo),進(jìn)而輸出顯示即可。

          圖形的大小的確定,圖形的大小是由兩個(gè)鏡面每次變化的最大范圍決定,當(dāng)我們改變每次變化時(shí)X的最大值時(shí),就會改變各個(gè)圖形對應(yīng)的大小。我們在程序的起始時(shí),給一個(gè)中間值,當(dāng)我們按下變大按鍵式,在中斷程序中改變這個(gè)值,主程序中,當(dāng)X或者Y的值增大到這個(gè)值時(shí),開始變小。注意,因?yàn)殓R面的轉(zhuǎn)動是有限的,超過這個(gè)值時(shí),光線就不會被反射,所以當(dāng)增大按鍵一直按下,中間值就會一直增大,當(dāng)達(dá)到極限值后,就不在增大。圖像變小按鍵的程序算法也一樣,只是變化時(shí),是讓中間值變小而已。

          圖形閃爍的原理,就是利用當(dāng)我們讓入射光線和鏡面的夾角小于0?;蛘呤谴笥?0。時(shí),光線就不會被反射到外界了,所以,系統(tǒng)顯示時(shí),鏡面和 ^射光線的夾角應(yīng)在0。到90。之間。我們在圖形完成一次整體顯示時(shí),改變P0和P2口的輸出值,使鏡面和光線的夾角小于0?;蛘呤谴笥?0。,使外界沒有顯示,在運(yùn)行延時(shí)程序,程序開始時(shí)給一個(gè)延時(shí)值,通過按鍵按下時(shí),在中斷程序中改變這個(gè)延時(shí)值的大小,這樣當(dāng)我們不斷的按這個(gè)按鍵時(shí),圖形的閃爍頻率從快到慢,或者是從慢到快。系統(tǒng)程序總體流程圖如圖2所示。

          本設(shè)計(jì)為單片機(jī)應(yīng)用實(shí)例一種可行的方案,但是由于經(jīng)驗(yàn)和水平有限,在設(shè)計(jì)中難免存在一些缺陷,還望批評指正。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();