帶中文字庫LCD12864 按鍵菜單設置反白實驗分享
制作出來的實物圖如下:
IMG_20200207_231418.jpg (4.15 MB, 下載次數: 94)
下載附件
2020-2-7 23:26 上傳
IMG_20200207_231435.jpg (3.7 MB, 下載次數: 89)
下載附件
2020-2-7 23:26 上傳
IMG_20200207_231458.jpg (4.15 MB, 下載次數: 93)
下載附件
2020-2-7 23:26 上傳
用的是普中的開發板 如果你的也是同型號的普中開發板 直接下載也不能顯示 因為我的開發板改電路了
你需要改#include"lcd12864.h"里面的
sbit LCD12864_RS=P2^6; //寄存器選擇輸入
sbit LCD12864_RW=P2^5; //寄存器選擇輸入
sbit LCD12864_E=P2^7; //液晶使能控制
sbit LCD12864_PSB=P3^0; //串/并方式控制
sbit LCD12864_RES=P3^2; //數據復位
即可
部分程序(還有些程序在#include"lcd12864.h"里面)
#include<reg52.h> //此文件中定義了單片機的一些特殊功能寄存器
#include"lcd12864.h" //lcd12864液晶屏驅動
#define uchar unsigned char //宏定義無符號字符形數據類型進行聲明定義 定義名稱uchar 所占位數8位 范圍0~255
#define uint unsigned int //宏定義無符號整形數據類型進行聲明定義 定義名稱uint 所占位數16位 范圍0~65535
/*按鍵IO引腳定義*/
sbit k1=P3^0; //菜單選擇按鍵
uchar cdsz=0; //菜單設置標志
/*延時函數 delay_ms(1)時大約1ms*/
void delay_ms(uint ms)
{
uchar t;
while(ms--)
{
for(t=120;t>0;t--);
}
}
/*按鍵函數*/
void an_jian()
{
if(k1==0)
{
delay_ms(10); //消抖延時大約10ms
if(k1==0)
{
if(cdsz<2)cdsz=cdsz+1;else(cdsz=0);
}
while(!k1); //確認按鍵是否松開
}
}
/*菜單設置函數*/
void caidan_shezhi()
{
if(cdsz==0)Lcd12864_SetAscWhite(2,2,10,0); //如果cdsz==0 第2行 第2列 范圍10個字符 0為反白
else(Lcd12864_SetAscWhite(2,2,10,1)); //如果cdsz!=0 第2行 第2列 范圍10個字符 1為關閉反白
if(cdsz==1)Lcd12864_SetAscWhite(3,2,10,0); //如果cdsz==1 第3行 第2列 范圍10個字符 0為反白
else(Lcd12864_SetAscWhite(3,2,10,1)); //如果cdsz!=1 第3行 第2列 范圍10個字符 1為關閉反白
if(cdsz==2)Lcd12864_SetAscWhite(4,2,10,0); //如果cdsz==2 第4行 第2列 范圍10個字符 0為反白
else(Lcd12864_SetAscWhite(4,2,10,1)); //如果cdsz!=2 第4行 第2列 范圍10個字符 1為關閉反白
}
void main()
{
lcd12864init(); //lcd12864起初化
LCD12864_cluck(); //全面清屏 必須的 否則花屏
while(1)
{
an_jian(); //讀取按鍵函數
caidan_shezhi(); //讀取菜單設置函數*
LCD_PutString(1,3,"設置"); //第1行位置3列開始 顯示 設置
LCD_PutString(2,1,"1.顯示設置"); //第2行位置1列開始 顯示 1.顯示設置
LCD_PutString(3,1,"2.應用設置"); //第3行位置1列開始 顯示 2.應用設置
LCD_PutString(4,1,"3.系統設置"); //第4行位置1列開始 顯示 3.系統設置
}
}
全部資料51hei下載地址:
帶中文字庫LCD12864 按鍵菜單設置反白實驗.zip
(35.04 KB, 下載次數: 486)
2020-2-7 23:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|