久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
用Excel制作顯示圖片的C語言數(shù)組
[打印本頁]
作者:
hushe
時間:
2015-12-22 19:24
標題:
用Excel制作顯示圖片的C語言數(shù)組
用16 x16的LED點陣顯示漢字或圖片時,有時需要用到特定的軟件來處理。但是對于簡單的圖像,可以使用手繪方式繪圖,然后根據(jù)需求,將圖像轉換為C語言的數(shù)組,粘貼在C程序中使用。此時用Excel可以快速實現(xiàn)。以下是實現(xiàn)的效果。
以16*16點陣的漢字為例,基本制作過程如下:
1. 在Excel中,框出一個16*16的區(qū)域,如上圖所示,標示行號和列號。在繪圖區(qū),設置條件格式:如果單元格的數(shù)值等于1,則顯示為粉色底色的數(shù)字。這樣,當填入數(shù)字1時,就能夠突出看到填入的效果。
2. 在標示出的區(qū)域內,用描點的方式繪制所需圖形。需要顯示數(shù)據(jù)的地方填入1,其余地方保持空白。
3. 因為我所使用的點陣是16行 x 16列的,是以逐列的方式進行掃描的。因此取數(shù)據(jù)時,從每一列的第16行起,逐步取數(shù)。但因為使用的是串行發(fā)送方式,因此需要將每一列分為2個字節(jié),先是下半部分為一個字節(jié),然后再上半部分為另一個字節(jié)。同樣,作為串行顯示方式,最先進入顯示陣列的數(shù)據(jù)是圖像的最右邊一列(Q列)的右下角的半列(Q17:Q10),然后是右上角的半列(Q9:Q2),然后是向左邊面逐列顯示(Q->P->O.....-->C-->B這樣的順序)。以這樣的順序送數(shù)據(jù)到對應列的數(shù)據(jù)寄存器,就可以正確顯示所要的圖像。
下面是十六進制數(shù)據(jù)的形成過程:
1. 每列中,上半列的字節(jié)計算公式為:=DEC2HEX(B9*128+B8*64+B7*32+B6*16+B5*8+B4*4+B3*2+B2)。其中DEC2HEX是將十進制數(shù)轉換為16進制方式的字符串格式的函數(shù)。里面B9*128+B8*64+B7*32+B6*16+B5*8+B4*4+B3*2+B2則是將圖像數(shù)據(jù)轉換為字節(jié)數(shù),最底下一行對應的數(shù)值是128(2的7次方),然后依次對應64,32,。。。,1等。把這個計算的結果,顯示在每一列圖像的下方。這個可以在把第一列的公式填寫完成后,通過拖動的方式將全部16列填滿即可。
對應于下半列,相應公式為=DEC2HEX(B16*128+B15*64+B14*32+B13*16+B12*8+B11*4+B10*2+B9)。
2. 將16進制字符串顯示格式標準化。因為結果要用在C語言中,因此需要將默認的格式轉換為C語言的默認格式 0xNN的形式。如果不要求美觀,可以直接在上面顯示的結果前面加 “0x”即可。為了美觀,則需要判斷上面的結果是1位長度還是2位長度。對于1位長度,則在其前面增加“0x0”,否則只增加"0x"即可。對應于每個單元格,其公式為:=IF(LEN(B18)=1,"0x0"&B18,"0x"&B18)。其中IF為條件語句,條件為LEN(B18) = 1, 如果條件成立,則增加"0x0" (0x0 & B18),否則只是增加"0x" (0x & B18)。
對于其他行列,拖動即可獲取所有字節(jié)的C語言標準化16進制字符串。
3. 將整個數(shù)據(jù)合成為一個C語言語句,可以通過復制粘貼的形式,粘貼到C語言源程序中。 根據(jù)前面一部分第3點說明的字節(jié)順序,可以逆序的方式,將上面的32個字節(jié)合并成一個C語言數(shù)組定義語句。不過這里面沒有復雜的技巧,只是很繁瑣的重復工作。做法如下:
="unsigned char code HANZI[] = {" &CHAR(10) & CHAR(13) &
Q21&","&Q20&","&P21&","&P20&","&O21&","&O20&","&N21&","&N20&","&CHAR(10)&CHAR(13)
&M21&","&M20&","&L21&","&L20&","&K21&","&K20&","&J21&","&J20&","&CHAR(10)&CHAR(13)
&I21&","&I20&","&H21&","&H20&","&G21&","&G20&","&F21&","&F20&","&CHAR(10)&CHAR(13)
&E21&","&E20&","&D21&","&D20&","&C21&","&C20&","&B21&","&B20&"," & CHAR(10) & CHAR(13)
& "};"
以上的漢字點陣在Proteus中仿真電路如下。其中MCU為AT89C52, 串口芯片為74HC595,行列各2片串聯(lián)。左邊兩片提供列掃描地址,后面兩片提供行顯示數(shù)據(jù)。顯示點陣為4個8*8點陣(Proteus中光電元件MATRIX-8X8-RED將所有管腳移動到同一側后形成的新元件,便于組成并列點陣)組成的一個16*16點陣(上面2個正放,下面2個X軸對稱倒放)。因此在顯示字節(jié)計算時,公式略有不同。具體公式為:=DEC2HEX(B11*128+B12*64+B13*32+B14*16+B15*8+B16*4+B17*2+B18)。其余和上面相同。
具體運行效果如下:
作者:
somlye
時間:
2016-3-14 20:53
做出來了,很不錯,謝謝!
作者:
wcs1668
時間:
2019-8-30 16:56
這個想法好 可以一試
作者:
hhh402
時間:
2019-9-30 10:11
我希望是反過來的,輸入數(shù)組數(shù)據(jù),用Excel顯示成文字或圖片。
作者:
zmc419
時間:
2020-2-5 15:22
特別適合行列不等的點陣,比如8X16
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
不卡免费视频
|
国产香蕉在线
|
成人免费看片在线观看
|
欧美乱强伦
|
中文字幕在线日韩
|
在线日韩欧美
|
欧美成人精品激情在线观看
|
亚洲精品视频在线播放
|
99亚洲精品
|
国产精品国产三级国产
|
日韩精品久久久久久
|
中文字幕麻豆
|
伊人色播
|
天天视频黄
|
久久视频在线免费观看
|
美日韩一区二区三区
|
三级网站在线
|
天堂va蜜桃一区二区三区
|
亚洲 欧美 综合
|
欧美 日韩 国产 在线
|
亚洲视频在线免费观看
|
欧美日韩一区二区在线
|
神马午夜视频
|
亚洲一区二区免费
|
国产精品美女久久久久av爽
|
免费中文字幕
|
欧美视频免费在线观看
|
亚洲日本天堂
|
黄色一级视频网站
|
国产中文字幕在线观看
|
久久精品久久久久
|
国产一级特黄
|
午夜激情小视频
|
69福利视频
|
亚洲www啪成人一区二区麻豆
|
日韩久久综合
|
国产黄色片视频
|
www.久久久久久
|
亚洲狠狠干
|
日韩av在线免费观看
|
三级黄网站
|