[程序源码] 本人刚刚接触ht1621,大神进来看看

[复制链接]
 楼主| 一个小黄人 发表于 2016-8-5 09:35 | 显示全部楼层 |阅读模式
# include <reg51.h>
# include <intrins.h>
# include <stdio.h>

#define uint unsigned int
#define uchar unsigned char


sbit lcddata= P2^2;        //液晶数据端口
sbit lcdwr=P2^3;         //写操作端口
sbit lcdcs=P2^4;        //片选输入  为低的时候复位初始化且数据,命令无效。高的时候反之。


#define        BAIS 0X52
#define        SYSDIS 0X00
#define        SYSEN 0X02
#define        LCDOFF 0X04
#define        LCDON 0X06
#define        XTAL 0X28
#define        RC256 0X30
#define        TONEON 0X12
#define        TONEOFF 0X10
#define        WDTDIS 0X0A

/*****************************************段码*************************************************/
uchar code TAB[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

/**************延时程序1***************/
void delay1(uchar x)
{
        uchar i,j;
        for(i=0;i<x;i++)
        for(j=0;j<120;j++);
}  

/********************延时程序2**************/
void delay(uchar y)
{
        while(--y);

}

/*********************写数据*********/
void wr_data(uint cnt,uchar date)
{          
                uint i;
        for(i=0;i<cnt;i++)
        {
                lcdwr=0;
                delay(10);
                lcddata=(0x80&date);
                delay(10);
                lcdwr=1;
                delay(5);
                date<<=1;               
        }
}

/*********************写命令**********/
void wr_com(uchar com)
{
        lcdcs=0;
        delay(5);
        wr_data(0x80,4);
        wr_data(com,8);
        lcdcs=1;
        delay(5);
}
   
/********************液晶初始化程序**************/
void init()
{
        lcddata=1;
        lcdwr=1;
        lcdcs=1;
        wr_com(BAIS);
        wr_com(RC256);       
        wr_com(SYSDIS);
        wr_com(SYSEN);
        wr_com(LCDON);
//        wr_com(WDTDIS);
}

void display(uchar m,uchar n)
{
        m<<=2;
lcdcs=0;
delay(5);
wr_data(0xA0,3);
wr_data(m,6);
wr_data(n,4);
lcdcs=1;
delay(5);
}

void cl_scren(uchar l)
{
        uchar o=0;
        for(l=0;l<32;l++)
                {
                display(0x00,o);
                o++;
                }       
}


/*********************主程序*************/
void main ()
{
        init();
        cl_scren();
        display(0xff,3);       
        while(1);
}
 楼主| 一个小黄人 发表于 2016-8-5 09:39 | 显示全部楼层
没人帮下新人吗????
chentianxi 发表于 2016-8-6 11:09 | 显示全部楼层
出了什么问题都不说出来,别人怎么帮你
dirtwillfly 发表于 2016-8-6 11:18 | 显示全部楼层
大家都很忙,很少有人闲得没事来读那么一大段代码的。
有啥问题直接说吧,大家会帮助你的
QQ178960471 发表于 2016-8-11 15:14 | 显示全部楼层
怎么了 楼主?
NE5532 发表于 2016-8-11 23:03 | 显示全部楼层
丢一堆代码,不说问题,怎么帮?
xushuo888 发表于 2018-8-3 16:00 | 显示全部楼层
有LCD 驱动芯片问题,可以找我q 1918885898
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

8

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部