c语言sscanf函数的用法是什么
251
2022-11-24
lcd12864显示汉字程序
lcd12864基本特性:
(1)、低电源电压(VDD:+3.0--+5.5V)
(2)、显示分辨率:128×64点
(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
(4)、内置 128个16×8点阵字符
(6)、显示方式:STN、半透、正显
(7)、驱动方式:1/32DUTY,1/5BIAS
(8)、视角方向:6点
(11)、内置DC-DC转换电路,无需外加负压
(12)、无需片选信号,简化软件设计
(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃
lcd12864显示汉字程序
#include《reg52.h》
#define uchar unsigned char
#define uint unsigned int
#define DataPort P3
#define N 800 sbit E=P2^0;
sbit RW=P2^1;
sbit PSB=P2^3;
int num;
uint i=0;
uint l=0;
uint b;
uchar a[]
=“我爱我家0123456789abcdefg,今天是2007年8月8日星期三,太热了!~_~”;
uchar d[]={0x98,0x90,0x88,0x80};
/**************延时1ms*count*****************/
void delay(int count)
{ int x,y;
for(x=0;x《count;x++)
for(y=0;y《120;y++);
}
/**************延时1us***********************/
/*void delayuS(uchar buf)
{
while(buf--);
}*/
/***********忙检测********************/
void Busy()
{
DataPort=0xFF;
RS=0;
RW=1;
while (1)
{
E =1;
}
E=0;
}
/***********写指令子程序****************/
{
Busy(); //检测忙标志位
RS=0;
RW=0;
DataPort=command; //写入指令
E=1;
delay(1);
E=0;
}
/***********写数据子程序***************/
void Write_Data(uchar Data)
{
Busy();
RS=1;
RW=0;
DataPort=Data;
E=1;
delay(1);
E=0;
}
/***********LCD初始化*******************/
void Init_LCD(void)
{
PSB=0;
delay(1);
PSB=1;
//将PSB置1,通信方式为8位数据并口 delay(1);
Write_Com(0x30);//30H--基本指令操作
Write_Com(0x0c);//开显示,关光标,不闪烁。
Write_Com(0x01);//清除显示
Write_Com(0x02);
地址计数器(AC)加1。
Write_Com(0x04);//显示状态 全关
}
/*****************清屏***********************/
void Clear_LCD(void)
{
Write_Com(0x01);
Write_Com(0x34);
Write_Com(0x30);
}
/******************读地址*************************************/
{
//uchar add=0; DataPort=0xFF; RS=0; RW=1; Busy();
add=(DataPort|0x10)&0xbf;
//return(add);
}*/ //读地址失败
/*****************判断行*******************/
/*void Line_Num(uchar k)
{
//uint l;
if(k》=128&&k《=135)l=1;
if(k》135&&k《=143) l=3;
if(k》143&&k《=151) l=2;
if(k》151&&k《=159) l=4;
}*/
/*******************逐行显示***************************************/
void Display_Line(uchar x)
{
uchar c=0;
c=x-0x1; //本函数说明,函数内部的计算公式一定要处在函数的首行
if(i==0) Write_Com(x);
if(i==2*(0x87-c)) Write_Com(0x90);
if(i==2*(0x97-c)) Write_Com(0x98);
if(i==2*(0x8f-c)) Write_Com(0x88);
}
{
if(i==14) Write_Com(0x90);
if(i==30) Write_Com(0x88);
if(i==45) Write_Com(0x98);
}*/
void Show_Chiese()
{
EA=0;
b=sizeof(a);
num=b;
for(l=0;l《4;l++)
{
for(i=0;i《num;i++)
{
Display_Line(d[l]);
Write_Data(a[i]);
} delay(N); //EA=1; }
EA=1;
TH0=0x06;
TL0=0x06;
Clear_LCD();
delay(500);
}
void main(void)
{
TMOD=0x01;
TR0=1;
//开中断,并允许T0中断 ET0=1;
EA=1;
Clear_LCD();
while(1);
{
};
}
void t0(void) interrupt 1 using 0
{
//delay(100);
Show_Chiese();
//EA=0;
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~