以下是源程序:

 #include <reg52.h>
#include<intrins.h> /**
* P2 上接的是 D1 ~ D7
*/
sbit RS = P3 ^ ;//数据 H 命令 L
sbit RW = P3 ^ ;//读 H 写 L
sbit E = P3 ^ ;//高电平 H 使能
#define DATA P2 /**
* 经过逻辑分析仪测量时间
* 单指令是 5us
* nop 0.4ms
* 经过试验发现, 只需要一个单指令执行时间 5us 休眼就可以
* E = 1 后需要等一小段时间, 在手册中并没有说明 -
*/ void delayms(char ms);
char is_busy();
void write_cmd(unsigned char cmd);
void write_data(unsigned char dat);
void pos (unsigned char pos); void main()
{
//初始化 复位 lcd1602
write_cmd(0x38);//设置显示模式 指令码 00111000 => 0x38
delayms();
write_cmd(0x0c);//开显示 不显示光标 不闪烁
delayms();
write_cmd(0x06);//光标设置 写字符后指针加一
delayms();
write_cmd(0x01);//光标清0 指针清0
delayms(); pos ();
write_data('');
write_data('');
write_data('');
write_data('');
write_data('');
write_data('');
write_data('');
write_data('');
write_data('');
write_data(''); pos (0x40); write_data('');
write_data('');
write_data('');
write_data('');
write_data(''); while();
} void pos (unsigned char pos)
{
//设置指针位置 0x80 | 位置
write_cmd(pos|0x80);
} void write_data(unsigned char dat)
{
while(is_busy());
RS = ;
RW = ;
E = ;
//_nop_();
DATA = dat;
_nop_();
E = ;//在E 高向低变化时传输
E = ;
} void write_cmd(unsigned char cmd)
{
while(is_busy());
RS = ;
RW = ;
E = ;
//_nop_();
DATA = cmd;
_nop_();
E = ;//在E 高向低变化时传输
E = ;
} char is_busy()
{
int a=;
char result;
RS = ;//发送的是命令
RW = ;//读
//_nop_();
E = ;//使能
_nop_();
result = (<< & DATA);//7bit 1 忙 0 不忙
E = ;//取消使能
return result;
} void delayms(char ms) //@12.000MHz
{
while(ms--)
{
unsigned char i, j;
i = ;
j = ;
do
{
while (--j);
} while (--i);
}
}

仿真显示少了一个字符, 不知道什么原因。 等真机到了,在试验。

Proteus 8 画原理图仿真 1602 LCD显示字符的更多相关文章

  1. Arduino基础入门—3.连接 IIC 1602 LCD显示文字

    1. IIC转接板介绍 Arduino Uno R3开发板的外部IO口是非常有限的.在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱 ...

  2. mini2440裸试验—计算器(LCD显示,触摸屏突破)

    关于Pait_Bmp(x0, y0, x, y, BMPaddr);函数 像素图在屏幕左上角为(0,0),Pait_Bmp中的x0.y0分别像素点初始位置,x,y为BMP图片的X,Y的大小.BMPad ...

  3. STM32学习之路-LCD(4)&lt;显示字符&gt;

    昨晚疯狂的打了一夜的LOL,感觉L多了,今天一天精神萎靡.还是继续把显示字符给看了,可是在犹豫要不要写这篇文章 事实上写的东西也就是copy别人家的代码,不想写那么多,就记录下自己困惑的地方吧.也许改 ...

  4. FPGA驱动LCD显示红绿蓝彩条

    实验目的:先简单熟悉LCD灯的驱动和时序图的代码实现.设计功能是让LCD显示红绿蓝三种颜色,即三个彩带.本次实验比较容易实现,主要是对LCD驱动时序图的理解和时序参数的配置. 实验条件:1.LCD原理 ...

  5. LCD显示方向

    一.ILI9341内存到显示地址的映射 本文只讨论“正常显示”,不讨论“垂直滚动显示”模式. 可以看到物理内存被两个指针访问,行指针和列指针,行指针范围从000h到013Fh,列指针范围为0000h到 ...

  6. Raspberry PI Model B+ (LCD显示CPU温度)

    Title:Raspberry PI Model B+ (LCD显示CPU温度)  --2015-01-29 17:44 买了块连接Raspberry PI Model B+的LCD显示器,上面没写C ...

  7. LCD显示GPS时钟[嵌入式系统]

    夏任务102:做一个GPS钟 实验要求 用RPi的串口连接一个GPS模块,从GPS得到实时时间,在7段数码管或LCD上显示 实验工具: Raspberry Pi Model B主机, 8G c10 S ...

  8. 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)

    在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...

  9. LCD显示异常分析——撕裂(tear effect)【转】

    转自:LCD显示异常分析--撕裂(tear effect) 概述 在上一篇<LCD显示异常分析--开机闪现花屏>中,我们一起分析了开机花屏的问题,在这一篇中,我将对LCD撕裂(tear e ...

随机推荐

  1. silverlight Canvas、StackPanel、Grid三者之间的关系

    学习 silverlight   首先Canvas.StackPanel.Grid 博客园里看到jailu的这篇文章整理得很好 贴下来: Silverlight提供了非常灵活的布局管理系统,让程序员和 ...

  2. 拿到添加对象的id号方法

    以前Hibernate添加对象,想拿到id号的时候都是根据id排序拿到第一条 ,才知道 这样也可以 /**         * @Description: 添加一个角色信息        * @ret ...

  3. WPF中ComboBox绑定数据库自动读取产生数据

    前台端 <ComboBox HorizontalAlignment="Name="cmb_SSBM" DisplayMemberPath="NAME&qu ...

  4. 20145337《JAVA程序设计》第一周学习总结

    # 20145337 <Java程序设计>第1周学习总结 ## 教材学习内容总结 第一章 -Java最早是Sun公司撰写Star7应用程序的程序语言 -根据应用领域不同,有Java SE. ...

  5. poj3292-Semi-prime H-numbers(筛法打表)

    一,题意:  一个H-number是所有的模四余一的数.(x=4*k+1)  如果一个H-number是H-primes 当且仅当它的因数只有1和它本身(除1外). 一个H-number是H-semi ...

  6. Color Space: HSI

    HSI色彩空间是从人的视觉系统出发,用色调(Hue).色饱和度(Saturation或Chroma)和亮度 (Intensity或Brightness)来描述色彩.HSI色彩空间可以用一个圆锥空间模型 ...

  7. OpenGL问题拾遗

    1 OpenGL设置好纹理以后显示不出来,显示为黑色 纹理默认会使用 mipmap .如果没有修改filter选项,或没有指定其他level的mipmap数据,就会显示不出来

  8. 浏览器中Javascript的加载和执行

    在刚学习Javascript时曾对该问题在小组内做个一次StudyReport,发现其中的基础还是值得分析的. 从标题分析,可以加个Javascript的加载和执行分为两个阶段:加载.执行.而加载即浏 ...

  9. Android MP3录音实现

    给APP做语音功能,必须考虑到IOS和Android平台的通用性.wav录音质量高,文件太大,AAC和AMR格式在IOS平台却不支持,所以采用libmp3lame把AudioRecord音频流直接转换 ...

  10. iis 部署 webapi2.0 访问报错解决

    本机安装的VS2013 开发环境,在IIS部署WebApi2.0时,应用程序池并没有.NET4.5的选项. 网上搜索一番得知: 1..NET 4.5本质上还是4.0,属于递增式的更新,所以对IIS 来 ...