因为在protues上没有找到这款液晶屏幕,所以就不截图了,经过验证是对的。
程序一:在液晶屏上显示一个1
//在液晶屏上显示一个字符
#include
#define uchar unsigned char
#define uint unsigned int
//端口设置
sbit lcden=P3^4;
sbit lcdrs=P3^5;
//延迟函数,大约1秒
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()
{
lcden=0;
write_com(0x38); //显示设置
write_com(0x0e); //显示开关与光标设置
write_com(0x06);
write_com(0x01); //清屏幕
write_com(0x80); //数据指针初始化
}
//主函数
void main()
{
init();
write_data('1');
while(1);
}
程序二:在液晶屏上显示一串字符
//在液晶屏上显示一串字符
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LIKE MCU!";
uchar code table1[]="TAO XIAO SHOU";
//端口设置
sbit lcden=P3^4;
sbit lcdrs=P3^5;
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()
{
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); //停止
}
关键字:C51 液晶显示 LMC1602A
引用地址:
C51液晶显示(LMC1602A)实验2
推荐阅读最新更新时间:2024-03-16 15:18
C51语言使用外部存储器的方法
简介:课本上学到的外部存储器操作基本上都是用汇编语言实现的,但是在实际工作中,大都用C语言编写单片机的程序,那么对外部存储器的操作就不仅仅是给一个普通变量赋值那样子了。 简单地说,注意两个方面: 软件部分: 1.添加头文件#include 2.在需要读写的地方用XBYTE就行,具体做法如下: 比如要访问0xA0B0这个地址(读数据):变量名=XBYTE 就行 反过来要给0xA0B0这个地址赋一个值(写数据):XBYTE =变量名 硬件部分: 硬件连接,将51单片机的P2口接外部存储器的高8位,P0口接数据并通过锁存器接外部存储器的低8位,锁存器的锁存端接51单片机的ALE, 51单片机的读写端要
[单片机]
单片机C语言C51的程序结构
(1)C51中定义的库函数和标准C语言定义的库函数不同。标准的C语言定义的库函数是按通用微型计算机来定义的,而C51中的库函数是按51单片机相应情况来定义的; (2)C51中的数据类型与标准C的数据类型也有一定的区别,在C51中还增加了几种针对51单片机特有的数据类型; (3)C51变量的存储模式与标准C中变量的存储模式不一样,C51中变量的存储模式是与51单片机的存储器紧密相关; (4)C51与标准C的输入输出处理不一样,C51中的输入输出是通过51串行口来完成的,输入输出指令执行前必须要对串行口进行初始化; (5)C51与标准C在函数使用方面也有一定的区别,C51中有专门的中断函数。
[单片机]
单片机 液晶显示实验 (原理图加代码)
本实验回顾:是关于字符型LCD的显示原理的学习以及掌握字符型LCD显示字符的用法。 1.使用LCD显示两行字符,第一行显示“hello + 英文名字”,第二行显示时间(正确的年月日) !注意,这里使用1602是无法显示汉字的,只能显示大小写和阿拉伯数字。 (万年历实验之后有空再更新) -------------------------------------------------------------------------分割线 原理图附上: 这里有几个主要注意: 1.如果D0-D7要接在P0口的话,必须接上拉电阻,否则仿真时会出现灰色的电平,然而直接接P2口便不需要上拉电阻。51芯片一直要注意这个问题。 2.本实验
[单片机]
C51入门6,串口通信实验
从上位机(PC)发送数据给单片机,并显示到单片机的LED上。 实验一:查询法 程序: /如果串口右数据发送就点亮LED #include reg52.h //主函数 void main() { TMOD=0x20; //设置定时器1为工作方式2 TH1=0xfd; //波特率设置 TL1=0xfd; // TR1=1; //启动定时器1 REN=1; //允许串口接收 SM0=0; //串行工作方式1 SM1=1; // EA=1; //开定时器中断 // ES=1; //开总中断 while(1) { if(RI==1) //接收中断标志位,如果有中断到来执行下面语句 { RI=0;
[单片机]
超声波测距 51单片机 12864 液晶显示
超声波测距的模块,51单片机接上12864液晶,HC-SR04超声波模块,就可以了,具体程序没怎么看,超声波模块的硬件也不晓得,今天先贴个图,贴个程序吧(程序是淘宝买的模块附赠的)。 超声波测距51单片机12864液晶显示源程序: #include reg52.h #include intrins.h //引脚定义 sbit RX = P1 ^ 1; sbit TX = P1 ^ 2; sbit CS = P3 ^ 3; //片选 高电平有效 单片LCD使用时可固定高电平 sbit SID = P3 ^ 4; //数据
[单片机]
P51XA单片机与图形液晶显示器的接口设计
P51XA是PHILIPS公司的一种16位单片机,可管理的存储器空间大,运行速度快,支持实时多任务系统的增强了实现高级语言的支持,可以运用在需要复杂、高速控制的场合,在体系结构上与MCS-5高度兼容,便于实现向高性能微控制器的快速、平滑转移。北京精电蓬远显示技术有限公司的MGLS240128T是一种240×128点阵的图形LCD(液晶显示器),可以显示图形、曲线,全屏可显示15×8个汉字,适宜用在需要有较多显示内容的场合,它内含T6963C控制器,能直接与INTEL系列的微处理器接口。 1 P51XAG37单片机和T6963C简介 P51XA单片机的内部结构和外部数据总线均为16位结构,支持扩展的外部存储器空间为1MB-16M
[单片机]
C51的编程规范说明
现在单片机的程序设计,C51已经得到广泛的推广和应用,算是单片机的主流设计程序,甚至可以说作为单片机开发人员必须要掌握的一门语言了。 作为一门工具,最终的目的就是实现功能。在满足这个前提条件下,我们希望我们的程序能很容易地被别人读懂,或者能够很容易地读懂别人的程序,在团体合作开发中就能起到事半功倍之效。在网上请求帮助时,如能以规范的写法贴出程序,网友会比较容易地明白你的问题,则会比较快的得到网友的帮助,否则让人看上半天也不明所以然,这样就达不到预期的效果了。因此,为了便于源程序的交流,减少合作开发中的障碍,希望大家能够探讨一下C51的编程规范。把各人认为好的建议提出来,然后做一个总结,作为一种大家一致认同的规范,我认为将会是一件
[工业控制]
24C01读写的c51源程序代码分享
程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。 Atmel 24C01 比较特殊,为简约型。 51晶振为11.0592MHz -----------------------------------------------------------------------------*/ #include “reg51.h #include ”intrins.h“ sbit SCL= P1^5; sbit SDA= P1^4; delay() { unsigned int i=1200; while(i--); } /*-------------------
[单片机]