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

正文內(nèi)容

基于avr單片機(jī)的點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)與仿真(編輯修改稿)

2025-01-09 01:31 本頁面
 

【文章內(nèi)容簡介】 輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。對(duì)于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長,在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以致影響到 LED 的亮度。 采用串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為基于 AVR 單片機(jī)的點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)與仿真 10 了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并出的移位功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串行移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。 LED 點(diǎn)陣顯示模塊進(jìn)行的方法有兩種: ( 1)水平方向( X 方向)掃描,即逐列掃描的方式(簡稱列掃描方式):此時(shí)用一個(gè) P 口輸出列碼決定哪一列能亮(相當(dāng)于位碼),用另一個(gè) P 口輸出行碼(列數(shù)據(jù)),決定該行上那哪個(gè) LED 亮(相當(dāng)于段碼)。能亮的列從左到右掃描完 16 列(相當(dāng)于位碼循環(huán)移動(dòng) 16 次)即顯示出一個(gè)完整的圖像。 ( 2)豎直方向( Y 方向)掃描,即逐行掃描方式(簡稱行掃描方式):此時(shí)用一個(gè) P 口輸出決定哪一行能亮(相當(dāng)于位碼) ,另一個(gè) P 口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點(diǎn)陣旋轉(zhuǎn) 90 度的數(shù)據(jù))決定該行上哪些 LED 燈亮(相當(dāng)于段碼)。能亮的行從上向下掃描完 16 行(相當(dāng)于位碼循環(huán)移位 16 次)即顯示一幀完整的圖像。 本設(shè)計(jì)應(yīng)用的是第一種的掃描方法,即 水平方向( X 方向)掃描 。 每一個(gè)字由 16 行 16 列的點(diǎn)陣形成顯示,即每個(gè)字均由 256 個(gè)點(diǎn)陣來表示,我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素。一般我們使用的 16 16的點(diǎn)陣宋體字庫,即所謂的 16 16,是每一個(gè)漢字在縱橫各 16 點(diǎn)的區(qū)域內(nèi)顯示的。漢字庫從該位置起的 32 字節(jié)信息記錄了該字的字模信息。事實(shí) 上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在 256 像素范圍內(nèi)的任何圖形。 我們以水平方向( x 方向)掃描顯示漢字的“ 西 ”為例來說明其掃描原理,每一個(gè)字由 16 行 16 列的點(diǎn)陣組成顯示,如圖下的,如果用 8位的 Atmega16 單片機(jī)來控制,由于單片機(jī)的總線為 8 位,一個(gè)字需要拆分成兩個(gè)部分。一般我們把它分解成上部分和下部分,上部分由 8*16 的點(diǎn)陣組成,下部分也由 8*16 的點(diǎn)陣組成。在本例中單片機(jī)首先顯示的是西安理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 11 左上角的第一列的部分,即第 0 列的 P00~P07 口。方向?yàn)?P00 到 P07,顯示漢字“ 西 ”的時(shí)候, P00 到 P04 都是滅的 , P05 亮,即二進(jìn)制 00100000,轉(zhuǎn)換為 16 進(jìn)制為 40H, 如圖 29 所示。 上半部分第一列完成之后,繼續(xù)掃描下半部分的第一列,為了接線的方便,我們?nèi)栽O(shè)計(jì)成由上往下的掃描方式,即從 P27 向 P20 方向掃描,從上圖可以看到,這一列所有的都不亮,所以代碼為 00000000, 16 進(jìn)制為 00H,然后單片機(jī)轉(zhuǎn)向上半部的第二列,除了 P05 亮,其他的都不亮,即為 00000100, 16 進(jìn)制為 04H,這一列掃描完成之后繼續(xù)進(jìn)行下半部分的掃描,除了 亮,其他的為不亮,為二進(jìn)制 00000000,即 16 進(jìn)制00H。 按照這個(gè) 方法,繼續(xù)進(jìn)行下面的掃描,一共掃描 32 個(gè) 8 位,可以得出漢字“ 西 ”的掃描代碼為 : 40H,00H,4FH,FEH,48H,14H,48H,24H 48H,44H,7FH,84H,48H,04H,48H,04H, 48H,04H,7FH,84H,48H,44H,48H,44H, 48H,44H,4FH,FEH,40H,00H,00H,00H, 圖 29 點(diǎn)陣顯示原理圖 由這個(gè)原理可以看到,無論顯示何種字體或圖像,都可以用這種方法來分析出它的掃描代碼從而顯示在屏 幕上。了解漢字的顯示原理之后,那如何得到漢字的字模信息呢?現(xiàn)在有一些現(xiàn)成的漢字字模生成軟件,基于 AVR 單片機(jī)的點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)與仿真 12 可從網(wǎng)上下載漢字字庫提取程序直接提取字庫,如 圖 210 所示 的為一種字模生成軟件,軟件打開后輸入漢字,點(diǎn)擊“檢取”后,十六進(jìn)制數(shù)據(jù)漢字代碼即可以自動(dòng)生成,把我們需要的豎排數(shù)據(jù)復(fù)制到我們的程序即可。 圖 210 漢字字模生成軟件 點(diǎn)陣的移動(dòng) 以下以 16 16 點(diǎn)陣為例 介紹點(diǎn)陣的移動(dòng)。要 顯示一個(gè)字符,該字符的點(diǎn)陣數(shù)據(jù)可以列向(縱向) 16 點(diǎn)組字,又可以行向(橫向) 16 點(diǎn)組字。無論哪一種組字方法,都既可以顯示字符的水平方向的移動(dòng),又可以顯示豎直方向的移動(dòng)。 1. 顯示字符的左右移動(dòng) (1)列 掃描方式左移動(dòng):列向組字顯示字符水平方向的移動(dòng)(左滾動(dòng)) 在這里有兩個(gè)方法: 方法 1:延長數(shù)組法。將原來字符點(diǎn)陣數(shù)組的 16 個(gè)數(shù)據(jù)重復(fù)一遍延長,點(diǎn)陣數(shù)組的數(shù)據(jù)個(gè)數(shù)為 32 個(gè)。每掃描儀幀取 8 個(gè)數(shù)據(jù)顯示,下一幀取數(shù)要在數(shù)組中后移一個(gè)數(shù)取數(shù)。循環(huán)一遍掃 16 幀??梢约傧胗袃蓧K 16西安理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 13 16 的點(diǎn)陣模塊(共 32 幀)水平平行排列,用一個(gè)恰好能罩住 8 列點(diǎn)陣的中空方框去罩這個(gè)點(diǎn)陣,第 1(第 1 幀)罩住最左邊 數(shù)起第一列開始的16 列,就掃描顯示這 16 列;第 2 次(第 2 幀)使方框右移一列,罩住做左邊數(shù)起第 2 列開始的 16 列,就掃描顯示這 16 列;;這樣每掃描完一幀使方框右移一列,最后第 16 次(第 16 幀)時(shí),罩住左邊數(shù)起的第 16 列開始的 16 列,就掃描顯示這 16 列。如此完成 16 幀畫面的掃描顯示,也就完成了整個(gè)一次移動(dòng)循環(huán)掃描、之后反復(fù)循環(huán),即可呈現(xiàn)顯示字符沿水平向左移動(dòng)的圖像,如 圖 211 所示。 圖 211 方框圖法左右移動(dòng)示意圖 因?yàn)槭橇邢蚪M字(列掃描方式,點(diǎn)陣數(shù)據(jù)為行碼,上邊為地位下面為高位),希 望顯示移動(dòng)的一個(gè)字符,第 1 次掃描從行碼的點(diǎn)陣數(shù)組中取第 1~16 個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)于這 8 個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制第 1~16 列。掃描完前 16 個(gè)數(shù)據(jù)之后,第 2 次掃描從點(diǎn)陣數(shù)組中取第 2~14 個(gè)數(shù)據(jù)(第 17 個(gè)數(shù)據(jù)與地 1 個(gè)數(shù)據(jù)同),送行碼輸出口,對(duì)應(yīng)于這 16 個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,仍分別控制掃地 1~16 列。第 3 次掃描從點(diǎn)陣數(shù)組中取第 3~18 個(gè)數(shù)據(jù)(第 18 個(gè)數(shù)據(jù)碼與地 2 個(gè)數(shù)據(jù)碼相同)掃描;如此實(shí)現(xiàn)字符向左移動(dòng)。 基于 AVR 單片機(jī)的點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)與仿真 14 以上完成一個(gè)圖形移動(dòng)的方法,也可以看成是移動(dòng) 16 個(gè)不同的字形。 如 圖 212 所示,首先掃描第一個(gè)字型,同樣是 16 行, 16 次掃描,16 次顯示;完成一個(gè)字型的掃描以后,再掃描第二個(gè)字型;完成第二個(gè)字型的掃描之后,再掃描第三個(gè)字型 依 此類推,即可產(chǎn)生該文 字的左移的感覺 。 圖 212 字形法左右移動(dòng)示意圖 假設(shè) 如果原本某個(gè)漢字的字型(第一個(gè)字型),其編碼為 : 00H,10H,20H,30H,40H,50H,60H,70H, 80H,90H,0A0H,0B0H,0C0H,0D0H,0E0H,0F0H; 第二個(gè)字型的編碼為: 10H,20H,30H,40H,50H,60H,70H,80H, 90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H, 00H。 也就是把第一個(gè)字型的編碼中,第 1 行顯示數(shù)據(jù),變?yōu)榈?2 行顯示數(shù)據(jù);第 2 行顯示數(shù)據(jù),變成第 3 行顯示數(shù)據(jù);第 3 行顯示數(shù)據(jù),變成第 4 行顯示數(shù)據(jù);第 4 行顯示數(shù)據(jù),變成第 5 行顯示數(shù)據(jù), 以此類推。 當(dāng)?shù)谝粋€(gè)字型掃描顯示完成之后,就進(jìn)行這樣的動(dòng)作調(diào)整,以產(chǎn)生第二個(gè)字型的編碼。同樣的,當(dāng)?shù)诙€(gè)字型掃描完成之后,就進(jìn)行這樣西安理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 15 的調(diào)整動(dòng)作,以產(chǎn)生第三個(gè)字型的編碼。這個(gè)調(diào)整動(dòng)作時(shí)先將 16 個(gè)編碼根據(jù)序填 入存儲(chǔ)器,例如第 1 行編碼存入 20H,第二行編碼存入 21H, 要進(jìn)行左移調(diào)整時(shí),則先將 20H地址的數(shù)據(jù)轉(zhuǎn)移到 36H 地址,再將 21H地址的數(shù)據(jù)轉(zhuǎn)移到 20H 地址,將 22H 地址的數(shù)據(jù)轉(zhuǎn)移到 21H 地址,將 23H地址的數(shù)據(jù)轉(zhuǎn)移到 22H 地址,將 24H 地址的數(shù)據(jù)轉(zhuǎn)移到 23H 地址,將25H 地址的數(shù)據(jù)轉(zhuǎn)移到 24H 地址,將 26H 地址的數(shù)據(jù)轉(zhuǎn)移到 25H 地址,將 27H 地址的數(shù)據(jù)轉(zhuǎn)移到 26H 地址,將 28H 地址的數(shù)據(jù)轉(zhuǎn)移到 27H 地址 。 方法 2:數(shù)組數(shù)據(jù)“循環(huán)左移法”(適合用 C 語言編寫,在此僅作了解)。注意,不是把二進(jìn)制數(shù)據(jù)按位循環(huán)左移,而 是把數(shù)組中的數(shù)據(jù)按其在數(shù)組中的位置循環(huán)左移。具體的方法入下。 原字符點(diǎn)陣數(shù)組中的 16 個(gè)數(shù)據(jù)不延長,但下一幀取的 16 個(gè)數(shù)據(jù),是把上一幀的 16 個(gè)數(shù)據(jù)的位置(先后順序)“循環(huán)左移”一次,即原來第 2 個(gè)移到第 1 個(gè),原來第 3 個(gè)移到第 2 個(gè) 原來第 1 個(gè)移到第 16個(gè)。實(shí)現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法有:第一,遍一個(gè)“數(shù)組數(shù)據(jù)循環(huán)左移子程序”,該子程序每執(zhí)行一次可把數(shù)組中的額數(shù)據(jù)循環(huán)左移一次,主程序中先調(diào)用一次該子程序,時(shí)數(shù)組中的數(shù)據(jù)循環(huán)左移這一次,然后再從數(shù)組中取數(shù)據(jù)顯示。當(dāng)數(shù)組中的額數(shù)據(jù)個(gè)數(shù)較多時(shí),片內(nèi) RAM 將不夠大, 必須將數(shù)組定義在片外 RAM 中。第二,不用子程序,而是用變量判斷控制實(shí)現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。 (2) 行 掃描方式左移:行向組字顯示字符水平方向的左移。如果是行向組字(行掃描方式,點(diǎn)陣數(shù)據(jù)為列碼,左邊為敵位右邊為高位),希望顯示向左移動(dòng)的一個(gè)字符,第 1 次掃描從列碼的點(diǎn)陣數(shù)組中取第 1~16個(gè)數(shù)據(jù),送到列碼輸出口,對(duì)應(yīng)的 8 個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,分別控制掃描第 1~16 行。掃描完成這 16 個(gè)數(shù)據(jù)之后,第 2 次掃描的第 16 個(gè)數(shù)據(jù),應(yīng)將原來第 1 次掃描的 16 列碼每一個(gè)都循環(huán)右移一位(如果是顯示右移則應(yīng)循環(huán)左移),再進(jìn) 行掃描。如此,每進(jìn)行下一次掃基于 AVR 單片機(jī)的點(diǎn)陣屏系統(tǒng)的設(shè)計(jì)與仿真 16 描,把上一次掃描的 16 個(gè)列碼都循環(huán)右移一位,再進(jìn)行掃描。 數(shù)據(jù)的右移與數(shù)據(jù)的左移相似,只是取碼的順序相反而已,在此就不再贅述。 2. 數(shù)據(jù)的上下移動(dòng) (1)列掃描方式向上移動(dòng) 列向組字顯示字符豎直方向的移動(dòng)。若是列向組字,希望顯示向上移動(dòng)一個(gè)字符,第 1 次掃描從行碼的點(diǎn)陣數(shù)組中取第 1~16 個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)于這 16 個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制掃描第 1~16 列。由于是列向組字(上高下低),掃描完成這 16 個(gè)數(shù)據(jù)后,第 2 次掃描的 16 個(gè)數(shù)據(jù),應(yīng)將原來的第 1 次掃描的 16 個(gè) 行碼每一個(gè)都循環(huán)右移一位,使顯示的點(diǎn)都上移一行(如果是顯示向下滾動(dòng)則應(yīng)循環(huán)左移),再進(jìn)行掃描。如此,每進(jìn)行下一次的掃描,把上一次的 16 個(gè)行碼都循環(huán)右移一位,再進(jìn)行掃描就實(shí)現(xiàn)了數(shù)據(jù)的向上移動(dòng)。 也可以用字型的方法容易理解,以下的 16 16 的 LED 顯示一個(gè)字是 8 個(gè)字型,首先掃描的而是第一個(gè)字型,同樣是 16 行, 16 列掃描, 16次顯示;完成一個(gè)字型后, 再掃描第二個(gè)字型;完成第二個(gè)字型后,再掃描第三個(gè)字型, 以此類推,即可產(chǎn)生該文字向上移動(dòng)的感覺 當(dāng) 把第一個(gè)字型編碼中,每行顯示的數(shù)據(jù)都右移一位, 以產(chǎn)生第二個(gè)字型編碼 ,即 可產(chǎn)生字符向上滾動(dòng)的感覺。 當(dāng)?shù)谝粋€(gè)字符掃描完成后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第二個(gè)字型的編碼。同樣的,當(dāng)?shù)诙€(gè)字型完成之后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第三個(gè)字型的編碼。調(diào)整的動(dòng)作是先將 8 個(gè)編碼根據(jù)序填入儲(chǔ)存器,例如第 1 行編碼存入 20 地址,第 2 行編碼存入 21 地址, 要進(jìn)行上移調(diào)整時(shí),則從 20 地址數(shù)據(jù)開始,每筆數(shù)據(jù)都右移一位即可。 下圖 213 僅以字型移動(dòng)的方法畫圖。 西安理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 17 圖 213 字形法上下移動(dòng)示意圖 (2)行掃描方式上下移動(dòng) 行向組字顯示字符豎直方向的移動(dòng) 方法 1:延長數(shù)組法。如果是行向 組字,希望顯示向上移動(dòng)的一個(gè)字符,第 1 次掃描從列碼的點(diǎn)陣數(shù)組中取第 1~16 個(gè)數(shù)據(jù),送列碼輸出口,對(duì)應(yīng)于這 8 個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,分別控制掃描第 1~16行。第 2 次掃描從點(diǎn)陣數(shù)組中取第 2~17 個(gè)額數(shù)據(jù)(第 17 個(gè)數(shù)據(jù)與地 1個(gè)數(shù)據(jù)同),分別送列碼輸出口,對(duì)應(yīng)于這 16 個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,仍分別控制地 1~16 行。第 3 次掃描從點(diǎn)陣數(shù)組中取第 3~18個(gè)數(shù)據(jù)(第 18 個(gè)數(shù)據(jù)與地 2 個(gè)數(shù)據(jù)同)掃描;如此就實(shí)現(xiàn)了字符的向上移動(dòng)。 方法 2:數(shù)組數(shù)據(jù)“循環(huán)左移法”。實(shí)現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法與上類似 。也有:用數(shù)組數(shù)據(jù)循環(huán)左移子程序;不用子程序,而是用變量判斷控制實(shí)現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。 L
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1