導航:首頁 > 操作系統 > 單片機led顯示漢字

單片機led顯示漢字

發布時間:2023-06-05 09:27:42

⑴ 用單片機控制16*16的LED,來顯示漢字數字,比如顯示「歡迎」其字模怎麼有很多呢

根據顯示方式而決定取字方式不同,所以有很多種的字模。

上面的字模取字方式如圖

⑵ 怎樣用51單片機和led8*8矩陣進行字元漢字顯示

8*8也就能顯示字元,顯示漢字比較吃力。

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar code Table_of_Digits[]=

{

0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, //0

0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, //1

0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, //2

0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, //3

0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, //4

0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, //5

0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, //6

0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00, //7

0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8

0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00, //9

0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff

};

uchar code xdat[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

uchar code ydat[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

uchar i=0,j=0,t=0,Num_Index,key,xi,yi;


sbit we1=P1^1;

sbit we2=P1^3;

//主程序

void main()

{

//P1=0x80;

Num_Index=0; //從0 開始顯示

TMOD=0x01; //T0 方式0

TH0=(65536-2000)/256; //2ms 定時

TL0=(65536-2000)%256;

IE=0x82;

key=0;

xi=0;

yi=0;

EX0=1;

IT0=1;

TR0=1; //啟動T0

while(1);

}

//T0 中斷函數

void ext_int0() interrupt 0

{

key++;

key&=0x03;

}

void LED_Screen_Display() interrupt 1

{

TH0=(65536-2000)/256; //2ms 定時

TL0=(65536-2000)%256;

switch(key)

{

case 0:

P0=0xff;

we1=1;

P0=~Table_of_Digits[Num_Index*8+i];

we1=0;

P0=0xff; //輸出位碼和段碼

we2=1;

P0=xdat[i];

we2=0;

if(++i==8) i=0; //每屏一個數字由8 個位元組構成

if(++t==250) //每個數字刷新顯示一段時間

{

t=0;

if(++Num_Index==10) Num_Index=0; //顯示下一個數字

}

break;

case 1:

we1=1;

P0=~xdat[xi];

we1=0;

we2=1;

P0=ydat[yi];

we2=0;

if(++t==250) //每個數字刷新顯示一段時間

{

t=0;

yi++;

if(yi>7){yi=0;xi++;}

if(xi>7)xi=0;

}

break;

case 2:

we1=1;

P0=0x00;

we1=0;

P0=0xff; //輸出位碼和段碼

we2=1;

P0=xdat[i];

we2=0;

if(++t==250) //每個數字刷新顯示一段時間

{

if(++i==8) i=0; //每屏一個數字由8 個位元組構成

t=0;

}

break;

default:

key=0;

i=0;

j=0;

t=0;

xi=0;

yi=0;

Num_Index=0;

we1=1;

P0=0xff;

we1=0;

we2=1;

P1=0x80;

we2=0;

break;

}

}

⑶ 51單片機Led點陣8*8顯示一個字的程序是什麼 請講講程序內容里的原理!謝謝

在8X8點陣LED上顯示柱含卜形,讓其先從左到右平滑移動三次,其次從右到左平滑移動三次,再次從上到下平滑移動三次,最後從下到上平滑移動三次,如此循環下去。
1. 程序設計內容
8X8點陣LED工作原理說明 :8X8點陣共需要64個發光二極體組成,且每個發光二極體是放置在行線和列線的交叉點上,當對應的某一列置1電平,某一行置0電平,則相應的二極體就亮;因此要實現一根柱形的亮法,如圖49所示,對陸老鎮應的一列為一根豎柱,或者對應的一行為一根橫柱,因此實現柱的亮的方法如下所述:早粗
一根豎柱:對應的列置1,而行則採用掃描的方法來實現。
一根橫柱:對應的行置0,而列則採用掃描的方法來實現。

⑷ 本人想做一個51單片機的LED點陣顯示,怎麼從單片機調用所有漢字

1、選一個帶漢字型檔的LED,直接寫漢字內碼就可以顯示漢字了,應該最方便。
2、將國標漢字型檔轉換成LED的漢子庫,轉換軟體可以從供應商求取,也可以自己編一個小程序自己生成。從網上找也可以,很多很多。

⑸ 單片機製作led顯示屏,怎麼讓字滾動,思路是什麼

按照時間段來說,一開始先顯示一個字,延時500mS後,這個字的每個亮的點都向換到旁邊的點亮,然後再延時500mS……依此類推,這個字就向左滾動了,要讓它快點或者慢點滾,改變延時時間即可。

⑹ 單片機漢字8x8點陣LED動態顯示程序

#include <reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

unsigned char code image[11][8] = {
{0xC3, 0x81, 0x99, 0x99, 0x99, 0x99, 0x81, 0xC3}, //數字0
{0xEF, 0xE7, 0xE3, 0xE7, 0xE7, 0xE7, 0xE7, 0xC3}, //數字1
{0xC3, 0x81, 0x9D, 0x87, 0xC3, 0xF9, 0xC1, 0x81}, //數字2
{0xC3, 0x81, 0x9D, 0xC7, 0xC7, 0x9D, 0x81, 0xC3}, //數字3
{0xCF, 0xC7, 0xC3, 0xC9, 0xC9, 0x81, 0xCF, 0xCF}, //數字4
{0x81, 0xC1, 0xF9, 0xC3, 0x87, 0x9D, 0x81, 0xC3}, //數字5
{0xC3, 0x81, 0xF9, 0xC1, 0x81, 0x99, 0x81, 0xC3}, //數字6
{0x81, 0x81, 0x9F, 0xCF, 0xCF, 0xE7, 0xE7, 0xE7}, //數字7
{0xC3, 0x81, 0x99, 0xC3, 0xC3, 0x99, 0x81, 0xC3}, //數字8
{0xC3, 0x81, 0x99, 0x81, 0x83, 0x9F, 0x83, 0xC1}, //數字9
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //全亮
};

void main()
{
EA = 1; //使能總中斷
ENLED = 0; //使能U4,選擇LED點陣
ADDR3 = 0;
TMOD = 0x01; //設置T0為模式1
TH0 = 0xFC; //為T0賦初值0xFC67,定時1ms
TL0 = 0x67;
ET0 = 1; //使能T0中斷
TR0 = 1; //啟動T0
while (1);
}
/* 定時器0中斷服務函數 */
void InterruptTimer0() interrupt 1
{
static unsigned char i = 0; //動態掃描的索引
static unsigned int tmr = 0; //1s軟體定時器
static unsigned char index = 9; //圖片刷新索引

TH0 = 0xFC; //重新載入初值
TL0 = 0x67;
//以下代碼完成LED點陣動態掃描刷新
P0 = 0xFF; //顯示消隱
switch (i)
{
case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[index][0]; break;
case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[index][1]; break;
case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[index][2]; break;
case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[index][3]; break;
case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[index][4]; break;
case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[index][5]; break;
case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[index][6]; break;
case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[index][7]; break;
default: break;
}
//以下代碼完成每秒改變一幀圖像
tmr++;
if (tmr >= 1000) //達到1000ms時改變一次圖片索引
{
tmr = 0;
if (index == 0) //圖片索引10~0循環
index = 10;
else
index--;
}
}

閱讀全文

與單片機led顯示漢字相關的資料

熱點內容
呼吸燈單片機程序 瀏覽:950
linux域socket 瀏覽:245
qq分身怎麼樣才能加密 瀏覽:453
windows打開linux 瀏覽:995
新建文件夾為什麼不能發送微信 瀏覽:600
交警app怎麼綁定本人幾輛車 瀏覽:985
彩虹六號如何人工伺服器 瀏覽:632
mc伺服器地址怎麼登入 瀏覽:556
蘋果app怎麼掃描二維碼下載 瀏覽:961
css文件在線解壓 瀏覽:156
36歲程序員近況 瀏覽:285
哪裡可以下載不加密的歌 瀏覽:936
隱藏文件夾是什麼梗 瀏覽:920
插件注冊命令 瀏覽:497
梁一端加密一端不加密規范 瀏覽:84
代碼行數統計命令 瀏覽:106
單片機中2K表示什麼 瀏覽:484
紫禁城為什麼會斷開伺服器 瀏覽:582
華為手機的方舟編譯器在哪呢 瀏覽:125
下載壓縮虐殺原形2 瀏覽:907