打印
[程序源码]

本人刚刚接触ht1621,大神进来看看

[复制链接]
1326|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一个小黄人|  楼主 | 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 | 只看该作者
大家都很忙,很少有人闲得没事来读那么一大段代码的。
有啥问题直接说吧,大家会帮助你的

使用特权

评论回复
5
QQ178960471| | 2016-8-11 15:14 | 只看该作者
怎么了 楼主?

使用特权

评论回复
6
NE5532| | 2016-8-11 23:03 | 只看该作者
丢一堆代码,不说问题,怎么帮?

使用特权

评论回复
7
xushuo888| | 2018-8-3 16:00 | 只看该作者
有LCD 驱动芯片问题,可以找我q 1918885898

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

66

帖子

1

粉丝