版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
一、學習目標1.了解點陣的硬件結(jié)構(gòu)。2.掌握單片機驅(qū)動8*8點陣方法。3.掌握單片機驅(qū)動16*16點陣方法。4.掌握點陣的動態(tài)顯示方法。5.掌握點陣顯示內(nèi)容動態(tài)更新方法。二、學習任務任務一8*8點陣的使用;任務二16*16點陣的使用;任務三16*64點陣的使用。三、任務分解任務一8*8點陣的使用【任務描述】隨著信息產(chǎn)業(yè)的高速發(fā)展,LED顯示屏作為信息傳播的一種重要手段成為現(xiàn)代信息化社會的一個閃亮標志。近年LED顯示屏已廣泛應用于室內(nèi)、外需要進行服務內(nèi)容和服務宗旨宣傳的公眾場所如銀行、營業(yè)部、車站、機場、港口、體育場館等信息的發(fā)布,政府機關政策、政令,各類市場行情信息的發(fā)部和宣傳等。漢字顯示方式是先根據(jù)所需要的漢字提取漢字點陣,將點陣文件存入ROM,形成新的漢字編碼。而在使用時則需要先根據(jù)新的漢字編碼組成語言,再由MCU根據(jù)新編碼提取相應的點陣進行漢字顯示。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展?!救蝿辗治觥繜o論是單個發(fā)光二極管還是數(shù)碼管,都不能顯示字符漢字和一些特殊字符,更不能顯示復雜的圖像信息,這主要是因為它們沒有足夠的信息顯示單位。LED點陣顯示器是把很多的LED按矩陣方式排列在一起,通過對各個LED的亮滅控制來完成各種字符或圖形的顯示?!鞠嚓P知識】一、8X8點陣簡介1.點陣結(jié)構(gòu)(以8*8為例)8X8點陣共由64個發(fā)光二極管按照8行8列排列成矩陣形式,且每個發(fā)光二極管是放置在行線和列線的交叉點上(類似矩陣式按鍵)引腳:16根(8行8列),字母為行引腳,數(shù)字為列引腳。一般需要自己用萬用表檢測雙色點陣;24根(16行8列)(1).共陰(對行而言)例如型號為JM-M1088A2.點陣分類(2).共陽(對行而言)例如型號為JM-M1088B有時也不做區(qū)分,旋轉(zhuǎn)即可3.點陣原理
以共陽為例,當對應的某一行置1電平,某一列置0電平,則相應的二極管就亮;如要將第一個點點亮,則9腳接高電平13腳接低電平,則第一個點就亮了;如果要將第一行點亮,則第9腳要接高電平,而(13、3、4、10、6、11、15、16)這些引腳接低電平,那么第一行就會點亮;如要將第一列點亮,則第13腳接低電平,而(9、14、8、12、1、7、2、5)接高電平,那么第一列就會點亮。共陰呢?
4.顯示方式點陣LED一般采用掃描式顯示,實際運用分為三種方式:(1)點掃描(逐點顯示);(2)行掃描(逐行顯示);(3)列掃描(逐列顯示);若使用第一種方式,其掃描頻率必須大于16×64=1024Hz,周期小于1ms即可。若使用第二和第三種方式,則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺暫留要求。此外一次驅(qū)動一列或一行(8顆LED)時需外加驅(qū)動電路提高電流,否則LED亮度會不足。5.舉例例:使用一塊8X8的LED點陣來顯示一個心型1.那么如何點亮一個點?首先調(diào)出一個8×8點陣,在點陣的管腳上接上VCC,另一端的管腳就接GND,運行仿真,看看點陣是不是能亮,亮了哪幾個點,如果不亮就調(diào)換VCC和GND,這樣測出點陣的行和列,共陰或共陽等引腳信息。
從圖3判別出上面為行,下面為列,為共陰點陣。要想顯示如圖所示的亮點:則上面對應的行為低電平,對應的列為高電平(此時8個列值00100000,和第二行8個點亮滅情況一致)。所以我們可以通過某一行8個等的亮滅狀態(tài)從而得到顯示時所需的列值2.采用動態(tài)顯示(行掃描法,逐行顯示)以共陰點陣為例先顯示第一行,8個燈亮滅情況為00100100,則此時需送進去的列值也為00100100(即24H),延時;再第二行,8個燈亮滅情況為01011010,則此時需送進去的列值為01011010(5AH),再延時;依次類推,第三行:42H;第四行:42H;第五行:42H;第六行:24H;第七行:18H;第八行:00H總結(jié):采用共陰點陣,行掃描法顯示,8行對應的列值分別為:24H,5AH,42H,42H,42H,24H,18H,00H(該值也叫做編碼)3.如何得到其他字符的編碼?(1).自己在紙上畫(2).利用軟件生成(PCtoLCD2002,字模生成軟件)對應的程序代碼為:#include<reg52.h>charcodetable[]={0x24,0x5a,0x42,0x42,0x42,0x24,0x18,0x00};//"心"形編碼voiddelay(intz)//延時函數(shù){intx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}voidmain(){intnum;while(1)//循環(huán)顯示
{for(num=0;num<8;num++)//8行掃描P3行選,P0列選
{P3=num;//行選
P0=table[num];//列選
delay(5);//延時
}}}【任務實施】#include<reg52.h>charcodetable[]={0x00,0x08,0x08,0x7E,0x18,0x14,0x24,0x43};//"大"字編碼voiddelay(intz)//延時函數(shù){intx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}#include<reg52.h>charcodetable[]={0x00,0x08,0x08,0x7E,0x18,0x14,0x24,0x43};//"大"字編碼voiddelay(intz)//延時函數(shù){intx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}voidmain(){intnum;while(1)//循環(huán)顯示
{for(num=0;num<8;num++)//8行掃描P3行選,P2列選
{P3=num;//行選
P2=table[num];//列選
delay(5);//延時
}}}注意:由于此時如果用字模軟件生成字模的話,按下圖進行設置:【進階提高】接下來,我們在前面所介紹知識的基礎上,讓8*8點陣輪流顯示0-9,看看如何實現(xiàn)呢?字的滾動,實際上就是列取表的偏移量變化。例如,從右往左滾動,第一幅畫面就是,前n列不亮,最后一列顯示漢字最左邊一列,第二幅畫面就是,前n-1列不亮,漢字最左邊2列亮。比如,一個8*8點陣,一個漢字8個模,偏移量0~7是一副畫面,1~8是一副畫面,2~9是一副畫面。點陣滾動顯示對應的程序代碼如下:#include<reg52.h>unsignedcharcodedigittab[88]={//行選通0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,//00x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00,/*1*/0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00,/*2*/0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00,/*3*/0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,/*4*/0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00,/*5*/0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00,/*6*/0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00,/*7*/0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00,/*8*/0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00,/*9*/0x00,0x00,0x00,0x00//讓9繼續(xù)滾動完};unsignedcharcodetab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};//列選通voiddelay(){unsignedintx,y;for(x=2;x>0;x--)for(y=123;y>0;y--);}voidmain(){unsignedchari=0,x=0,tcount=0;while(1){for(x=0;x<8;x++)//掃描顯示出當前字樣{P0=tab[x];P2=digittab[x+i];delay();}if(++tcount>20)//掃描20次{tcount=0;if(++i>=80)i=0;}}}任務二16*16點陣的使用【任務描述】在16*16點陣上先顯示一個漢字,然后實現(xiàn)動態(tài)顯示“歡迎光臨!”【任務分析】由于Proteus中沒有16*16點陣,需要自己制作(網(wǎng)上有制作好的16*16點陣元件,大家可以自行搜索下載),制作教程查閱本任務相關知識。先實現(xiàn)靜態(tài)顯示然后在實現(xiàn)動態(tài)顯示?!鞠嚓P知識】一、16*16點陣的制作首先打開Proteus,輸入MATRIX-8×8,放置一8×8點陣,然后選中該點陣執(zhí)行順時針旋轉(zhuǎn)90度。接著選中該點陣,右鍵單擊,執(zhí)行copytoCliboard,復制4份如圖:引腳上添加標簽,如圖
接下來,可以把四個推擠,形成一個16*16點陣二、相關芯片介紹1.74HC595的使用74HC595具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。具有移位寄存器和存儲器有相互獨立的時鐘,其引腳如圖14腳:SI,串行數(shù)據(jù)輸入引腳。
英文全稱是:Serialdatainput,顧名思義,就是串行數(shù)據(jù)輸入口。595的數(shù)據(jù)來源只有這一個口,一次只能輸入一個位,那么連續(xù)輸入8次,就可以積攢為一個字節(jié)了。13腳:OE,
輸出使能控制腳,它是低電才使能輸出,所以接GND12腳:RCK,輸出存儲器鎖存時鐘線。上升沿時移位寄存器的數(shù)據(jù)進入存儲寄存器(相當于通過引腳QA-QH輸出數(shù)據(jù)),下降沿時存儲寄存器數(shù)據(jù)不變。11腳:SCK,移位寄存器時鐘引腳,上升沿時,移位寄存器中的bit數(shù)據(jù)整體后移,并接受新的bit,上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)按QA-->QB-->QC-->...-->QH移動;下降沿移位寄存器數(shù)據(jù)不變。10腳:SCLR,低電平時,清空移位寄存器中已有的bit數(shù)據(jù),一般不用,接高電平即可。9腳:串行數(shù)據(jù)出口引腳。當移位寄存器中的數(shù)據(jù)多于8bit時,會把已有的bit“擠出去”,就是從這里出去的。用于595的級聯(lián)。Qx:并行輸出引腳賽馬其實就兩步第一步:首先8匹馬有“側(cè)門”一匹一匹進入,待全部進入后,第二步:一聲槍響“大門”打開,8匹馬聞聲出欄。
我們將每一匹馬比作電腦里面的二進制位,公馬為陽(1),母馬為陰(0)。每當一匹馬要從側(cè)門進入馬欄時,需打開側(cè)門,這里的側(cè)門鎖就是“SCLR(10號)引腳”為1開門,為0關門,每一匹馬進欄都必須先開門然后關門,進入前開,進入后關,循環(huán)八次開關門,八匹馬就都進欄了,至于這個字節(jié)的值就看公母的排序了。當八匹馬都進欄后,我們就立刻打開”大門“這里的大門鎖就是“RCK(12號)引腳”為1開門,為0關門,當然打開后八匹馬都跑出去了,就要立刻關上門了。2.74HC154簡介只要控制端G1、G2任意一個為高電平,A、B、C、D任意電平輸入都無效。G1、G2必須都為低電平才能操作芯片?!救蝿諏嵤砍绦虼a:#include<reg52.h>sbitSH_CP=P2^0;sbitDS=P2^1;sbitST_CP=P2^2;unsignedcharcodedisplay[]={0x10,0x04,0x60,0x04,0x02,0x7E,0x8C,0x01,0x00,0x00,0x88,0x1F,0x88,0x08,0xFF,0x08,0x88,0x08,0x88,0x9F,0x00,0x60,0xFE,0x1F,0x22,0x42,0x22,0x82,0xFE,0x7F,0x00,0x00,/*"湖",0*/};voidhc595_senddat(unsignedchardat){ unsignedchari; for(i=0;i<8;i++) { DS=dat&0x80; SH_CP=1; SH_CP=0; dat<<=1; } }main(){ unsignedchari; SH_CP=0; ST_CP=0; while(1) { for(i=0;i<16;i++) { hc595_senddat(display[2*i+1]); hc595_senddat(display[2*i]); P3=i; ST_CP=1; ST_CP=0; } }}【進階提高】16*16點陣中滾動顯示“歡迎光臨!”對應的程序代碼如下:#include<reg52.h>sbitSH_CP=P2^0;sbitDS=P2^1;sbitST_CP=P2^2; unsignedcharcodedisplay[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01,0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30,0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10,0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00,/*歡*/0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F,0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41,0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42,0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00,/*迎*/0x40,0x00,0x40,0x80,0x42,0x40,0x44,0x20,0x58,0x18,0xC0,0x07,0x40,0x00,0x7F,0x00,0x40,0x00,0xC0,0x3F,0x50,0x40,0x48,0x40,0x46,0x40,0x64,0x40,0x40,0x70,0x00,0x00,/*光*/0x00,0x00,0xFC,0x1F,0x00,0x00,0xFF,0xFF,0x40,0x00,0x20,0xFF,0x10,0x41,0x0C,0x41,0x2B,0x41,0x48,0x7F,0xC8,0x41,0x08,0x41,0x08,0x41,0x8C,0xFF,0x08,0x01,0x00,0x00,/*臨*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B,0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*!*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};voiddelay(unsignedxms){ unsignedi,j; for(i=0;i<xms;i++) for(j=0;j<120;j++);}voidhc595_senddat(unsignedchardat){ unsignedchari; for(i=0;i<8;i++) { DS=dat&0x80; SH_CP=1; SH_CP=0; dat<<=1; } }voidhc595_out(){ ST_CP=0; ST_CP=1; ST_CP=0;}voidclear_out(){ unsignedchari; SH_CP=0; for(i=0;i<16;i++) { hc595_senddat(display[2*i+1]); hc595_senddat(display[2*i]); P3=i; hc595_out();}}main(){ unsignedchari,j; unsignedintk=2; SH_CP=0; //ST_CP=0; while(1) {for(j=0;j<20;j++){ for(i=0;i<16;i++) { hc595_senddat(display[2*i+1+k]); hc595_senddat(display[2*i+k]); P3=i; hc595_out(); delay(3); }clear_out(); k+=2; if(k==288)k=0; } }}任務三16*64點陣的使用【任務描述】在16*64點陣上滾動顯示“眾創(chuàng)咖啡歡迎您!”,并實現(xiàn)串口對其顯示內(nèi)容動態(tài)更新?!救蝿辗治觥坷^續(xù)熟悉74HC595的級聯(lián)使用,同時使用PC與單片機的通信方法,特別是十六進數(shù)的發(fā)送方法?!鞠嚓P知識】一、51單片機數(shù)組的定義方法(code與data的作用)數(shù)組前不加“code”或“data”,則默認將數(shù)組存放在程序存儲器中;code指定數(shù)據(jù)是存儲在代碼區(qū),數(shù)據(jù)是在編程的時候跟代碼一起寫入代碼存儲器,運行過程中不能改變;xdata指定數(shù)據(jù)是存儲在外部數(shù)據(jù)存儲器了;data指定數(shù)據(jù)存儲在內(nèi)部低128字節(jié)數(shù)據(jù)存儲器里,如果變量不指定存儲位置,默認就是data型,這部分存儲器尋址速度最快;idata指定數(shù)據(jù)存儲在內(nèi)部低256字節(jié)數(shù)據(jù)存儲器里,但51只有128字節(jié)內(nèi)部RAM,52才有256字節(jié);pdata指定數(shù)據(jù)存儲在外部低256字節(jié)數(shù)據(jù)存儲器里,這時候?qū)ぶ酚?位寄存器R0和R1,而不用16位的DPTR,尋址速度比xdata快。單片機C語言unsignedcharcodetable[]code是什么作用?code的作用是告訴單片機,我定義的數(shù)據(jù)要放在ROM(程序存儲區(qū))里面,寫入后就不能再更改,其實是相當與匯編里面的尋址MOVC(好像是),因為C語言中沒辦法詳細描述存入的是ROM還是RAM(寄存器),所以在軟件中添加了這一個語句起到代替匯編指令的作用,對應的還有data是存入RAM的意思。程序可以簡單的分為code(程序)區(qū),和data(數(shù)據(jù))區(qū),code區(qū)在運行的時候是不可以更改的,data區(qū)放全局變量和臨時變量,是要不斷的改變的,cpu從code區(qū)讀取指令,對data區(qū)的數(shù)據(jù)進行運算處理,因此code區(qū)存儲在什么介質(zhì)上并不重要,像以前的計算機程序存儲在卡片上,code區(qū)也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是運行速度要慢很多,主要讀flash比讀ram要費時間),因此一般的做法是要將程序放到flash里面,然后load到ram里面運行的;DATA區(qū)就沒有什么選擇了,肯定要放在RAM里面,放到rom里面改動不了。二、用Proteus仿真C51時用到xdata時的問題在用Proteus仿真做一個程序,但是51的內(nèi)存資源太過稀有,使用到較大的數(shù)組的時候資源很快就耗盡了,這時需要用到xdata大模式下編譯。然而在Proteus下默認xdata是必須加上外擴ram才可運行的,需要對Proteus下的單片機的數(shù)據(jù)內(nèi)存位圖設置,如圖:三、生產(chǎn)點陣字模的處理這里介紹另外一個字模軟件,曉奇工作室液晶漢字字提取軟件。取模方式縱向8點下高位,數(shù)據(jù)排列順序選擇低2項,從上到下,從左到右,然后單擊參數(shù)確認。接下來,輸入“眾創(chuàng)咖啡歡迎您!”,得到其字模為:structtypFNT_GB16codeGB_16[]=//數(shù)據(jù)表{"眾",0x00,0x40,0x00,0x20,0x40,0x10,0x40,0x0C,0x20,0x03,0x10,0x04,0x08,0x58,0x07,0x20,0x08,0x10,0x10,0x0C,0x20,0x03,0x60,0x0C,0x20,0x30,0x00,0x60,0x00,0x20,0x00,0x00,"創(chuàng)",0x80,0x00,0x40,0x00,0xF0,0x3F,0x4C,0x40,0x43,0x42,0x44,0x44,0xC8,0x43,0x10,0x70,0x30,0x00,0x00,0x00,0xF8,0x07,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,"咖",0x00,0x00,0xFC,0x1F,0x04,0x88,0xFC,0x4F,0x10,0x30,0xFF,0x0F,0x10,0x20,0x10,0x40,0xF8,0x3F,0x10,0x00,0xF8,0x7F,0x08,0x20,0x08,0x20,0xFC,0x7F,0x08,0x00,0x00,0x00,"啡",0x00,0x00,0xFC,0x1F,0x04,0x08,0x04,0x08,0xFE,0x1F,0x8C,0x10,0x88,0x10,0x88,0x10,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0x88,0x10,0xCC,0x18,0x88,0x10,0x00,0x00,"歡",0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01,0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30,0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10,0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00,"迎",0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F,0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41,0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42,0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00,"您",0x40,0x40,0x20,0x30,0x10,0x00,0xFC,0x77,0x23,0x80,0x10,0x81,0x8C,0x88,0x67,0x92,0x04,0xB4,0xF4,0x83,0x04,0x80,0x44,0xE0,0x94,0x00,0x8C,0x11,0x00,0x60,0x00,0x00,"!",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B,0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};把此數(shù)組內(nèi)的內(nèi)容復制到Notepad++軟件中,進行批量替換處理?!救蝿諏嵤?6*64點陣驅(qū)動電路對應的程序代碼如下:#include<reg52.h>sbitSH_CP=P2^0;sbitDS=P2^1;sbitST_CP=P2^2;unsignedcharcodedisplay[]={0x00,0x40,0x00,0x20,0x40,0x10,0x40,0x0C,0x20,0x03,0x10,0x04,0x08,0x58,0x07,0x20,0x08,0x10,0x10,0x0C,0x20,0x03,0x60,0x0C,0x20,0x30,0x00,0x60,0x00,0x20,0x00,0x00,/*"眾",0*/0x80,0x00,0x40,0x00,0xF0,0x3F,0x4C,0x40,0x43,0x42,0x44,0x44,0xC8,0x43,0x10,0x70,0x30,0x00,0x00,0x00,0xF8,0x07,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,/*"創(chuàng)",1*/0x00,0x00,0xFC,0x1F,0x04,0x88,0xFC,0x4F,0x10,0x30,0xFF,0x0F,0x10,0x20,0x10,0x40,0xF8,0x3F,0x10,0x00,0xF8,0x7F,0x08,0x20,0x08,0x20,0xFC,0x7F,0x08,0x00,0x00,0x00,/*"咖",2*/0x00,0x00,0xFC,0x1F,0x04,0x08,0x04,0x08,0xFE,0x1F,0x8C,0x10,0x88,0x10,0x88,0x10,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0x88,0x10,0xCC,0x18,0x88,0x10,0x00,0x00,/*"啡",3*/};voidhc595_senddat(unsignedchardat){ unsignedchari; for(i=0;i<8;i++) { DS=dat&0x80; SH_CP=1; SH_CP=0; dat<<=1; } }main(){ unsignedchari; charj; SH_CP=0; ST_CP=0; while(1) { for(i=0;i<16;i++) { for(j=3;j>=0;j--) { hc595_senddat(display[32*j+2*i+1]); hc595_senddat(display[32*j+2*i]); } P3=i; ST_CP=1; ST_CP=0; } }}【進階提高】在18*64點陣上滾動顯示“眾創(chuàng)咖啡歡迎您!”,且由串口實現(xiàn)動態(tài)更新。16*64點陣串口動態(tài)更新對應程序代碼如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitSH_CP=P2^0;sbitDS=P2^1;sbitST_CP=P2^2;#defineN256ucharx;charxdatatable[N];uintcnt=0;uintRecStart=0,chaoshi=0,sendone=0;//接收開始標志位ucharsendFlag=0;//未發(fā)送數(shù)據(jù)時ucharreceFlag=0;//未接受到數(shù)據(jù)時uinti=0,j;/*****************************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技創(chuàng)意未來產(chǎn)業(yè)的驅(qū)動力
- 二零二五年度油罐租賃與環(huán)保監(jiān)測服務合同2篇
- 高層管理者如何引領餐廳企業(yè)完善食品安全管理體系
- 濰坊山東濰坊市財政局所屬事業(yè)單位招聘6人筆試歷年參考題庫附帶答案詳解
- 淮南安徽淮南壽縣安豐塘鎮(zhèn)衛(wèi)生院蘇王分院招聘筆試歷年參考題庫附帶答案詳解
- 2025年度文物藝術品儲藏室安全防護合同4篇
- 二零二五年度漁業(yè)水域使用權租賃合同3篇
- 滄州河北滄州市人民醫(yī)院成熟型人才招聘20人筆試歷年參考題庫附帶答案詳解
- 二零二五年度餐廳特色飲品制作技術授權合同3篇
- 2025年蘇人新版八年級地理上冊月考試卷含答案
- 完整版秸稈炭化成型綜合利用項目可行性研究報告
- 油氣行業(yè)人才需求預測-洞察分析
- 《數(shù)據(jù)采集技術》課件-Scrapy 框架的基本操作
- (2024)河南省公務員考試《行測》真題及答案解析
- 圍城讀書分享課件
- 2025年河北省單招語文模擬測試二(原卷版)
- 工作計劃 2025年度醫(yī)院工作計劃
- 高一化學《活潑的金屬單質(zhì)-鈉》分層練習含答案解析
- DB34∕T 4010-2021 水利工程外觀質(zhì)量評定規(guī)程
- 2024年內(nèi)蒙古中考英語試卷五套合卷附答案
- 2024年電工(高級)證考試題庫及答案
評論
0/150
提交評論