搜索
bottom↓
回复: 7

四线驱动1602,2显示b的问题,这是在暗示什么吗

[复制链接]

出0入4汤圆

发表于 2014-4-21 19:19:15 | 显示全部楼层 |阅读模式
本帖最后由 xiaoyigechaos 于 2014-4-21 19:28 编辑

程序代码如下
#include "reg52.h"
#include "INTRINS.H"
#define uchar unsigned char
#define uint unsigned int
#define data0 P2
//1602 ½Ó¿Ú
sbit RS=P2^0;//RS??? ??? ??????
sbit RW=P2^1;//RW???? ????
sbit EN=P2^2;//??? ????
uchar code arr[]="23RSrsBCbc";
void delay(uint k)
{
        uint i,j;
        for(i=0;i<k;i++){
                for(j=0;j<255;j++);
}
}
/*************************************************************
LCD³ÌÐò
*************************************************************/
void check_busy()
{
        RS=0;
        RW=1;
        EN=1;
        while(data0&0x80);
        _nop_();
        EN=0;
}
void LCD_Write_Com(uchar com)
{
        uchar i;
        for(i=0;i<2;i++){
        data0|=0xf0;
        check_busy();       
        RS=0;
        RW=0;
        data0=data0&0x0f;
        data0=data0|com;
                EN=1;
                _nop_();
                EN=0;
                com=com<<4;
        }
}

void LCD_Write_Data(uchar data1)
{
        uchar i;
        for(i=0;i<2;i++){
        data0|=0xf0;
        check_busy();               
        RS=1;
        RW=0;
                data0=data0&0x0f;
        data0=data0|data1;
        EN=1;
        nop_();
        EN=0;
                data1=data1<<4;
}
}


//LCD1602???
void LCD_Init()
{
        LCD_Write_Com(0x2c);
        LCD_Write_Com(0x01);
        LCD_Write_Com(0x08);
        LCD_Write_Com(0x06);
        LCD_Write_Com(0x0c);
}


main()
{
                uchar i;
                LCD_Init();
                delay(10);
                LCD_Write_Com(0x80);
                for(i=0;i<8;i++){
                LCD_Write_Data(arr);
                delay(100);
                }
        while(1);
}

单片机是STC89C52RC,一开始以为是硬件问题,各种尝试都不行。有一部分字符显示的不对,比如
23RSrsBCbc  这个字符串会显示为 “bcbcbcbc”

不知道哪里出了问题,各种改都没解决,求指点

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-4-21 19:50:22 | 显示全部楼层
传说中的2B

出0入4汤圆

 楼主| 发表于 2014-4-21 20:04:44 | 显示全部楼层

为啥后面的汉字变成斜体了??我没设置的呀

出0入0汤圆

发表于 2014-4-21 20:14:44 | 显示全部楼层


http://www.amobbs.com/thread-5569626-1-1.html
ctrl+F搜索:LCD1602模块化(四线).rar

出0入663汤圆

发表于 2014-4-21 20:15:30 | 显示全部楼层
因为[ i ]表示斜体,你应该把代码放在[ code ]块中。

出0入4汤圆

 楼主| 发表于 2014-4-21 20:34:05 | 显示全部楼层
eva015401 发表于 2014-4-21 20:14
http://www.amobbs.com/thread-5569626-1-1.html
ctrl+F搜索:LCD1602模块化(四线).rar

看来确实是前后数据影响了,考虑过这个问题,也想到了这种方法,但是代码还是有地方给忽略了,影响了   技艺不佳啊,1602 都玩不好

出0入0汤圆

发表于 2014-4-21 20:45:32 | 显示全部楼层
xiaoyigechaos 发表于 2014-4-21 20:04
为啥后面的汉字变成斜体了??我没设置的呀

再凑一个莫元

出0入0汤圆

发表于 2014-4-22 11:34:14 | 显示全部楼层
我只是看看的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 12:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表