欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
LCD12864中文液晶屏的使用(顯示一首小詩)
[打印本頁]
作者:
das
時間:
2015-4-5 00:43
標題:
LCD12864中文液晶屏的使用(顯示一首小詩)
//=============熟練運用以下方案可以擴展到工業控制中的人機介友好介面顯示,實現中文化可視控制=======//
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define Lcd_Bus P0 //數據總線
sbit RS=P1^0; // 并行的指令/數據選擇信號;串行的片選信號
sbit RW=P1^1; // 并行的讀寫選擇信號;串行的數據口
sbit E=P1^2; // 并行的使能信號;串和的同步時鐘
/*************************************************************/
/******************************************************************************/
void chk_busy(){ //檢查忙位(底層)
RS=0;
RW=1;
E=1;
Lcd_Bus=0xff;
while((Lcd_Bus&0x80)==0x80);
E=0;
}
//============================================================//寫命令到LCD(底層)
void write_com(unsigned char cmdcode){
chk_busy(); //忙檢查
RS=0;
RW=0; //RS=0,RW=0;表示MCU寫指令到指令暫存器IR
E=1;
Lcd_Bus=cmdcode; //Lcd_Bus=P0;
E=0; //E由高到低變化將配合W進行寫數據或寫指令
}
//------------------------------------------------------------//寫數據到LCD(底層)
void write_data(unsigned char Dispdata){
chk_busy(); //忙檢查
RS=1;
RW=0; //RS=1;RW=0;表示MCU寫數據到暫存器DR
E=1;
Lcd_Bus=Dispdata; //Lcd_Bus=P0;
E=0; //E由高到低變化將配合W進行寫數據或寫指令
}
//============================================================//初始化LCD屏(被調用層)
void lcm_init(){
write_com(0x30); //選擇8bit數據流 0X30=0011,0000
write_com(0x0C); //開顯示(無游標、不反白)
write_com(0x01); //清除顯示,并且設定地址指針為00H
}
//============================================================//寫指令或數據(被調用層)
void lcm_w_test(bit i,unsigned char word){
if(i == 0){ //根據i的狀態區分指令或數據
write_com(word);//寫指令或數據(0,指令)
}
else{
write_data(word);//寫指令或數據(1,數據)
}
}
//-----------------------------------------------------------//清屏函數
void lcm_clr(void){
lcm_w_test(0,0x01);
}
//===========================================================//向LCM發送一個字符串,長度64字符之內。(被調用層)
void lcm_w_word(unsigned char *s){
while(*s>0){ //應用:lcm_w_word("您好!");
write_data(*s);//這里指針用得很好,用指針后顯示數據的地址不用數組了,減小了內存開支
s++; //自加顯示下一個數據地址
}
}
void welcome(void)//==========================================//初始開機顯示畫面
{
//----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//標尺
//lcm_w_word(" WiCN12864LCD V1.0 2013-05-09 LCD:WC12864CBL WWW#WiCN#COM");
lcm_w_test(0,0x81); //寫指令和地址
lcm_w_word ("離離原上草,"); //寫顯示數據
lcm_w_test(0,0x91);
lcm_w_word ("一歲一枯榮;");
lcm_w_test(0,0x89);
lcm_w_word ("野火燒不盡,");
lcm_w_test(0,0x99);
lcm_w_word ("春風吹又生.");
}
//=========================================================================================//
void DelayM(int num){//延時函數
while(num--) ;
}
/*******************************************************************************************/
void main()
{
lcm_init();//初始化液晶顯示器
lcm_clr();//清屏
welcome(); //初始開機顯示畫面,顯示歡迎信息
DelayM(3000); //顯示等留3秒
while(1);
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1