液晶是非常容易见到的,大街小巷亮着液晶显示屏随处可见,而且其原理与发光二极管一致,所以不用过多介绍,只是要注意它的说明书和与之对应的电路图,设置一些引脚,仅此而已。看一个程序,这是最简单驱动液晶的:
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LIKE MCU!";
uchar code table1[]="WWW.TXMCU.COM";
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x10);
}
void main()
{
init();
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(20);
}
// write_com(1);
write_com(0x80+0x53);
for(num=0;num<13;num++)
{
write_data(table1[num]);
delay(20);
}
for(num=0;num<16;num++)
{
write_com(0x18);
delay(20);
}
while(1);
}
理顺一下就可以了,不难理解。
关键字:51单片机 液晶
引用地址:
51单片机系列连载11—液晶
推荐阅读最新更新时间:2024-03-16 14:31
51单片机系列——外部中断怎么写(讲解+实例:改变流水方
在学习51单片机中断的时候常常被外部中断、定时/计数器和串行口弄的稀里糊涂的,本来就是个小小学渣,怎么能经得起折磨!!! 闲来无事,今天写一遍这个来介绍说明一下外部中断INT0、INT1。其他的小编以后再整理给大家。 先上一个实例: 题目: 实例仿真图: 程序 #include reg52.h #include intrins.h #define uint unsigned int void delay1s(void) //延时1s { unsigned char a,b,c; for(c=167;c 0;c--) for(b=171;b 0;b--) for(a=16;
[单片机]
基于51单片机的温度报警系统
功能: 设计一个温度报警系统,可以设定温度上、下限的值,到达设定值时,蜂鸣器响;按键设定有设置、确定、取消、减少与增加功能,LCD1602实时显示相关温度信息 设定界面: 温度超过设定值,蜂鸣器响: 温度超过设定值,蜂鸣器响:温度超过设定值 温度低于设定值,蜂鸣器响: 部分程序: #include reg52.h #include SETTEM.h //设置报警的上下限值头文件 #include Lcd1602.h //LCD显示模块功能头文件 #include DS18B20.h //DS18B02模块功能头文件 #include IntToChar.h //存放整型数转换为字符串头文件 #include Alar
[单片机]
51单片机模拟串口源程序
单片机模拟串口实验,在没有串口的单片机上想使用串口功能这就需要模拟一个串口了 单片机源程序如下: #include reg51.h typedef unsigned char BYTE; typedef unsigned WORD; typedef bit BOOL; #define BAUD 0xFE80 /* 9600bps@11.0592MHz */ sfr AUXR = 0x8E; sbit RXB = P3^0; /* 定义串口TX RX端口 */ sbit TXB = P3^1; BYTE TBUF,RBUF; BYTE TDAT,RDAT; BYTE TCNT,RCNT
[单片机]
51单片机16X16点阵上移C语言程序
前面已经分享了,点阵汇编语言,想信大家大部分用C语言较多了,下面我就将16X16点阵上移C语言程序分享出来,希望能帮到需要的朋友!本人此程序有经过实物测试的。并非随意弄出来的。并且有配视频效果,可以点击查看的视频祥见: http://www.tudou.com/programs/view/D0SCJyO4RBQ/ 下面是原理图,请大家祥细看看,不懂的帖子留言! #include reg52.h #define uchar unsigned char #define uint unsigned int #define LINE P0//定义行线IO口,即74HC154控制端 #define shudu 20//字移动的
[单片机]
51单片机入门经验分享6-利用STC单片机的ADC采集电压
在实际开发中,AD,DA用的相当多,这一节,我们写一个程序,将采集到的电压数值显示在数码管上,程序如下: /******************************************************************************* * 文件名: ADC转换器使用 * 描 述: 电池电压 * 功 能:中断方式 11.059200MHZ * 作 者:大核桃 * 版本号:1.0.1(2017.05.23) *******************************************************************************/ #in
[单片机]
51单片机超声波模块数码管程序分享
超声波原理简单测距准确,应用广泛下面贴一个自己写的数码管程序,显示部分需要改,写的是我使用的是慧净开发板,共阴数码管。 //超声波模块程序 //Trig = P2^0 //Echo = P3^2 #include #define uchar unsigned char #define uint unsigned int unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的码表 uint ti me = 0; uintTImeH = 0; uintTImeL = 0; uint succeed_flag;
[单片机]
51单片机P0口分析
1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构。高电平时,V1打开,V2截止;低电平时,V1截止,V2打开。这种情况下不用外接上拉电阻。而且,当V1打开,V2截止,输出高电平的时候,因为内部电源直接通过V1输出到P0口线上,因此驱动能力(电流)可以很大,这就是为什么教科书上说可以 驱动8个TTL负载 的原因。 2.P0作为一般端口时,V1就永远的截止,V2根据输出数据0导通和1截止,导通时拉地,当然是输出低电平;截止时,P0口就没有输出了,(注意,这种情况就是所谓的高阻浮空状态),如果加上外部上拉电阻,输出就变成了高电平1。 3.其他端口P1、P2、P3,在内部直接将P1口中的V1换成了上拉电阻,所以
[单片机]
基于8051单片机和SJAl000芯片实现智能传感器网络的设计
前 言 随着自动化程度的提高和信息的网络化进程, 所需要的测控点和测控参量越来越多, 使得一个自动控制系统日益庞大而复杂。对于一个系统来说, 需要的传感器数目成倍增加。为了使各智能仪表与上位机能实时、高速、准确地通信, 选择较理想的现场总线则是很关键的。现场总线是开放型控制系统, 是用于现场总线仪表与控制室之间的一种全数字化、串行、双向、多站的通讯网络 。CAN 是其中很有发展前景的一种现场总线。在网络化的系统中, 每只传感器作为一个智能节点挂接在CAN 总线上, 整个系统如图1所示。 1、 CAN 总线的技术特点 a) CAN 通信速率为(5kB/s)/10km、(1MB/s)/40m ,其节点数可达110 个, 传输介质采
[单片机]