久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機+LCD12864編程實例 畫點 畫圖 顯示漢字
[打印本頁]
作者:
MARS111
時間:
2020-5-2 12:43
標題:
單片機+LCD12864編程實例 畫點 畫圖 顯示漢字
一個有趣的液晶顯示屏
51hei.png
(5.85 KB, 下載次數(shù): 64)
下載附件
2020-5-2 14:02 上傳
單片機源程序如下:
#include"lcd12864.h"
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_Delay1ms
* 函數(shù)功能 : 延時1MS
* 輸 入 : c
* 輸 出 : 無
*******************************************************************************/
void LCD12864_Delay1ms(uint c)
{
uchar a,b;
for(; c>0; c--)
{
for(b=199; b>0; b--)
{
for(a=1; a>0; a--);
}
}
}
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_Busy
* 函數(shù)功能 : 檢測LCD是否忙
* 輸 入 : 無
* 輸 出 : 1或0(1表示不忙,0表示忙)
*******************************************************************************/
uchar LCD12864_Busy(void)
{
uchar i = 0;
LCD12864_RS = 0; //選擇命令
LCD12864_RW = 1; //選擇讀取
LCD12864_EN = 1;
LCD12864_Delay1ms(1);
while((LCD12864_DATAPORT & 0x80) == 0x80) //檢測讀取到的值
{
i++;
if(i > 100)
{
LCD12864_EN = 0;
return 0; //超過等待時間返回0表示失敗
}
}
LCD12864_EN = 0;
return 1;
}
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_WriteCmd
* 函數(shù)功能 : 寫命令
* 輸 入 : cmd
* 輸 出 : 無
*******************************************************************************/
void LCD12864_WriteCmd(uchar cmd)
{
uchar i;
i = 0;
while( LCD12864_Busy() == 0)
{
LCD12864_Delay1ms(1);
i++;
if( i>100)
{
return; //超過等待退出
}
}
LCD12864_RS = 0; //選擇命令
LCD12864_RW = 0; //選擇寫入
LCD12864_EN = 0; //初始化使能端
LCD12864_DATAPORT = cmd; //放置數(shù)據(jù)
LCD12864_EN = 1; //寫時序
LCD12864_Delay1ms(5);
LCD12864_EN = 0;
}
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_WriteData
* 函數(shù)功能 : 寫數(shù)據(jù)
* 輸 入 : dat
* 輸 出 : 無
*******************************************************************************/
void LCD12864_WriteData(uchar dat)
{
uchar i;
i = 0;
while( LCD12864_Busy() == 0)
{
LCD12864_Delay1ms(1);
i++;
if( i>100)
{
return; //超過等待退出
}
}
LCD12864_RS = 1; //選擇數(shù)據(jù)
LCD12864_RW = 0; //選擇寫入
LCD12864_EN = 0; //初始化使能端
LCD12864_DATAPORT = dat; //放置數(shù)據(jù)
LCD12864_EN = 1; //寫時序
LCD12864_Delay1ms(5);
LCD12864_EN = 0;
}
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_ReadData
* 函數(shù)功能 : 讀取數(shù)據(jù)
* 輸 入 : 無
* 輸 出 : 讀取到的8位數(shù)據(jù)
*******************************************************************************/
#ifdef LCD12864_PICTURE
uchar LCD12864_ReadData(void)
{
uchar i, readValue;
i = 0;
while( LCD12864_Busy() == 0)
{
LCD12864_Delay1ms(1);
i++;
if( i>100)
{
return 0; //超過等待退出
}
}
LCD12864_RS = 1; //選擇命令
LCD12864_RW = 1;
LCD12864_EN = 0;
LCD12864_Delay1ms(1); //等待
LCD12864_EN = 1;
LCD12864_Delay1ms(1);
readValue = LCD12864_DATAPORT;
LCD12864_EN = 0;
return readValue;
}
#endif
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_Init
* 函數(shù)功能 : 初始化LCD12864
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void LCD12864_Init()
{
LCD12864_PSB = 1; //選擇并行輸入
LCD12864_RST = 1; //復(fù)位
LCD12864_WriteCmd(0x30); //選擇基本指令操作
LCD12864_WriteCmd(0x0c); //顯示開,關(guān)光標
LCD12864_WriteCmd(0x01); //清除LCD12864的顯示內(nèi)容
}
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_ClearScreen
* 函數(shù)功能 : 在畫圖模式下,LCD12864的01H命令不能清屏,所以要自己寫一個清
* * 屏函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
#ifdef LCD12864_PICTURE
void LCD12864_ClearScreen(void)
{
uchar i,j;
LCD12864_WriteCmd(0x34); //開啟拓展指令集
for(i=0;i<32;i++) //因為LCD有縱坐標32格所以寫三十二次
{
LCD12864_WriteCmd(0x80+i); //先寫入縱坐標Y的值
LCD12864_WriteCmd(0x80); //再寫入橫坐標X的值
for(j=0;j<32;j++) //橫坐標有16位,每位寫入兩個字節(jié)的的數(shù)據(jù),也
{ //就寫入32次以為當寫入兩個字節(jié)之后橫坐標會自
LCD12864_WriteData(0xFF); //動加1,所以就不用再次寫入地址了。
}
}
LCD12864_WriteCmd(0x36); //0x36擴展指令里面打開繪圖顯示
LCD12864_WriteCmd(0x30); //恢復(fù)基本指令集
}
#endif
/*******************************************************************************
* 函 數(shù) 名 : LCD12864_SetWindow
* 函數(shù)功能 : 設(shè)置在基本指令模式下設(shè)置顯示坐標。注意:x是設(shè)置行,y是設(shè)置列
* 輸 入 : x, y
* 輸 出 : 無
*******************************************************************************/
void LCD12864_SetWindow(uchar x, uchar y)
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
12864編程實例 - .zip
(1.34 MB, 下載次數(shù): 82)
2020-5-2 12:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲一区二区三区视频
|
99成人
|
国产成人在线播放
|
欧美成人激情视频
|
黄色一级片在线播放
|
一级黄色片在线免费观看
|
日韩中文字幕
|
国产偷久久一级精品60部
|
成年免费大片黄在线观看岛国
|
国产精品日韩一区二区
|
在线观看亚洲专区
|
色婷婷国产精品综合在线观看
|
欧美a区
|
国产一级久久久久
|
伊人中文字幕
|
一区二区三区在线播放视频
|
国产精品a久久久久
|
欧美日韩三级
|
亚洲欧美自拍偷拍视频
|
狠狠av
|
久久久av中文字幕
|
中文字幕精品视频在线观看
|
亚洲综合在线一区二区
|
亚洲欧洲色视频
|
亚洲成人a v
|
av在线一区二区三区
|
一区二区在线免费观看
|
日日操夜夜操天天操
|
日韩欧美中文字幕在线观看
|
国产精品久久久久久久久免费樱桃
|
日韩 欧美 综合
|
911影院
|
日韩淫片免费看
|
亚洲欧美日韩国产
|
成人午夜看片
|
精品国产一区二区三区久久
|
www国产成人免费观看视频,深夜成人网
|
国产欧美一区二区三区在线看蜜臀
|
黄网在线观看
|
亚洲狠狠
|
久久精品视频免费观看
|