本部分主要介绍1602液晶显示,显示内容为“Hello,Welcome to my site,my friends.”。
原理图如下:
程序如下:
#include
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^0; //数据/命令选择端(H/L)
sbit EN=P3^2; //使能端
sbit RW=P3^1; //读/写选择端(H/L),本文章只写,所以该端口供低电平
sbit wela=P3^3;//锁存器位选信号
uchar table1[]="Hello,Welcome to my ";//字符表1
uchar table2[]="site,my friends.";//字符表2
void delay(uint x) //延时函数
{
uint a,b;
for(a=x;a>0;a--)
for(b=10;b>0;b--);
}
void delay1(uint x) //延时函数
{
uint a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void write_com(uchar com) //写命令函数
{
wela=1; //锁存器位选打开
P2=com; //向P2口写命令
wela=0; //锁存器位选关闭
RS=0; //以下部分跟据1602手册的时序图写出
EN=0;
RW=0;
delay(10);
EN=1;
delay(10);
EN=0;
}
void write_date(uchar date) //写数据函数
{
wela=1;
P2=date;
wela=0;
RS=1;
EN=0;
RW=0;
delay(10);
EN=1;
delay(10);
EN=0;
}
void init() //初始化函数
{
write_com(0x38); //显示模式设置
delay(20);
write_com(0x0f);//显示开/关及光标设置
delay(20);
write_com(0x06);//当写一个字符后地址指针加一,光标加一
delay(20);
}
void main() //主函数
{
uchar a;
init();
write_com(0x80); //第一行起始地址
delay(20);
for(a=0;a<25;a++)
{
write_date(table1[a]);//读取字符表
delay(20);
}
write_com(0xc0); //第二行起始地址
delay(20);
for(a=0;a<17;a++)
{
write_date(table2[a]);//读取字符表
delay(20);
}
while(1); //保持显示
}
试验结果如下:
上一篇:51单片机入门之静态数码管
下一篇:51单片机汇编语言-延时程序的延时时间
推荐阅读
史海拾趣
在快速发展的过程中,FERYSTER公司非常注重企业文化的塑造。公司倡导“创新、协作、责任、卓越”的价值观,鼓励员工勇于创新、敢于担当。同时,公司还注重员工的成长和发展,为员工提供各种培训和学习机会。这些措施使得FERYSTER公司成为了一个充满活力、积极向上的团队,为公司的发展提供了源源不断的动力。
ATP Electronics自创立之初,便以技术创新为核心竞争力。公司特有的SIP(Systems-In-Package:系统级封装)技术,在闪存卡制造领域引起了革命性的变革。通过SIP技术,ATP成功研发出超大容量的闪存卡,不仅满足了市场对于高性能存储的需求,也确立了公司在闪存卡市场的领先地位。这一技术的突破,为ATP带来了大量的订单和市场份额,奠定了公司持续发展的基础。
蓝箭电子始终重视创新能力,不断加大研发投入,推动产品的升级换代。公司还积极拓展国际市场,寻求更多的合作机会。未来,蓝箭电子将继续秉承创新、质量、服务的理念,为电子行业的发展贡献更多力量。
这些故事仅是对蓝箭电子在电子行业发展中一些重要节点的概括,具体的发展过程和细节可能还需要进一步了解公司的历史资料和市场动态。希望这些信息能够满足您的需求。
2010年,Ferraz Shawmut正式更名为Mersen。这一更名标志着公司进入了一个新的发展阶段。Mersen继续秉承Ferraz Shawmut的技术创新和市场拓展精神,不断推出符合市场需求的新产品和技术解决方案。同时,公司也加大了对研发和创新的投入力度,以保持其在电气保护领域的领先地位。
#include<reg52.h> unsigned char i,j; unsigned char code tab[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef} ; v ...… 查看全部问答∨ |
急问:优龙2410通过usb的ms activesync连接不上pc 我使用的是优龙2410开发板,usb连接是通过pc上的普通usb口连接到开发板上的方形usb口,可以通过此usb连接下载wince到开发板上,但是启动wince后却怎么也不能将pc和开发板通过ms activesync连接上。驱动已经安装好,设备管理器上显示有 ...… 查看全部问答∨ |
lantronix程序对硬件进行设置时候出现问题,请高手帮忙解决! 单位购买了一套系统,使用非接触IC卡消费机实现对卡上消费数据的操作,串口处标识的为rs232 rs485。现在由于服务器故障,要重新安装调试服务器,但是我把当初对消费机设置的软件弄丢了,只能在网上找了lantronix的不同版本来做设置,总是不能通过。 ...… 查看全部问答∨ |
我在测试人家的USB仿真模型时碰到了大问题 我用自己写的数据发送模块仿真USB HOST的数据发送,将数据 发送给要测试的USB DEVICE的仿真模型,当我发送完第一个SETUP 包后 USB DEVICE是不是应该回一个ACK信号啊? 为什么我的USB DEVICE的仿真模型 ...… 查看全部问答∨ |
最近做一些备案工作,有一项是查看软件代码的起始结束地址,从map文件里可以看到,但是知道也可以从hex文件里看 碰到一个问题 :067FF000B0B0B0B0B6AF66 :020000021000EC :0A7FF600FFFFFFFFFFFFFFFFFFFF8B :00000001FF复制代码最后四行是这样的。 ...… 查看全部问答∨ |
|
我将IQmathLib.h设置为浮点库,在IQmathLib.h看到以下几行代码, #if MATH_TYPE == FLOAT_MATH #include <math.h> #include <stdlib.h> #endif #define _IQsin(A) & ...… 查看全部问答∨ |
2017年将至,作为信息技术行业的风向标企业,英特尔发布了面向2020年的最新展望。在英特尔看来,到2020年全世界将会有超过500亿台设备接入互联网并实现互相连接,包括可穿戴设备、商店库存传感器、无人驾驶汽车、医疗设备和城市基础设施等等,届 ...… 查看全部问答∨ |