:::

7-5 自建字形

一、建立年月日字形

使用 Arduino 板控制 LCD 顯示字元"2013 年 8 月 5 日"。文字型 LCD 模組提 供使用者可以自建 8 個 58 字形,每個字形需要 8 個位元組,其中每個位元組只 使用位元 0~4,位元 5~ 7 則不使用(設定為 0)。 LCD 使用位元對映方式來顯示 字形,當位元值為 1 時則亮,位元值為 0 則不亮。如圖 10-15 所示為本例所使用 的年、月、日自建字形定義。 

 

#include <Wire.h>  // Arduino IDE 內建
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

byte yearChar[8]={B01000,B11111,B00010,B01111,B01010,B11111,B00010,B00000};
byte moonChar[8]={B01111,B01001,B01111,B01001,B01111,B01001,B11101,B00000};
byte dayChar[8]={B01111,B01001,B01001,B01111,B01001,B01001,B01111,B00000};
int years=2018;
byte moons=1;
byte days=31;
void setup() 
{
  lcd.begin(16,2); 
  lcd.createChar(0,yearChar);
  lcd.createChar(1,moonChar);
  lcd.createChar(2,dayChar);  
}   
void loop() 
{
  lcd.setCursor(0,0);
  lcd.print(years);
  lcd.write(byte(0)); 
  lcd.print(moons);
  lcd.write(byte(1));
  lcd.print(days);
  lcd.write(byte(2));
}

 

二、createChar( )函式

createChar( )函式的功能是自建一個字元, HD44780 控制晶片最多可以讓使用 者自建八個 58 的字元(編號 0~7),每個字元使用 8 個位元組來定義字元資料,而 每個位元組只使用位元 0~4,位元 5~7 則不用,例如自建愛心符號如圖 10-12 所示, 設定位元資料為邏輯 0 則不亮,邏輯 1 則亮。 

createChar()函式有 num、data 兩個參數必須設定,num 參數是設定自建字元的 編號,data 參數是所定義字元資料的陣列名稱。如果要顯示自建的字元,可以使用 write()函 式 , 用法 為 write(num)。在使用 createChar()函 式 之 前, 必須 先使 用 LiquidCrystal()函式宣告一個 LiquidCrystal 資料型態的物件。 
格式: createChar(num,data)  
範例:

include <LiquidCrystal.h>    //使用LiquidCrystal函式庫。
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //宣告 lcd 變數。 
 byte heart[8] = {B00000,B01010,B11111,B11111,B01110,B00100, B00000,B00000}; 
 … 
 lcd.createChar(0,heart);    //自建愛心字元。 
 lcd.write(byte(0));    //顯示自建愛心字元。

 

三、練習

1.設計 Arduino 程式,在第 0 行、第 0 列顯示"2013 年 08 月 05 日",在第 0 行第 1 列 顯示"I 愛心 LCD",愛心符號如圖所示。 
2.設計 Arduino 程式,在第 0 行第 0 列顯示"2013 年 08 月 05 日",在第 0 行第 1 列閃 爍顯示"笑臉happy笑臉",笑臉符號如圖所示。


搜尋

