1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標(biāo)題:
基于51單片機(jī)12864液晶顯示
[打印本頁(yè)]
作者:
假大寶劍
時(shí)間:
2018-8-20 10:56
標(biāo)題:
基于51單片機(jī)12864液晶顯示
基于51單片機(jī)12864液晶顯示
/*========================LCD12864液晶并行驅(qū)動(dòng)程序==========================
程序名稱:12864液晶驅(qū)動(dòng)程序(并行模式)
============================================================================*/
#include <at89x52.h>
#define uchar unsigned char
#define uint unsigned int
uchar t,p;
/********************************引腳定義***********************************/
#define RS P1_0 //RS=0為執(zhí)行指令;RS=1為執(zhí)行數(shù)據(jù);
#define RW P1_1 //讀寫(xiě)
#define E P1_2 //使能
#define PSB P1_3 //低電平(串口驅(qū)動(dòng));高電平(并口驅(qū)動(dòng))
#define RST P1_4 //LCD復(fù)位
/********************************定義數(shù)組***********************************/
uchar code title[] = {"LCD 并行接口測(cè)試"};
uchar code website[]={"qwertyuioopplkjh"};
uchar code dig[]={"0123456789"};
uchar code dig2[]={0,1,2,3,':'}; //
/*******************************相關(guān)子程序**********************************/
void Init_lcd(); //初始化液晶
void lcd_busy(); //忙標(biāo)志查詢
void delay100us(); //100us延時(shí)程序
void write(uchar x,uchar Data); //寫(xiě)單字節(jié)函數(shù)
void Show(uchar address,uchar L,uchar STR1[]);
void Show_dig(uchar address,uint number);
/*******************************延時(shí)子程序**********************************/
void delay100(int n)
{
unsigned char i;
while(n--)
for(i=0;i<100;i++);
}
/*******************************LCD 忙標(biāo)志查詢******************************/
void lcd_busy(void)
{
uchar busy;
P0=0xff;
RS=0;
RW=1;
do{
E=1;
busy=P0;
E=0;
}
while(busy>0x7f);
}
/*****************************寫(xiě)指令或數(shù)據(jù)**********************************/
void write(uchar x,uchar Data)
{
lcd_busy(); //忙查詢
if(x==0)
{
RS=0;
RW=0; //寫(xiě)單字節(jié)命令字
}
else if(x==1)
{
RS=1;
RW=0; //寫(xiě)單字節(jié)數(shù)據(jù)
}
E=1;
P0=Data;
E=0;
P0=0xff;
}
/*******************************初始化LCD **********************************/
void Init_lcd(void)
{
delay100(20); //啟動(dòng)等待,等LCM講入工作狀態(tài)
PSB=1; //并口驅(qū)動(dòng)模式
RST=0;
delay100(4);
RST=1; // 復(fù)位LCD
write(0,0x30); //8 位介面,基本指令集
write(0,0x0c); //顯示打開(kāi),光標(biāo)關(guān),反白關(guān)
write(0,0x01); //清屏,將DDRAM的地址計(jì)數(shù)器歸零
}
/*******漢字和字符顯示,參數(shù)入口:Show(地址,顯示寬度,漢字?jǐn)?shù)組)************/
void Show(uchar address,uchar L,uchar STR1[])
{
uchar i;
write(0,address);
for(i=0;i<L;i++)
write(1,STR1[i]);
}
/************純阿拉伯?dāng)?shù)字顯示,參數(shù)入口:Show_dig(地址,數(shù)字)**************/
void Show_dig(uchar address,uint number)
{
uchar shi,ge;
shi=number/10;
ge=number%10;
write(0,address);
delay100(20);
write(1,dig[shi]);
delay100(20);
wri
te(1,dig[ge]);
}
/************************************主程序**********************************/
void main(void)
{
Init_lcd();
TMOD=0X01;
TH0=0xdc;
TL0=0x00;
ET0=1;
TR0=1;
EA=1;
P3_6=0;
delay100(30);
Show(0x83,4,"梁浩"); //寫(xiě)數(shù)組里的內(nèi)容
write(0,0x0d);
delay100(30);
Show(0x90,16,"電子科技協(xié)會(huì)會(huì)長(zhǎng)");
delay100(30);
Show(0x88,16,"TEL 15281642659"); //寫(xiě)英文
delay100(30);
while(1)
{
Show_dig(0x99,p); //寫(xiě)實(shí)時(shí)數(shù)組
}
}
void exter() interrupt 1
{
TH0=0xdc;
TL0=0x00;
t++;
if(t==20)
{
t=0;
p++;
}
if(p==60)
p=0;
}
/***************************************end***********************************/
復(fù)制代碼
51單片機(jī)-12864液晶顯示程序.doc
2018-8-20 10:54 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
36.5 KB, 下載次數(shù): 36, 下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1