微控制器16 16LED點陣怎樣讓文字從上到下顯示出來求程式

時間 2021-11-04 16:41:26

1樓:堂洋公羊從

通過撰寫**來實現。

proteus中只有5×7和8×8等led點陣,並沒有16×16led點陣,而在實際應用中,要良好地顯示乙個漢字,則至少需要16×16點陣。下面我們就首先介紹使用8×8點陣構建16×16點陣的方法,並構建一塊16×16led點陣,用於本例的顯示任務。

首先,從proteus元件庫中找到「matrix-8x8-red」元器件,並將四塊該元器件放入proteus文件區編輯視窗中。此時需要注意,如果該元器件保持初始的位置(沒有轉動方向),我們要首先將其左轉90°,使其水平放置,那麼此時它的左面8個引腳是其行線,右邊8個引腳是其列線(當然,如果你是將右轉,則右邊8個引腳是行線)。

然後我們將四個元器件對應的行線和列線分別進行連線,使每一條行線引腳接一行16個led,列線也相同。並注意要將行線和列線引出一定長度的引腳,以便下面我們使用。

然後使用以下**:

2樓:匿名使用者

include

#include

#include

#include

#include

#define speed 2000

#define time 1800

#define uint unsigned int

#define uchar unsigned char

#define blkn 2 //用於點陣列掃瞄的595的個數

#define total 26 //待顯示的字數

#define conio p1

uchar number;//d=0,

uchar control=0,choose,send;

uchar receive_number=3,send_number=0;

bit busy;

bit smb_rw;

uchar hou=0;

uchar min=0;

uchar sec=0;

uchar sg;//時高位

uchar sd;//時低位

uchar fg;//分高位

uchar fd;//分低位

uchar mg;//秒高位

uchar md;//秒低位

sbit clk=p1^7; //輸出脈衝

sbit scyx=p1^6; //復位

sbit led=p0^7;

sbit pcf8563_scl=p0^5;//時鐘頻率

sbit pcf8563_sda=p0^4;//序列資料傳輸腳

uchar idata dispram[(blkn/2)*32]=;

uchar receive1[3]=;//時、分、秒

uchar send1[4]=;//時、分、秒、器件位址

uchar code bmp[32]=,

/***數字0***/

,/***數字1***/

,/***數字2***/

,/***數字3***/

,/***數字4***/

,/***數字5***/

,/***數字6***/

,/***數字7***/

,/***數字8***/

,/***數字9***/

,//讓

,//思

,//維

,//沸

,//騰

,//起

,//來

,//,

,//讓

,//智

,//慧

,//行

,//動

,//起

,//來

,//.};

uchar code bmp1[32]=,,,

,};/************系統函式的配置***********/

void sysclk_int(void) //內部晶振

/*void delay1(uchar n) //延時程式

}delay(2*speed);}}

}/****************捲簾出黑屏***************/

void m_black(void)

}delay(2*speed);}}

}/*************用於時鐘晶元操作的函式集****************/

//void write_pcf8563(void)寫時鐘晶元

//void read_pcf8563(void)讀時鐘晶元

void write_pcf8563(void)

void read_pcf8563(void) //讀當時的時,分,鈔

void spit_time(void)//分別計算時、分、秒的各位數字

void dat_int(void) //資料初始化

void sysclk_int(void);

void delay(unsigned n);

void pio_int(void);

void spi_int(void);

void smb_int(void);

void dat_int(void);

void time01_int(void);

void time2_int(void);

void time3_int(void);

void write_pcf8563(void);

void read_pcf8563(void);

void spit_time(void);

/**************主函式**************/

void main(void) //主程式

/****************初始化檢測pcf8563****************/

pio_int();

time01_int();

time2_int();

time3_int();

spi_int(); //spi0dat是spi的資料寄存

smb_int();

spit_time();

eie1|=0x01;

ea=1;

dat_int();

led=0;

tr0=0;

delay(1000);

write_pcf8563();

while(1)

//總while迴圈的結束

}//main函式的結束

void t0(void) interrupt 1 //定時器0的中斷服務程式

else

break;

default:

fail = 1;

break;} }

else //輸掉匯流排

if (fail) //smbus通訊失敗後的處理

si = 0;

}void t3_isr() interrupt 14 //定時器3中斷服務程式 用於檢測smbus是否超時

怕有些地方你不知道是怎麼來的,所有我就把完整的程式都給你了。你自己取出你所需要的就好了。因為不同的顯示效果還是得靠住函式來實現的。

如果住函式沒有寫好,那麼你的移動方式的函式就很難寫了的。希望能給樓主一點靈感。呵呵~

我還有幾種效果的,但是所有的效果都必須基於我的那種顯示方式。你仔細看下,和你的是不是一樣的,顯示快取,各種動畫效果就是移動的控制方式了

給你借鑑一下,具體的呢還得根據你的硬體來了。

跪求16x16led點陣漢字顯示的原理圖,s51微控制器彙編源程式,漢字字摸提取工具,可擴充套件64x16點陣顯示。

微控制器16*16led點陣,怎樣讓文字從上到下顯示?

3樓:

通過撰寫**來實現。

proteus中只有5×7和8×8等led點陣,並沒有16×16led點陣,而在實際應用中,要良好地顯示乙個漢字,則至少需要16×16點陣。下面我們就首先介紹使用8×8點陣構建16×16點陣的方法,並構建一塊16×16led點陣,用於本例的顯示任務。

首先,從proteus元件庫中找到「matrix-8x8-red」元器件,並將四塊該元器件放入proteus文件區編輯視窗中。此時需要注意,如果該元器件保持初始的位置(沒有轉動方向),我們要首先將其左轉90°,使其水平放置,那麼此時它的左面8個引腳是其行線,右邊8個引腳是其列線(當然,如果你是將右轉,則右邊8個引腳是行線)。

然後我們將四個元器件對應的行線和列線分別進行連線,使每一條行線引腳接一行16個led,列線也相同。並注意要將行線和列線引出一定長度的引腳,以便下面我們使用。

然後使用以下**:

微控制器16 16LED點陣移動問題

燕樑電子 共六種顯示模式,按了鍵立即改變模式 實時性,呵呵 include define uchar unsigned char define uint unsigned int uchar speed 15 sbit st p3 5 sbit sh p3 6 sbit data p3 7 sbit...

微控制器 led點陣屏

做而論道 乙個漢字,常見的是16 16的點陣,共256個發光點。這些點,並不是同時發光的。如果每一瞬間,只有一行發光,那就需要把整個的漢字 橫向取模 送到顯示屏 如果每一瞬間,只有一列發光,那就需要把整個的漢字 縱向取模 送到顯示屏。 這個很簡單,但說起來有點麻煩,led點陣它是行列共用的,有兩種方...

微控制器點陣流動顯示原理,微控制器點陣顯示問題

先顯示出一幅完整的靜態畫面,約200ms 再顯示出一幅完整的靜態畫面,約200ms 再顯示出一幅完整的靜態畫面,約200ms 再顯示出一幅完整的靜態畫面,約200ms 再顯示出一幅完整的靜態畫面,約200ms 各個靜態畫面,稍有不同,看起來,就是畫面動起來了。靜態畫面存留的時間越短,動作就越快。一行...