/*16*16點陣屏的顯示*/
/*******************
PIN -- 点阵
-------------------
DATA -- Ser
SCLH -- Srck
SCLT -- rck
AB -- ab
SC -- ck
*******************/
int DATA=3; //列數據輸出位
int SCLH=4; //列掃描時觸發位
int SCLT=5; //列數據鎖存位
int AB =6; //行數據輸出位
int SC=7; //行掃描時觸發位
unsigned char i=0,j=0;
unsigned char date[32]; //32字節RAM做為16*16點陣屏顯示緩存
void setup() {
// initialize the digital pin as an output.
pinMode(DATA, OUTPUT);
pinMode(SCLH, OUTPUT);
pinMode(SCLT, OUTPUT);
pinMode(AB, OUTPUT);
pinMode(SC, OUTPUT);
}
int table1[32]={
0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x3C,0x00,0xE4,0x03,0xC4,0x0E,0x40,0x18,0x40,
0x1C,0x40,0x1F,0x40,0x07,0xE4,0x01,0xFC,0x00,0x7C,0x00,0x1C,0x00,0x04,0x00,0x04};/*"A"*/
int table2[32]={
0x00,0x04,0x10,0x04,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x11,0x84,0x11,0x84,0x11,0x84,
0x11,0x84,0x11,0x84,0x11,0x84,0x1F,0x8C,0x1F,0xFC,0x0E,0x78,0x00,0x30,0x00,0x00};/*"B"*/
int table3[32]={
0x00,0x00,0x03,0xE0,0x07,0xF0,0x0F,0xF8,0x0C,0x1C,0x18,0x0C,0x10,0x04,0x10,0x04,
0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x18,0x08,0x0C,0x30,0x00,0x00};/*"C"*/
int table4[32]={
0x00,0x00,0x10,0x04,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,
0x10,0x04,0x10,0x0C,0x18,0x0C,0x0C,0x18,0x0F,0xF8,0x07,0xF0,0x03,0xE0,0x00,0x00};/*"D"*/
/* 顯示函數 */
void display()
{
unsigned char i,ia,j,tmp; //定義變量
digitalWrite(AB,LOW); //將行數據位清0,準備移位
for(i=0;i<=16;i++) //循環輸出16行數據
{
digitalWrite(SC,LOW); //為行移位做準備
digitalWrite(SCLT,LOW); //為列鎖存做準備
for(ia=2;ia>0;) //每行16個點,循環位移兩個字節,循環兩次
{
ia--;
tmp=date[i*2+ia]; //讀取點陣數據做輸出
shiftOut(DATA,SCLH,LSBFIRST,tmp); //將DATA上的數據移入寄存器
}
PORTD |= 0xa0; //移入两个字节结束,SCK\SCLT拉高.
digitalWrite(AB,HIGH); //行数据位只在第一行时为0,其它时候都为1
//移位的过程,AB就必需是1
}
j=64;
while(j--); //移入兩個字節結束,SCK\SCLT拉高
digitalWrite(SC,LOW);
digitalWrite(SC,HIGH); //行數據位只在第一行時為0,其它時候都為1
//移位的過程,AB就必需是1
}
/* timer=1時,為1s左右的延時 */
void display_time(unsigned int timer) //指定時間掃描顯示
{
unsigned char i;
while(timer--)
{
i=50;
while(i--)
display();
}
}
void disp()
{
for(i=0;i<32;i++)
date[i]=table1[i];//將"A"字數據複製到顯示緩存
display_time(2); //顯示約2秒
for(i=0;i<32;i++)
date[i]=table2[i];//將"B"字數據複製到顯示緩存
display_time(2); //顯示約2秒
for(i=0;i<32;i++)
date[i]=table3[i];//將"C"字數據複製到顯示緩存
display_time(2); //顯示約2秒
for(i=0;i<32;i++)
date[i]=table4[i];//將"D"字數據複製到顯示緩存
display_time(2); //顯示約2秒
}
void loop()
{
disp();
}
Ci8qMTYqMTbpu57pmaPlsY/nmoTpoa/npLoqLyAgICAgICAKLyoqKioqKioqKioqKioqKioqKioKUElOICAtLSAg54K56Zi1IAotLS0tLS0tLS0tLS0tLS0tLS0tCkRBVEEgIC0tICBTZXIKU0NMSCAgLS0gIFNyY2sKU0NMVCAgLS0gIHJjawpBQiAgLS0gIGFiClNDICAtLSAgY2sKKioqKioqKioqKioqKioqKioqKi8KCmludCBEQVRBPTM7ICAgICAgICAgICAgICAgIC8v5YiX5pW45pOa6Ly45Ye65L2NICAgICAgICAKaW50IFNDTEg9NDsgICAgICAgICAgICAgICAgLy/liJfmjoPmj4/mmYLop7jnmbzkvY0KaW50IFNDTFQ9NTsgICAgICAgICAgICAgICAgLy/liJfmlbjmk5rpjpblrZjkvY0KaW50IEFCICA9NjsgICAgICAgICAgICAgICAgLy/ooYzmlbjmk5rovLjlh7rkvY0KaW50IFNDPTc7ICAgICAgICAgICAgICAgICAgLy/ooYzmjoPmj4/mmYLop7jnmbzkvY0KdW5zaWduZWQgY2hhciBpPTAsaj0wOwp1bnNpZ25lZCBjaGFyIGRhdGVbMzJdOyAgICAgICAgICAgICAgICAvLzMy5a2X56+AUkFN5YGa54K6MTYqMTbpu57pmaPlsY/poa/npLrnt6nlrZgKCnZvaWQgc2V0dXAoKSB7ICAgICAgICAgICAgICAgIAogIC8vIGluaXRpYWxpemUgdGhlIGRpZ2l0YWwgcGluIGFzIGFuIG91dHB1dC4KICBwaW5Nb2RlKERBVEEsIE9VVFBVVCk7ICAgCiAgcGluTW9kZShTQ0xILCBPVVRQVVQpOyAKICBwaW5Nb2RlKFNDTFQsIE9VVFBVVCk7IAogIHBpbk1vZGUoQUIsIE9VVFBVVCk7IAogIHBpbk1vZGUoU0MsIE9VVFBVVCk7ICAgCn0KCmludCB0YWJsZTFbMzJdPXsKMHgwMCwweDA0LDB4MDAsMHgwNCwweDAwLDB4MEMsMHgwMCwweDNDLDB4MDAsMHhFNCwweDAzLDB4QzQsMHgwRSwweDQwLDB4MTgsMHg0MCwKMHgxQywweDQwLDB4MUYsMHg0MCwweDA3LDB4RTQsMHgwMSwweEZDLDB4MDAsMHg3QywweDAwLDB4MUMsMHgwMCwweDA0LDB4MDAsMHgwNH07LyoiQSIqLwppbnQgdGFibGUyWzMyXT17CjB4MDAsMHgwNCwweDEwLDB4MDQsMHgxRiwweEZDLDB4MUYsMHhGQywweDFGLDB4RkMsMHgxMSwweDg0LDB4MTEsMHg4NCwweDExLDB4ODQsCjB4MTEsMHg4NCwweDExLDB4ODQsMHgxMSwweDg0LDB4MUYsMHg4QywweDFGLDB4RkMsMHgwRSwweDc4LDB4MDAsMHgzMCwweDAwLDB4MDB9Oy8qIkIiKi8KaW50IHRhYmxlM1szMl09ewoweDAwLDB4MDAsMHgwMywweEUwLDB4MDcsMHhGMCwweDBGLDB4RjgsMHgwQywweDFDLDB4MTgsMHgwQywweDEwLDB4MDQsMHgxMCwweDA0LAoweDEwLDB4MDQsMHgxMCwweDA0LDB4MTAsMHgwNCwweDEwLDB4MDQsMHgxMCwweDA4LDB4MTgsMHgwOCwweDBDLDB4MzAsMHgwMCwweDAwfTsvKiJDIiovCmludCB0YWJsZTRbMzJdPXsKMHgwMCwweDAwLDB4MTAsMHgwNCwweDFGLDB4RkMsMHgxRiwweEZDLDB4MUYsMHhGQywweDEwLDB4MDQsMHgxMCwweDA0LDB4MTAsMHgwNCwKMHgxMCwweDA0LDB4MTAsMHgwQywweDE4LDB4MEMsMHgwQywweDE4LDB4MEYsMHhGOCwweDA3LDB4RjAsMHgwMywweEUwLDB4MDAsMHgwMH07LyoiRCIqLwoKLyog6aGv56S65Ye95pW4ICovCnZvaWQgZGlzcGxheSgpCnsgICAgICAgIAogICAgICAgIHVuc2lnbmVkIGNoYXIgaSxpYSxqLHRtcDsgIC8v5a6a576p6K6K6YePCiAgICAgICAgZGlnaXRhbFdyaXRlKEFCLExPVyk7ICAgICAgICAgICAgLy/lsIfooYzmlbjmk5rkvY3muIUw77yM5rqW5YKZ56e75L2NCiAgICAgICAgZm9yKGk9MDtpPD0xNjtpKyspICAgICAgICAgICAvL+W+queSsOi8uOWHujE26KGM5pW45pOaCiAgICAgICAgeyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRpZ2l0YWxXcml0ZShTQyxMT1cpOyAgICAgICAgLy/ngrrooYznp7vkvY3lgZrmupblgpkKICAgICAgICAgICAgICAgIGRpZ2l0YWxXcml0ZShTQ0xULExPVyk7ICAgICAgICAvL+eCuuWIl+mOluWtmOWBmua6luWCmQogICAgICAgICAgICAgICAgZm9yKGlhPTI7aWE+MDspICAgICAgICAgICAgICAgIC8v5q+P6KGMMTblgIvpu57vvIzlvqrnkrDkvY3np7vlhanlgIvlrZfnr4As5b6q55Kw5YWp5qyhCiAgICAgICAgICAgICAgICB7ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgaWEtLTsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHRtcD1kYXRlW2kqMitpYV07ICAvL+iugOWPlum7numZo+aVuOaTmuWBmui8uOWHuiAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBzaGlmdE91dChEQVRBLFNDTEgsTFNCRklSU1QsdG1wKTsgIC8v5bCHREFUQeS4iueahOaVuOaTmuenu+WFpeWvhOWtmOWZqCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0gICAgICAgIAogICAgICAgICAgICAgICAgIFBPUlREIHw9IDB4YTA7ICAgICAgICAgICAgICAgIC8v56e75YWl5Lik5Liq5a2X6IqC57uT5p2fLFNDS1xTQ0xU5ouJ6auYLgogICAgICAgICAgICAgICAgZGlnaXRhbFdyaXRlKEFCLEhJR0gpOyAgICAgICAgLy/ooYzmlbDmja7kvY3lj6rlnKjnrKzkuIDooYzml7bkuLow77yM5YW25a6D5pe25YCZ6YO95Li6MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+enu+S9jeeahOi/h+eoi++8jEFC5bCx5b+F6ZyA5pivMQogICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBqPTY0OwogICAgICAgIHdoaWxlKGotLSk7ICAgICAgICAgICAgICAgLy/np7vlhaXlhanlgIvlrZfnr4DntZDmnZ8sU0NLXFNDTFTmi4npq5gKICAgICAgICBkaWdpdGFsV3JpdGUoU0MsTE9XKTsgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBkaWdpdGFsV3JpdGUoU0MsSElHSCk7ICAgICAgIC8v6KGM5pW45pOa5L2N5Y+q5Zyo56ys5LiA6KGM5pmC54K6MO+8jOWFtuWug+aZguWAmemDveeCujEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/np7vkvY3nmoTpgY7nqIvvvIxBQuWwseW/hemcgOaYrzEKfQoKLyogdGltZXI9MeaZgu+8jOeCujFz5bem5Y+z55qE5bu25pmCICovCnZvaWQgZGlzcGxheV90aW1lKHVuc2lnbmVkIGludCB0aW1lcikgICAgICAvL+aMh+WumuaZgumWk+aOg+aPj+mhr+ekugp7CiAgICAgICAgdW5zaWduZWQgY2hhciBpOyAgICAgICAgCiAgICAgICAgd2hpbGUodGltZXItLSkKICAgICAgICB7ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaT01MDsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB3aGlsZShpLS0pCiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkoKTsKICAgICAgICB9Cn0KCnZvaWQgZGlzcCgpCnsKICAgIGZvcihpPTA7aTwzMjtpKyspCiAgICAgICAgZGF0ZVtpXT10YWJsZTFbaV07Ly/lsIciQSLlrZfmlbjmk5ropIfoo73liLDpoa/npLrnt6nlrZgKICAgICAgICBkaXNwbGF5X3RpbWUoMik7ICAgICAgICAvL+mhr+ekuue0hDLnp5IKICAgIAogICAgZm9yKGk9MDtpPDMyO2krKykKICAgICAgICBkYXRlW2ldPXRhYmxlMltpXTsvL+WwhyJCIuWtl+aVuOaTmuikh+ijveWIsOmhr+ekuue3qeWtmAogICAgICAgIGRpc3BsYXlfdGltZSgyKTsgICAgICAgICAvL+mhr+ekuue0hDLnp5IKCiAgICBmb3IoaT0wO2k8MzI7aSsrKQogICAgICAgIGRhdGVbaV09dGFibGUzW2ldOy8v5bCHIkMi5a2X5pW45pOa6KSH6KO95Yiw6aGv56S657ep5a2YCiAgICAgICAgZGlzcGxheV90aW1lKDIpOyAgICAgICAgIC8v6aGv56S657SEMuenkgogICAgZm9yKGk9MDtpPDMyO2krKykKICAgICAgICBkYXRlW2ldPXRhYmxlNFtpXTsvL+WwhyJEIuWtl+aVuOaTmuikh+ijveWIsOmhr+ekuue3qeWtmAogICAgICAgIGRpc3BsYXlfdGltZSgyKTsgICAgICAgICAvL+mhr+ekuue0hDLnp5IKfQp2b2lkIGxvb3AoKSAKeyAgICAgICAgCiAgICBkaXNwKCk7ICAgICAgICAgICAgICAgIAp9Cg==