錯誤訊息
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 40
未知: Array and string offset access syntax with curly braces is deprecated 在檔案中的第 /include/functions.encoding.php 列 73
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 505
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
未知: Function get_magic_quotes_gpc() is deprecated 在檔案中的第 /class/libraries/vendor/xoops/xmf/src/Request.php 列 119
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined variable: disabled 在檔案中的第 /modules/tad_book3/function.php 列 818
通知: Undefined index: bootstrap 在檔案中的第 /modules/tadtools/preloads/core.php 列 68
已棄用
資料庫語法
0.000101 - SET SQL_BIG_SELECTS = 1
0.001117 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '1') ORDER BY conf_order ASC
0.000483 - SELECT sess_data, sess_ip FROM session WHERE sess_id = '5hm6180m4tucroo446mv01hpra'
0.000569 - SELECT * FROM modules WHERE dirname = 'tad_book3'
0.000668 - SELECT COUNT(*) FROM group_permission WHERE (`gperm_modid` = '1' AND (`gperm_groupid` = '3') AND `gperm_name` = 'module_read' AND `gperm_itemid` = '9')
0.000550 - SELECT * FROM config WHERE (`conf_modid` = '9') ORDER BY conf_order ASC
0.000944 - select a.tbsn,a.title,b.author,a.category,a.page,a.paragraph,a.sort from tad_book3_docs as a left join tad_book3 as b on a.tbsn=b.tbsn where a.tbdsn='288'
0.000329 - SELECT tbsn,title FROM tad_book3 ORDER BY sort
0.000531 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '5') ORDER BY conf_order ASC
0.000268 - SELECT COUNT(*) FROM banner
0.000194 - SELECT * FROM banner LIMIT 0, 1
0.009793 - UPDATE banner SET impmade = 1277820 WHERE bid = 1
0.000503 - SELECT * FROM config WHERE (`conf_modid` = '0' AND `conf_catid` = '3') ORDER BY conf_order ASC
0.001252 - SELECT DISTINCT gperm_itemid FROM group_permission WHERE gperm_name = 'block_read' AND gperm_modid = 1 AND gperm_groupid IN (3)
0.000958 - SELECT b.* FROM newblocks b, block_module_link m WHERE m.block_id=b.bid AND b.isactive=1 AND b.visible=1 AND m.module_id IN (0,9) AND b.bid IN (1,2,3,4,5,6,7,8,9,10,11,18,15,16,20,19,58,60,61,73,72,74,71,76,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,111,109,110,112,113,114,115,116,117,118,119,120,121,122,123) ORDER BY b.weight, m.block_id
0.000975 - SELECT f.*, s.tpl_source FROM tplfile f LEFT JOIN tplsource s ON s.tpl_id=f.tpl_id WHERE (`tpl_tplset` = 'default' AND `tpl_file` = 'system_block_search.tpl') ORDER BY tpl_refid
0.004119 - update tad_book3_docs set `count` = `count`+1 where tbdsn='288'
0.000265 - select * from tad_book3_docs where tbdsn='288'
0.000156 - select * from tad_book3 where tbsn='16'
0.000290 - select mid from modules where dirname='tad_book3'
0.000447 - desc `tad_book3_data_center` `sort`
0.000234 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_book3_data_center` where `mid`= '9' and `col_name`='read_tbdsn_date' and `col_sn`='288' order by `sort` , `data_sort`
0.001478 - select tbdsn,title,content,category,page,paragraph,sort,enable,uid,from_tbdsn from tad_book3_docs where tbsn='16' and `enable`='1' order by category,page,paragraph,sort
0.000995 - select tbdsn,title,category,page,paragraph,sort from tad_book3_docs where tbsn='16' and (`content` != '' or `from_tbdsn` != 0) and enable='1' order by category,page,paragraph,sort
0.000231 - SELECT * FROM modules WHERE dirname = 'tadtools'
0.000284 - SELECT * FROM config WHERE (`conf_modid` = '4') ORDER BY conf_order ASC
0.000174 - select mid from modules where dirname='tad_book3'
0.000341 - desc `tad_book3_data_center` `sort`
0.000217 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_book3_data_center` where `mid`= '9' and `col_name`='video_tbdsn_date' and `col_sn`='288' order by `sort` , `data_sort`
0.000220 - select groupid,name from groups
0.000497 - select * from `tad_book3_files_center` where `col_name`='mp4' and `col_sn`='288' and `kind`='file' order by sort limit 0,1
0.000346 - select `tt_theme`,`tt_use_bootstrap`,`tt_bootstrap_color`,`tt_theme_kind` from `tadtools_setup` where `tt_theme`='school2015'
0.000464 - SELECT f.*, s.tpl_source FROM tplfile f LEFT JOIN tplsource s ON s.tpl_id=f.tpl_id WHERE (`tpl_tplset` = 'default' AND `tpl_file` = 'tadbook3_index.tpl') ORDER BY tpl_refid
0.000286 - SELECT * FROM modules WHERE dirname = 'tad_themes'
0.000298 - SELECT * FROM config WHERE (`conf_modid` = '3') ORDER BY conf_order ASC
0.000185 - select `tt_bootstrap_color` from tadtools_setup where `tt_theme`='school2015'
0.000326 - select * from tad_themes where `theme_name`='school2015'
0.000220 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000308 - select * from tad_themes_blocks where `theme_id`='7'
0.000196 - select mid from modules where dirname='tad_themes'
0.000446 - desc `tad_themes_data_center` `sort`
0.000162 - select `col_sn`,`data_name`,`data_sort`, `data_value` from `tad_themes_data_center` where `mid`= '3' and `col_name`='theme_id' and `col_sn`='7' order by `sort` , `data_sort`
0.000191 - select conf_value from config where conf_name ='allow_register'
0.000325 - select `mid`, `name`, `dirname` from modules where isactive='1' and hasmain='1' and weight!=0 order by weight
0.000175 - SELECT * FROM modules WHERE dirname = 'tad_blocks'
0.000206 - select conf_value from config where conf_title ='_MD_AM_DEBUGMODE'
0.000237 - select count(*) from priv_msgs where `to_userid` ='0' and `read_msg`=0 group by `to_userid`
0.000368 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='0' and status='1' order by position
0.000172 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='11' and status='1' order by position
0.000154 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='14' and status='1' order by position
0.000146 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='15' and status='1' order by position
0.000160 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='17' and status='1' order by position
0.000141 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='16' and status='1' order by position
0.000137 - select `menuid`, `itemname`, `itemurl`, `target`, `icon`, `link_cate_name`, `link_cate_sn`, `read_group` from tad_themes_menu where of_level='18' and status='1' order by position
0.000419 - select a.* from tad_themes_files_center as a left join tad_themes as b on a.col_sn=b.theme_id where a.`col_name`='slide' and b.`theme_name`='school2015'
0.000238 - SELECT * FROM modules WHERE dirname = 'tad_login'
0.000360 - SELECT * FROM config WHERE (`conf_modid` = '14') ORDER BY conf_order ASC
總計: 57
區塊
搜尋: 沒有快取
總計: 1
額外資訊
包含檔案: 204 檔案
使用記憶體: 6990296 bytes
計時
XOOPS 使用 0.156 秒來載入。
XOOPS Boot 使用 0.040 秒來載入。
Module init 使用 0.013 秒來載入。
XOOPS output init 使用 0.046 秒來載入。
Module display 使用 0.029 秒來載入。
Page rendering 使用 0.025 秒來載入。