Ⅰ 單片機中,用點陣怎麼實現數字的輸出,其程序怎麼編寫
點陣不管是顯示漢字還是數字,一般都是將要顯示的漢字或數字用字模提取軟體轉換出一個數組的內容,然後將這個數組復制到單片機的程序中,以下給你一些C語言程序參考,這個是16*16的點陣,還有就是提醒一下你,你用字模提取軟體時要看清楚取碼是從哪個方向開始的,然後寫程序時也要對應:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i,k;
void delay(uint i)
{
while(i--);
}
//深
uchar code shen[]=
{0xFF,0xFF,0x9F,0x6F,0xAE,0x67,0xBB,0x6F,
0xB7,0x5F,0xAF,0x3F,0xB8,0x00,0xAF,0x3F,
0xB7,0x5F,0xBB,0x6F,0x9F,0x77,0xEE,0xF7,
0xCF,0x7F,0xD9,0x80,0xBB,0xDF,0xF7,0xDF};
//圳
uchar code zhen[]=
{0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,
0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,
0x80,0x0F,0xFB,0xF3,0xF3,0xDD,0xFB,0xDF,
0x00,0x0F,0xFB,0xEF,0xFB,0xE7,0xFB,0xEF};
//從左到右顯示
void display1(uchar *P)
{
uint time=1000;//750
for(k=32;k>0;k=k-2)
{
P2=P[k-2];
P1=P[k-1];
delay(time);
}
P2=0xff;P1=0xff;
}
//從右到左顯示
void display2(uchar *P)
{
uint time=1000;//750
for(k=0;k<32;k=k+2)
{
P2=P[k];
P1=P[k+1];
delay(time);
}
P2=0xff;P1=0xff;
}
void main()
{
while(1)
{
display1(shen); //深
delay(2000);
display1(zhen); //圳
delay(2000);
}
}
希望能幫助到你,那個字模提取軟體很多,好像只有幾百K,很容易下載的,如果下載不了,我發給你也可以。
Ⅱ 單片機匯編語言8乘8點陣從上到下顯示修改成從左到右顯示
對於點陣顯示來說,是從上到下顯示還是從左到右顯示,還得看待顯示的字元的點陣數據是如何排列的;
1)如採用從左到右從上到下的排列結構形式,那麼顯示方式就如
則行(PC口)輸出8位數據,而列(PA口)則僅輸出與要顯示行對應的位數據;
如果字元的點陣數據是第一種結構的,想要採用第二種顯示形式,就需要先把字元的點陣數據進行數據格式的轉換。