資料介紹
描述
在本教程中,您將學(xué)習(xí)如何為 LCD 1602 顯示器創(chuàng)建自定義字符,以及如何將這些字符轉(zhuǎn)換為完整的動(dòng)畫。
自定義字符
1602 LCD 顯示器(16 個(gè)字符 x 2 行)使用 HD44780 驅(qū)動(dòng)芯片。該芯片內(nèi)置一個(gè) 5 x 8 像素的 ASCII 字符集。它還允許您向該字符集添加多達(dá) 8 個(gè)自定義字符。
自定義字符定義為 8 字節(jié)數(shù)組。只有每個(gè)字節(jié)的低 5 位用于組成 5 x 8 自定義字符。下面是 Heart 字符的定義。
const byte heart[8] =
{
B01010,
B11111,
B11111,
B11111,
B01110,
B00100,
B00000,
B00000
};
要將此自定義字符存儲(chǔ)在 LCD 顯示屏中,您需要傳遞一個(gè)介于 0 和 7 之間的值,該值標(biāo)識(shí)您希望設(shè)置的自定義字符槽以及定義字符的字節(jié)數(shù)組。
#define HEART 0
lcd.createChar(HEART, heart);
要顯示自定義字符,請(qǐng)使用 write 函數(shù)并將自定義字符標(biāo)識(shí)符傳遞給它。
lcd.write(HEART);
動(dòng)畫角色
自定義字符可以在使用前隨時(shí)初始化或更改。限制是只能同時(shí)顯示八個(gè)自定義字符。
那就是你不能做這樣的事情:
lcd.createChar(0, heart);
lcd.setCursor(0, 0);
lcd.write(0);
lcd.createChar(0, club);
lcd.setCursor(1, 0);
lcd.write(0);
上面的示例顯示了試圖在不同位置同時(shí)顯示在屏幕上的心形符號(hào)和俱樂部符號(hào),但兩者都使用相同的自定義字符“槽”。這行不通。
但是,您可以覆蓋一個(gè)字符,前提是被覆蓋的字符未在屏幕上的其他位置使用。
lcd.createChar(0, heart);
lcd.setCursor(0, 0);
lcd.write(0);
delay(1000);
lcd.createChar(0, club);
lcd.setCursor(0, 0);
lcd.write(0);
The
上面的示例顯示了 1 秒鐘的心形字符,然后將其替換為俱樂部字符。
在老虎機(jī)中,每個(gè)“卷軸”包含 10 個(gè)符號(hào)。
#define REEL_SYMBOLS 10
#define TOTAL_REEL_SYMBOL_ROWS (REEL_SYMBOLS * 8)
const byte reel[TOTAL_REEL_SYMBOL_ROWS] =
{
//Heart
B00000,
B01010,
B11111,
B11111,
B11111,
B01110,
B00100,
B00000,
//Diamond
B00000,
B00100,
B01110,
B11111,
B11111,
B01110,
B00100,
B00000,
:
//Face
B00000,
B11011,
B11011,
B00000,
B10001,
B01110,
B00000,
B00000,
};
每個(gè)輪子都有自己的 8 字節(jié)內(nèi)存緩沖區(qū),卷軸數(shù)據(jù)將被復(fù)制到其中。
byte wheel[8];
通過在卷軸數(shù)組中保留索引,將 8 個(gè)字節(jié)復(fù)制到輪數(shù)組,然后設(shè)置為自定義字符并顯示。索引遞增,并在短暫延遲后重復(fù)該過程。
這是從卷軸數(shù)據(jù)中填充車輪字符的代碼。row變量是一個(gè)全局變量,指向要復(fù)制的下一行。顯示新形成的字符后,行變量遞增。一旦到達(dá)列表的末尾,它又會(huì)重新開始。
#define SLOT 0
#define CURSOR_X 3
#define CURSOR_Y 0
int row = 0;
//Copy eight bytes into a character RAM from the reel array
// - global variable "row" points to top row to display
// - if "row + i" exceeds the array size, wrap round to the start
while (true)
{
for (int i = 0; i < 8; i++)
{
wheel[i] = reel[(row + i) % TOTAL_REEL_SYMBOL_ROWS];
}
//This example uses custom character slot 0. If there is more than one wheel to
//spin, each wheel will need its own unique custom character slot and cursor
//position.
lcd.createChar(SLOT, wheel);
lcd.setCursor(CURSOR_X, CURSOR_Y);
lcd.write(SLOT);
//Increase row for next animation frame. Wrap round to start if it gets past
//the end of the reel rows.
row = (row + 1) % TOTAL_REEL_SYMBOL_ROWS;
delay(100);
}
面包板賭場
實(shí)際的電子設(shè)備相當(dāng)簡單。需要的零件有:
-
Arduino UNO, Nano, Pro Mini or Mega
-
1602 LCD screen
-
220 ohm resistor for the LCD backlight
-
10K trim pot for the LCD contrast adjustment
-
4 tactile push buttons
-
1 piezo electric passive buzzer
如果您想知道為什么選擇 Arduino 引腳連接,那是為了簡化 PCB 布局。
連接 Arduino 后,將提供的草圖加載到 Arduino IDE 中并對(duì) Arduino 板進(jìn)行編程。
玩游戲
有四個(gè)按鈕。從左邊開始,它們是 HIT、STAND、LESS 和 MORE。
HIT - 只要您可以選擇投注,此按鈕將帶您進(jìn)入頂層菜單,讓您選擇不同的游戲。在二十一點(diǎn)中,它也用于表示玩家想要另一張牌。
STAND - 一般來說,這會(huì)開始一個(gè)新的游戲。在老虎機(jī)中,它旋轉(zhuǎn)輪子,在二十一點(diǎn)中,它開始新手,也用于表示玩家已完成抽牌并希望莊家玩,而在擲骰子中,它用于擲骰子。
LESS - 減少您想要下注的金額。在頂級(jí)菜單上,它選擇上一個(gè)菜單項(xiàng)。
更多 - 增加您想要下注的金額。在頂級(jí)菜單上,它選擇下一個(gè)菜單項(xiàng)。
演示視頻
賭場控制臺(tái)
將您的構(gòu)建從面包板變成完整的控制臺(tái)將需要印刷電路板和一些額外的組件。如果您希望將 PCB 商業(yè)化制造或像我一樣自己制造,請(qǐng)附上 Eagle 文件。我使用了碳粉方法。
使用我在車間周圍的零件,將 Arduino UNO 替換為 ATMega328 DIL 芯片,并通過使用 DIL 28 針 IC 插座并將其引腳壓平安裝在電路板背面。除 47uF/16V 鉭 3528 電容器和 1206 10uF 陶瓷電容器外,所有電容器均為 0805 SMD 變體。晶體是一個(gè) 16Mhz 通孔變體,也安裝在背面。輕觸開關(guān)為 12x12mm,帶有圓形按鈕帽。
外殼是 3D 打印的,層高為 0.2 毫米,沒有支撐。使用 2.5 毫米鉆頭鉆出 PCB 安裝孔,并使用 3 毫米絲錐創(chuàng)建螺紋。使用 M3 6mm 螺釘將板固定到位。我還將 PCB 上的四個(gè)安裝孔鉆出 4 毫米,以便在固定電路板時(shí)進(jìn)行任何必要的調(diào)整,以防止按鈕頂部粘在外殼上。
如果 ATMega328 芯片沒有 Arduino 引導(dǎo)加載程序,則需要先添加一個(gè)。我使用我的AVR ISP 程序員添加引導(dǎo)加載程序,然后使用 FTDI 程序員上傳草圖。
結(jié)論
老虎機(jī)動(dòng)畫效果非常好。希望您可以在未來的項(xiàng)目之一中使用此處描述的動(dòng)畫技術(shù)。
- Arduino LCD圖標(biāo)(自定義字符)
- 在16x2 LCD顯示器上創(chuàng)建自定義動(dòng)畫
- 08-LCD1602顯示字符
- 3. 51——LCD1602顯示 字符、字符串、數(shù)字
- lcd1602顯示
- C51 LCD1602的使用
- 51單片機(jī)驅(qū)動(dòng)LCD1602顯示原理及例程
- 使用51單片機(jī)實(shí)現(xiàn)LCD1602顯示單個(gè)字符的實(shí)例電路圖和程序免費(fèi)下載
- LCD1602自定義字符的原理和使用示例程序資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行LCD1602液晶顯示的資料和程序免費(fèi)下載
- 使用51單片機(jī)控制液晶顯示器LCD1602的詳細(xì)資料說明
- LCD1602自定義顯示字符及漢字 85次下載
- AVR編寫1602自定義字符 1次下載
- 1602自定義字符 1次下載
- LCD1602顯示漢字 22次下載
- 怎樣為顯示器創(chuàng)建自定義分辨率呢? 5897次閱讀
- LCD1602顯示屏如何使用 2725次閱讀
- LCD1602液晶顯示屏的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn) 9575次閱讀
- LCD1602的硬件參數(shù)和引腳定義 2.4w次閱讀
- 51單片機(jī)對(duì)LCD1602顯示的四線驅(qū)動(dòng) 6527次閱讀
- LCD1602是什么?關(guān)于LCD1602液晶模塊的顯示問題? 2.2w次閱讀
- lcd1602實(shí)現(xiàn)字幕滾動(dòng)原理_lcd1602滾動(dòng)顯示程序 4.2w次閱讀
- lcd1602顯示電路圖大全(兩款lcd1602液晶顯示電路原理圖) 12.7w次閱讀
- LCD1602自定義點(diǎn)陣字符詳解 1.3w次閱讀
- lcd1602指令說明 3.6w次閱讀
- lcd1602能顯示漢字嗎_lcd1602顯示漢字程序 8.7w次閱讀
- 以LCD1602驅(qū)動(dòng)程序?yàn)槔治鯟51單片機(jī)編程技巧 3744次閱讀
- lcd1602中文資料分享:lcd1602接線圖_lcd1602與單片機(jī)連接圖 43w次閱讀
- 全方位解析LCD1602特性及單片機(jī)顯示應(yīng)用 9345次閱讀
- 通用型LCD1602自定義字符的顯示 3.6w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多