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 各個靜態畫面,稍有不同,看起來,就是畫面動起來了。靜態畫面存留的時間越短,動作就越快。一行...