lcqqcl 发表于 2005-8-5 16:58:30

希望提供给我1602液晶的驱动程序

那位老兄有能够使用的1602B液晶的驱动程序,还望给小弟提供一下,网站上提供的我调试不出来,我自己写的呢?在VMLAB上能仿真,但是速度只有32K而且也不好,希望能提供给我1602B驱动程序,并且代码说明要详细!

                   谢谢

jackiezeng 发表于 2005-8-5 20:39:55

网站上 的我 测试过,没有问题啊

http://cache.amobbs.com/bbs_upload782111/files_3/armok0161107.jpg

zlqsatan 发表于 2005-8-5 20:51:56

非原创,摘自《AVR单片机与CPLD/FPGA综合应用入门》,可以使用!

希望对你有帮助!



LCD.h:



#define LCDPORT PORTB//数据总线接在PB口

#define LCDDDR DDRB

#define LCDPIN PINB

#define En_H sbi(PORTD,5)//En接PD5

#define En_L cbi(PORTD,5)

#define RW_R sbi(PORTD,4)//R/W接PD4

#define RW_W cbi(PORTD,4)

#define RS_H sbi(PORTD,3)//RS接PD3

#define RS_L cbi(PORTD,3)

#define DelaytE delay(10)

#define Clear_Screen Write_Command(0x01)



void delay(uint16_t time)

{

        while(time>0)

        {time--;}

}



void En_Toggle(void)//产生一个使能脉冲

{

        En_H;

        DelaytE;

        En_L;

        DelaytE;

}



/*不断检测LCD的忙标志BF,直到其为0,表示可以执行下一条指令*/

void Wait_Until_Ready(void)

{

        RW_R;//读状态

        RS_L;//读状态位

        LCDDDR=0x00;//输入

        LCDPORT=0x00;

        En_H;

        DelaytE;

        loop_until_bit_is_clear(LCDPIN,7);//不断循环,直至BF=0

        En_L;

}



void Write_Command(uint8_t Command)//向LCD写入命令字

{

        RW_W;//写状态

        RS_L;//写入命令字

        LCDDDR=0xFF;//输出

        LCDPORT=Command;

        En_Toggle();

        Wait_Until_Ready();

}



void Write_Data(uint8_t Data)//写入数据

{

        RW_W;

        RS_H;//写入数据

        LCDDDR=0xFF;

        LCDPORT=Data;

        En_Toggle();

        Wait_Until_Ready();

}



void Write_Position(uint8_t row,uint8_t colum)//设字符位置

{

        uint8_t p;

        if(row==1)

                {p=0x80+colum-1;

                Write_Command(p);

                }

        else

                {p=0xC0+colum-1;

                Write_Command(p);

                }

}



void Write_String(uint8_t *s)//写入字符串

{

        for(;*s!='\0';s++) Write_Data(*s);

}



void Initialize_LCD(void)//LCD初始化

{

        DDRD=0xFF;//PD口,输出,控制信号

        Write_Command(0x38);

        Write_Command(0x06);

        Write_Command(0x0C);

        Clear_Screen;

}

machao 发表于 2005-8-5 20:55:34

希望能提供给我1602B驱动程序,并且代码说明要详细!!!!!



希望提这种要求的帖子的人,自己先提供一份。

armok 发表于 2005-8-6 07:05:12

gxf0505 发表于 2005-8-8 13:56:44

试试我修改的吧!点击此处下载armok0161706.rar

Melin 发表于 2005-8-10 15:31:56

我刚刚上传了一份,有详细的说明,希望对你有帮助!

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=485345&bbs_page_no=1&bbs_id=1000

virtuelu 发表于 2005-8-10 16:12:25

在五楼的兄弟所说的乱码主要是该程序要求赋值的是字符串,而不是123等字符!

应该将想显示的东西转换为字符串的形式!比如说 1 应该输入的为‘1’~~~~~~

heaven1983 发表于 2005-8-12 00:13:05

要是用mega16等单片机,用系统的库文件就可以直接显示了,包含lcd.h头文件即可。

xts 发表于 2012-9-25 15:25:47

我也是过来找这个驱动的,明天开始调试。谢谢
页: [1]
查看完整版本: 希望提供给我1602液晶的驱动程序