欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于51單片機12864液晶顯示
[打印本頁]
作者:
假大寶劍
時間:
2018-8-20 10:56
標題:
基于51單片機12864液晶顯示
基于51單片機12864液晶顯示
/*========================LCD12864液晶并行驅動程序==========================
程序名稱:12864液晶驅動程序(并行模式)
============================================================================*/
#include <at89x52.h>
#define uchar unsigned char
#define uint unsigned int
uchar t,p;
/********************************引腳定義***********************************/
#define RS P1_0 //RS=0為執行指令;RS=1為執行數據;
#define RW P1_1 //讀寫
#define E P1_2 //使能
#define PSB P1_3 //低電平(串口驅動);高電平(并口驅動)
#define RST P1_4 //LCD復位
/********************************定義數組***********************************/
uchar code title[] = {"LCD 并行接口測試"};
uchar code website[]={"qwertyuioopplkjh"};
uchar code dig[]={"0123456789"};
uchar code dig2[]={0,1,2,3,':'}; //
/*******************************相關子程序**********************************/
void Init_lcd(); //初始化液晶
void lcd_busy(); //忙標志查詢
void delay100us(); //100us延時程序
void write(uchar x,uchar Data); //寫單字節函數
void Show(uchar address,uchar L,uchar STR1[]);
void Show_dig(uchar address,uint number);
/*******************************延時子程序**********************************/
void delay100(int n)
{
unsigned char i;
while(n--)
for(i=0;i<100;i++);
}
/*******************************LCD 忙標志查詢******************************/
void lcd_busy(void)
{
uchar busy;
P0=0xff;
RS=0;
RW=1;
do{
E=1;
busy=P0;
E=0;
}
while(busy>0x7f);
}
/*****************************寫指令或數據**********************************/
void write(uchar x,uchar Data)
{
lcd_busy(); //忙查詢
if(x==0)
{
RS=0;
RW=0; //寫單字節命令字
}
else if(x==1)
{
RS=1;
RW=0; //寫單字節數據
}
E=1;
P0=Data;
E=0;
P0=0xff;
}
/*******************************初始化LCD **********************************/
void Init_lcd(void)
{
delay100(20); //啟動等待,等LCM講入工作狀態
PSB=1; //并口驅動模式
RST=0;
delay100(4);
RST=1; // 復位LCD
write(0,0x30); //8 位介面,基本指令集
write(0,0x0c); //顯示打開,光標關,反白關
write(0,0x01); //清屏,將DDRAM的地址計數器歸零
}
/*******漢字和字符顯示,參數入口:Show(地址,顯示寬度,漢字數組)************/
void Show(uchar address,uchar L,uchar STR1[])
{
uchar i;
write(0,address);
for(i=0;i<L;i++)
write(1,STR1[i]);
}
/************純阿拉伯數字顯示,參數入口:Show_dig(地址,數字)**************/
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,"梁浩"); //寫數組里的內容
write(0,0x0d);
delay100(30);
Show(0x90,16,"電子科技協會會長");
delay100(30);
Show(0x88,16,"TEL 15281642659"); //寫英文
delay100(30);
while(1)
{
Show_dig(0x99,p); //寫實時數組
}
}
void exter() interrupt 1
{
TH0=0xdc;
TL0=0x00;
t++;
if(t==20)
{
t=0;
p++;
}
if(p==60)
p=0;
}
/***************************************end***********************************/
復制代碼
51單片機-12864液晶顯示程序.doc
2018-8-20 10:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
36.5 KB, 下載次數: 36, 下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1