1, 1602液晶显示问题
不是这样的。我不知道你的具体电路。但你只要稍作修改我给你的程序即可。#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[]="1.256";//这是你要显示的数据sbit lcden=P3^4;//这是LCD使能端sbit lcdrs=P3^5;//这是LCD写控制端sbit dula=P3^6;//段锁存sbit wela=P3^7;//位锁存;这两个锁存是我的具体电路,不一定要写uchar num;void delay(uchar z)//短延时函数{uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_cmd(uchar cmd)//LCD写命令函数{lcdrs=0;//写指令控制端为低P0=cmd;delay(5);lcden=1;//给个高脉冲结束;因初始化为低delay(4);lcden=0;}void write_data(uchar date)//写数据函数{lcdrs=1;//写数据控制端高电平P0=date;delay(5);lcden=1;//给个高脉冲结束delay(4);lcden=0;}void init()//初始化函数。{dula=0;wela=0;lcden=0;write_cmd(0x38);//这几处是给LCD写命令,具体你可以看1602说明。write_cmd(0x0c);write_cmd(0x06);write_cmd(0x01);}void main(){init();write_cmd(0x80);for(num=0;num<5;num++)//五个字符,即1.256{write_data(table[num]);delay(5);}while(1);}不明白的话再说吧。
2, 求1602液晶显示程序
1602液晶的程序我有,要做数字锁的话其实用到液晶也不多。因为你显示密码是时候不应该都是现实*****吗?你只需把键盘写入的数据存在一个数组中,然后跟密码数组对比就好了。还有就是值得注意的是数据类型问题。输入的键值看你处理的方式而定,密码存放的格式,还有输出显示的是ascll码。注意转换。下面附带一段51的1602LCD的C程序,自己仔细琢磨。#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar table[16]="abcdefghijklmnyz";uchar table1[16]="0123456789abcdef";sbit lcden=P2^0;sbit lcdrs=P2^1;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){ wela=0;lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date){ wela=0;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();for(num=0;num<16;num++){write_data(table[num]);delay(20);}write_com(1);write_com(0x80+0x40);for(num=0;num<16;num++){write_data(table1[num]);delay(20);}while(1);}
3, 求LCD1602液晶显示模块的功能 结构 和详细介绍 不胜感谢
1.简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示的方便 ,后文皆以1表示高电平,0表示第电平。2.管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.操作控制操作控制表 操作 读状态 写指令 读数据 写数据 输入 RS=0,RW=1,E=1 RS=0,RW=0, D0~7=指令码,E=H脉冲 RS=1,RW=1,E=1 RS=1,RW=0, D0~7=数据,E=H脉冲 注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再4.字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如"A"。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。[编辑本段]指令集1602通过D0~D7的8位数据端传输数据和指令。显示模式设置: (初始化)0011 0000 [0x38] 设置16*2显示,5*7点阵,8位数据接口;显示开关及光标设置: (初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。
6, 单片机 1602液晶不能显示
你的write_com跟write_data并没有做到write的动作,因为你的lcdrw都没动作,底下给你参考一下void write_com(uchar com) {lcdrs=0;lcdrw=0;P2=com;delay(5);lcden=1;lcden=0;}void write_data(uchar date) {lcdrs=1;lcdrw=0;P2=date;delay(5);lcden=1;lcden=0;}
相关概念
字符
在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信息。
16
16(十六),是15与17之间的自然数。 16是4的 平方。