登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

哪位大侠能传个PIC的12864显示模块测试程序给我?

作者:jerrylo 栏目:单片机
哪位大侠能传个PIC的12864显示模块测试程序给我?
哪位大侠能传个PIC的12864显示模块测试程序给我?
我在学习LCD显示模块,控制芯片是KS0108B的,哪位大侠能传个PIC的测试程序给我?我的邮箱是jerry.lo@ontopsemi.com 谢谢!!!

2楼: >>参与讨论
jerrylo
哪位大侠能传个PIC的12864显示模块测试程序给我?
此模块没有内部字库.我一直在网上苦苦搜索,可都是51的,哪位好心人能传一份给我呢?或者在这里贴一份,我想这对很多新手而言,都是需要的!谢谢你们了!

3楼: >>参与讨论
holtek
路过!给你一份参考
//#include "pic.h"

#define    lcd_cursor(x)    lcd_write(((x)&0x7F)|0x80)//Set the cursor position


#define  LCD_RS    RD2
#define  LCD_EN    RD3
#define  LCD_RW RD1

#define    LCD_STROBE    ((LCD_EN = 1),(LCD_EN=0))


void delay_10us(unsigned CHAR x)    
{
  while(x--);
}

void delay_ms(unsigned CHAR cnt)
{
    unsigned CHAR i;
    do {
        i = 4;
        do {
            delay_10us(39);
        } while(--i);
    } while(--cnt);

}

/* write a byte to the LCD in 4 bit mode */

void lcd_write(unsigned CHAR c)
{
    PORTD = (PORTD & 0x0F) | (c & 0xF0);
    LCD_STROBE;
    PORTD = (PORTD & 0x0F) | (c << 4);
    LCD_STROBE;
    delay_10us(4);
}

/* Clear and home the LCD */

void lcd_clear(void)
{
    LCD_RS = 0;
    lcd_write(0x1);
    delay_ms(2);
}

/* write a string of CHARs to the LCD */

void lcd_puts(const CHAR * s)
{
    LCD_RS = 1;    // write CHARacters
    while(*s)
        lcd_write(*s++);
}

/* write one CHARacter to the LCD */

void lcd_putch(CHAR c)
{
    LCD_RS = 1;    // write CHARacters
    PORTD = (PORTD & 0x0F) | (c & 0xF0);
    LCD_STROBE;
    PORTD = (PORTD & 0x0F) | (c << 4);   
    LCD_STROBE;
    delay_10us(4);
}

/*Go to the specified position*/
void lcd_goto(unsigned CHAR pos)
{
    LCD_RS = 0;
    lcd_write(0x80+pos);
}


void lcd_init(void)
{
    LCD_RS = 0;            // write CONTROL bytes
    delay_ms(40);        // POWER on delay,wait time>40ms
    PORTD = 0x20;        // Function set,set 4 bit mode
    LCD_STROBE;
    delay_10us(10);     //wait time >100us
    lcd_write(0x20);    // Function set:4 bit mode.
    delay_10us(10);     //wait time >100us
    lcd_write(0x0C);    // DISPLAY ON/OFF CONTROL.
    delay_10us(10);     //wait time >100us
    lcd_write(0x01);    // DISPLAY clear
    delay_ms(10);       //wait time >10ms
    lcd_write(0x06);    // entry mode set
}



参与讨论
昵称:
讨论内容:
 
 
相关帖子
求教:pic18f4580.h 与 p18f458.h 函数
请问12F629使用片内振荡器频率怎么校正
请教:PICC编辑器
请教斑竹,boot block是什么?
征求MTD单片机使用观点
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号