您的位置:首页 > 其它

89c51单片机的简单运用3--串口、液晶显示屏

2012-06-24 23:13 183 查看
一、串口

串口是连接pc机与单片机的主要工具,利用串口可以用电脑对用单片机来实现工作的设备进行远程控制,为工作提供方便,学习串口过程中,遇到的最大问题是当同时需要用到串口和定时器时,对于TMOD的设置存在矛盾,利用串口需要设置TMOD=0x20,定时器则需要设置为0x10或0x01,目前还不知道如何解决

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar t0,flag;
uint a;
void init();
void delay(uint z);
void main()
{
init();
while(1)
{
if(a==1)
//	while(1)
{
P3=0x7f;
delay(400);
P3=0xff;
delay(400);
}
if(a==0x02)
//while(1)
{
P3=0x7f;
delay(200);
P3=0xff;
delay(200);
}
if(a==0x03)
//	while(1)
{
P3=0x7f;
delay(100);
P3=0xff;
delay(100);
}
if(a==0x04)
//	while(1)
{
P3=0xff;

}
}
}
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
flag=0;
P3=0xff;
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void ser() interrupt 4
{
RI=0;
a=SBUF;

}

二、液晶显示

学习液晶个人觉得只需记得看操作时序图就可以很好编出所要实现功能的程序

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa,bb,num;
sbit lcdrs=P2^0;
sbit lcdrw=P2^1;
sbit lcden=P2^2;

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(aa)
{
lcdrs=0;
P0=aa;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(bb)
{
lcdrs=1;
P0=bb;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
P2=0xff;
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x0f);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void main ()
{
init();
write_data('1');
delay(5);
write_data('2');
delay(5);
while(1) ;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: