新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 串口通信之點(diǎn)陣左移

串口通信之點(diǎn)陣左移

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
(*注:圖中各595的pin10腳相連接后與+Vcc相連。)
驅(qū)動(dòng)程序可根據(jù)本人的16*16點(diǎn)陣程序改編,另外還有一個(gè)本人對(duì)程序中顯示數(shù)據(jù)生成函數(shù)的解釋資料一并錄于此處,也歡迎切磋。
語(yǔ)句temp=(h1<>(8-tempcol));的設(shè)計(jì)原理:
下面我們以程序進(jìn)行左移3位的運(yùn)算為例解釋一下語(yǔ)句temp=(h1<>(8-tempcol));的設(shè)計(jì)原理;我們知道,在8位二進(jìn)制數(shù)據(jù)進(jìn)行運(yùn)算時(shí),若要將一個(gè)3位的二進(jìn)制數(shù)據(jù)置入另一個(gè)8位二進(jìn)制數(shù)據(jù)后3位的空位中,(注:這里所說(shuō)的數(shù)據(jù)置入,是指當(dāng)一個(gè)顯示數(shù)據(jù)顯示后,這個(gè)數(shù)據(jù)經(jīng)左移以后變成了下一個(gè)要顯示的新數(shù)據(jù),而這個(gè)新的數(shù)據(jù)實(shí)際上就是由已顯示數(shù)據(jù)的前7位與后一個(gè)數(shù)據(jù)的前1位數(shù)據(jù)組合形成的,也就相當(dāng)與將后面的數(shù)據(jù)置入了前一個(gè)數(shù)據(jù)。)可以采用的方法不外乎有兩個(gè),一個(gè)是加入YYYYY000+00000XXX=YYYYYXXX。另一個(gè)方法是按位或,而后一個(gè)方法更加直觀方便。本語(yǔ)句就是采用了按位或的方法,詳解如下:設(shè)寄存器D中有數(shù)據(jù)D=0X33=00110011其左移3位后D中的數(shù)據(jù)改變?yōu)?0011000后置入DY(數(shù)據(jù)移出后寄存器相應(yīng)位自動(dòng)清零);設(shè)寄存器C中有數(shù)據(jù)C=0XA6=10100110其右移8-3=5位后C中的數(shù)據(jù)改變?yōu)?0000101后置入CY。 DY|CY運(yùn)算后,結(jié)果為10011101其結(jié)果不難看出,相當(dāng)于將C(0XA6)中的前3位數(shù)據(jù)左移進(jìn)入了DY的后3位中。這一算式的設(shè)計(jì),是為了適應(yīng)我們的硬件系統(tǒng),解決了一個(gè)8位顯示數(shù)據(jù)由當(dāng)前的8位鎖存輸出芯片(595)進(jìn)入下一片(595)時(shí)能夠保持連貫;因?yàn)槲覀兊挠布到y(tǒng)的組成為8位單片機(jī)通過(guò)級(jí)聯(lián)的8位數(shù)字電路驅(qū)動(dòng)點(diǎn)陣屏,假如我們的硬件無(wú)所不有,那么,我們可以使用16位的系統(tǒng)驅(qū)動(dòng)16列的屏,32位驅(qū)動(dòng)32列,64位驅(qū)動(dòng)64列,128位……。那么我們只要用一句簡(jiǎn)單的移位語(yǔ)句,即可達(dá)到目的,就不必如此費(fèi)周折了。


關(guān)鍵詞: 串口通信點(diǎn)陣左

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