51單片機_1602液晶自定義心形圖案

2020-12-03 電子產品世界

unsigned char table1[]={0x03,0x07,0x0f,0x1f,0x1f,0x1f,0x1f,0x1f,
0x18,0x1E,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
0x07,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
0x10,0x18,0x1c,0x1E,0x1E,0x1E,0x1E,0x1E,
0x0f,0x07,0x03,0x01,0x00,0x00,0x00,0x00,
0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x07,0x01,
0x1f,0x1f,0x1f,0x1f,0x1f,0x1c,0x18,0x00,
0x1c,0x18,0x10,0x00,0x00,0x00,0x00,0x00};//心圖案
#define CLEARSCREEN LCD_write_command(0x01)

本文引用地址:http://www.eepw.com.cn/article/201611/323849.htm

/**************定義接口************************/

#define LCDIO P0
sbit LCD1602_RS=P2^2;
sbit LCD1602_RW=P2^1;
sbit LCD1602_EN=P2^0;

/**************定義函數************************/
void LCD_write_command(unsigned char command);//寫入指令函數
void LCD_write_dat(unsigned char dat);//寫入數據函數
void LCD_set_xy( unsigned char x, unsigned char y );//設置顯示位置函數
void LCD_dsp_char( unsigned x,unsigned char y,unsigned char dat);//顯示一個字符函數
void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char *s);//顯示字符串函數
void LCD_init(void);//初始化函數
void delay_nms(unsigned int n);//延時函數
/********************************************/

/************初始化函數****************/
void LCD_init(void)
{
CLEARSCREEN;//clear screen
LCD_write_command(0x38);//set 8 bit data transmission mode
LCD_write_command(0x0c);//open display (enable lcd display)
LCD_write_command(0x80);//set lcd first display address
CLEARSCREEN;//clear screen
}
/****************************************************/

/**************寫指令函數********************************/
void LCD_write_command(unsigned char command)
{
LCDIO=command;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_EN=0;
LCD1602_EN=1;
delay_nms(10);
}
/***************************************************/
/****************寫數據函數************************/
void LCD_write_dat(unsigned char dat)
{
LCDIO=dat;
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_EN=0;
delay_nms(1);
LCD1602_EN=1;
}
/****************************************************/

/***************設置顯示位置**************************/
void LCD_set_xy( unsigned char x, unsigned char y )
{
unsigned char address;
if (y == 1)
address = 0x80 + x;
else
address =0xc0+ x;
LCD_write_command(address);
}
/***************************************************/

/****************顯示一個字符**********************/
void LCD_dsp_char( unsigned x,unsigned char y,unsigned char dat)
{
LCD_set_xy( x, y );
LCD_write_dat(dat);
}
/**********************************************/

/***************顯示字符串函數***************/
void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char *s)
{
LCD_set_xy( X, Y );
while (*s)
{
LCD_write_dat(*s);
s ++;
}
}
/***********************************************/

/********** 延時**********************/
void delay_nms(unsigned int n)
{
unsigned int i=0,j=0;
for (i=n;i>0;i--)
for (j=0;j<10;j++);
}
/**************************************/

/***********主函數**************/
void main(void)
{
unsigned char i,j,k,tmp;
LCD_init();
delay_nms(100);
tmp=0x40;//設置CGRAM地址的格式字
k=0;
for(j=0;j<8;j++)
{
for(i=0;i<8;i++)
{
LCD_write_command(tmp+i); // 設置自定義字符的 CGRAM 地址
delay_nms(2);
LCD_write_dat(table1[k]); // 向CGRAM寫入自定義字符表的數據
k++;
delay_nms(2);
}
tmp=tmp+8;
}
LCD_dsp_string(1,1,"heart: ");//在第一行第一列顯示「heart」
for (i=0;i<4;i++)
{
LCD_dsp_char( 10+i,1,i);//在第一行第10列位置顯示心圖案的上半部
delay_nms(1);
}
for (i=4;i<8;i++)
{
LCD_dsp_char( 10+i-4,2,i);//在第二行第10列位置顯示心圖案的下半部
delay_nms(1);
}
while (1);
}
/************************ 感謝陳青華老師的幫助********************************************/

相關焦點

  • lcd1602中文資料分享:lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • 基於51單片機的TFT液晶顯示設計
    0 引言本文引用地址:http://www.eepw.com.cn/article/173037.htm  51單片機作為一種常見的通用單片機, 雖然其內部資源
  • 全方位解析LCD1602特性及單片機顯示應用
    1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼  從上表可以看出最左邊一列是供用戶自定義字符的,共有16個,實際只有8個字節可以用,字符碼為00000000—00000111這8個地址  LCD1602—顯示應用(單片機學習)  LCD1602是51單片機中很重要的模塊之一,為了方便新手學習1602,筆者把自己學習
  • lcd1602工作原理是什麼?
    每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此,所以它不能像12864一樣顯示圖形,但是有時候很想要用圖形表示,那麼lcd1602提供了8個空間的自定義字符。本文引用地址:http://www.eepw.com.cn/article/201710/368845.htmlcd1602主要用來顯示數字、字母、圖形以及少量自定義字符。由於其顯示控制簡單,性價比高,廣泛用於電子表、冰箱、空調、汽車電子儀表等裝置。
  • 1602自定義字符顯示攝氏度符號
    =1; Delay(); LCD_EN=0;//這一步才開始寫入到LCD Delay();}2.CGRAM1602能存儲8個自定義字符,這8個自定義字符存儲空間的首地址分別是:0X40,0X48,0X50,0X58,0X60,0X68,0X70,0X78。
  • 通過51單片機定時器/計數器實現精確延時
    MCS-51單片機內部共有兩個16位可編程定時器,計數器,即TO、Tl。既有定時功能,又有計數的功能。每個定時器都是由兩個8位的特殊功能寄存器THi和TLi組成(i=0、1)。TMOD是TO和Tl的工作方式控制寄存器,TCON是TO和Tl的運行狀態控制寄存器。
  • 一款基於51單片機的高頻頻率計設計
    摘要 基於51單片機設計了一款測試範圍在1 Hz~10 MHz的頻率計。系統通過峰值有效電路和有效值電路將正弦渡、方波和三角波轉化為直流信號送入單片機,通過編寫相應的程序計算出其有效值和峰峰值的比,實現自動檢測的目的,並由顯示電路顯示測量結果。該系統電路簡潔、軟體編寫簡單、調試難度低。
  • 第九例:液晶電子溫度計的設計
    液晶電子溫度計主要使用的是LCD1602液晶屏顯示,51單片機作為主控晶片,DS18B20溫度傳感器。主要是用51單片機通過單線接口協議,讀取DS18B20裡面的數據,然後對讀取到的數據進行處理,將處理完成的數據放入LCD1602液晶屏進行顯示。
  • 基於51單片機的智能調光防近視檯燈的設計開題報告
    論文(設計)題目 基於51單片機的智能調光防近視檯燈的設計與實現選題目的和意義:檯燈已是千家萬戶的必需生活用品,經常由於忘記關燈而造成巨大的能源浪費。當夜晚來臨時,人們又摸黑去開燈,非常不方便。長時間的學習工作會用眼過度,導致近視。
  • 單片機控制TFT液晶屏顯示數字
    單片機控制TFT液晶屏顯示數字,此工程的硬體部分如下  單片機部分液晶電路接下來就是軟體部分程序的編寫,我們先來看main函數,main函數如下main函數裡做了3件事,第一件就是對TFT液晶屏的初始化,包括對TFT液晶屏接口的初始化和驅動晶片
  • 單片機C語言程序設計:INT0 中斷計數
    /mcu/2018/ic-news112342136.html 推薦閱讀 51單片機學習實踐:用NTC電阻測溫並顯示在TM1637數碼管 STC15單片機實驗名稱:使用NTC電阻測量溫度實驗內容:
  • 心形圖案到底是怎麼來的? 「愛心」圖案的起源是什麼?
    心形圖案到底是怎麼來的? 「愛心」圖案的起源是什麼?時間:2017-04-02 09:27   來源:360問答   責任編輯:沫朵 川北在線核心提示:原標題:心形圖案到底是怎麼來的? 愛心圖案的起源是什麼? 現在人們會用心形圖案來表示情緒、情感或愛,而且主要用來表示愛情。但它的起源卻撲朔迷離。
  • 單片機霍爾測速_單片機霍爾測速程序 - CSDN
    1.本設計採用STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機作為主控制器· 2.採用霍爾傳感器非接觸式測電機轉速· 3.LCD1602液晶顯示當前的轉速,轉速單位為轉/分(RPM)。
  • 基於單片機設計的酒精氣體濃度探測儀
    1 系統結構系統由數據採集模塊(包括吹氣判斷電路、MQ-3酒精氣體濃度傳感器電路、信號調整電路組成);單片機控制模塊(包括STC12C5A32AD型單片機、模/數轉換部分、閥值比較電路、液晶顯示器電路、晶振電路、復位電路組成);閥值電路模塊(包括閥值預設定電路、閥值調整電路、閥值存儲電路、過閥聲/光報警等分電路組成)。
  • 一種基於單片機的實用在線式UPS電路詳解
    市電--蓄電池切換電路  它由兩個遲滯比較器組成,市電經過整流,分壓與由5V基準電壓分壓得到的電壓相比較,輸出接到51單片機4腳。  (1)當市電電壓大於170V  51單片機當檢測到4腳電平為高電平,市電工作指示燈亮起,蓄電池處於充電狀態。
  • 心形圖案是如何成為愛情象徵的?
    [摘要]這首詩在當時迅速流行開來,許多藝術家開始在自己的作品中使用上部有凹陷的心形圖案,也就是如今我們熟知的形狀。從艾瑞克·賈格爾的《心形圖案的前世今生》來看,直到十三、十四世紀,心形圖案才與愛情有了關聯,擁有了如今的象徵意義,並成為了愛情與親密關係的代名詞。心形圖案是如何成為愛情象徵的?賈格爾告訴《時代》雜誌:「(在此之前人們)把心臟當作記憶的圖卷,認為上帝會在我們的心臟上寫下要求與命令,而且(深信)人們之所以能感受到愛與被愛,是因為這種情感通過某種方式寫在了心上。
  • 51單片機的無線供電模塊設計
    打開APP 51單片機的無線供電模塊設計 發表於 2019-04-22 15:01:04 本文主要闡述近距離無線供電,具有低功耗、安全等特點,通過單片機檢測[1]更好的增加了它的可靠性。 2系統方案設計 無線供電演示裝置的設計製作。該電路由電源發射電路、接收電路、檢測顯示電路三部分組成[2]。
  • 《沙灘上的心形圖案》一枝花-協助拍攝
    沙灘上,人們畫下心形的圖案,給沙灘增添了一份色彩。沙灘上的心形圖案【第1幅圖】此作品由遼寧攝影愛好者李先生在著名的湖南地區拍攝沙灘上的心形圖案【第2幅圖】此作品由青海攝影愛好者俞先生在著名的惠州地區拍攝
  • 美麗豆娘交尾組成心形圖案 情敵一箭穿心-豆娘,蜻蜓,交尾,心形圖案...
    這些令人陶醉的美麗圖片顯示的是兩隻豆娘在交尾時,它們的身體組成一個心形圖案。攝影師馬克-布萊傑設法捕捉到另一隻豆娘正在努力加入到它們中來的迷人畫面,這令這張照片看起來就像是一支箭正射向那顆心。該圖看起來與象徵愛情的標誌非常相似,為此43歲的攝影愛好者布萊傑暱稱它是「愛神丘比特之箭」。
  • 液晶顯示溫度計的製作
    主要介紹一種用DSl8820測溫、用SMCl602A液晶來顯示的新型溫度計。該溫度計較之其它數顯式溫度計,具有測量精度高、電路簡單、易於觀察的優點。