ÐÂÎÅ×ÊѶ
LCD1602ÏÔʾ³ÌÐò[PIC16F877A+PICC]
2010-11-29


[code="c"]

//ʵÑéÄ¿µÄ£ºÊìϤLCDµÄʹÓ÷½·¨
//LCDÑ­»·ÏÔʾ±¾Õ¾ÍøÖ·ºÍµç»°
//Ó²¼þÒªÇó£ºLCDÖ±½ÓÓ뵥Ƭ»úµÄA¿ÚºÍD¿ÚÏàÁ¬½Ó
//ËùÓв¦Â뿪¹ØÖÃOFF
//µ÷½ÚµçλÆ÷£¬µ÷½ÚLCDÁÁ¶È¡£
#include<pic.h>
 __CONFIG(0x1832);       
//оƬÅäÖÃ×Ö£¬¿´ÃŹ·¹Ø£¬ÉϵçÑÓʱ¿ª£¬µôµç¼ì²â¹Ø£¬µÍѹ±à³Ì¹Ø£¬¼ÓÃÜ£¬4M¾§ÌåHSÕñµ´

#define rs RA1
#define rw RA2
#define e  RA3
const char web[ ]={' ','W','W','W','.','P','I','C','1','6','.','C','O','M',' ',' '};
//ÏÔʾ¹«Ë¾webµØÖ·
const char tel[ ]={'T','E','L','0','7','5','5','-','2','8','1','8','7','9','7','5'};
//ÏÔʾ¹«Ë¾µç»°ºÅÂë

void init();                   //ÉêÃ÷I/O¿Ú³õʼ»¯º¯Êý
void lcd_init();               //ÉêÃ÷LCD³õʼ»¯º¯Êý
void write_web();              //ÉêÃ÷ÏÔʾ¹«Ë¾webµØÖ·º¯Êý
void write_tel();              //ÉêÃ÷ÏÔʾ¹«Ë¾telº¯Êý
void write(char x);            //ÉêÃ÷ÏÔʾ1×Ö½ÚÊý¾Ýº¯Êý
void lcd_enable();             //ÉêÃ÷LCDÏÔʾÉèÖú¯Êý
void delay();                  //ÉêÃ÷ÑÓʱº¯Êý

//---------------------------------------
//Ö÷º¯Êý
void main()
 {
    while(1)
      {
        init();                //µ÷ÓÃI/O¿Ú³õʼ»¯º¯Êý
        lcd_init();            //µ÷ÓÃLCD³õʼ»¯º¯Êý
        write_web();           //µ÷ÓÃÏÔʾ¹«Ë¾webµØÖ·º¯Êý
        PORTD=0XC0;            //ÉèÖõÚ2ÐÐÏÔʾµØÖ·
        lcd_enable();          //µ÷ÓÃLCDÏÔʾÉèÖú¯Êý
        write_tel();           //µ÷ÓÃÏÔʾ¹«Ë¾telº¯Êý
      }
 }
 
//---------------------------------------
//I/O¿Ú³õʼ»¯º¯Êý
void init()
 {
    ADCON1=0X07;               //ÉèÖÃA¿ÚΪÆÕͨI/O¿Ú
    TRISA=0X00;                //ÉèÖÃA¿ÚΪÊä³ö
    TRISD=0X00;                //ÉèÖÃD¿ÚΪÊä³ö
 }

//---------------------------------------
//LCD³õʼ»¯º¯Êý
void lcd_init()
 {
    PORTD=0X1;                 //Çå³ýÏÔʾ
    lcd_enable();
    PORTD=0X38;                //8λ2ÐÐ5*7µãÕó
    lcd_enable();
    PORTD=0X0e;                //ÏÔʾ¿ª£¬¹â±ê¿ª£¬ÉÁ˸
    lcd_enable();
    PORTD=0X06;                //ÎÄ×Ö²»¶¯£¬¹â±êÓÒÒÆ
    lcd_enable();
    PORTD=0X80;                //¹«Ë¾webÏÔʾµØÖ·
    lcd_enable();
 }
 
//--------------------------------------
//ÏÔʾ¹«Ë¾webµØÖ·
void write_web()
 {
    int i;
    for(i=0;i<0x10;i++)        //Ò»¹²16×Ö½ÚÊý¾Ý
       {
         write(web[i]);        //²é±í»ñÈ¡Êý¾Ý²¢µ÷ÓÃдһ¸ö×Ö½ÚÊý¾Ýº¯ÊýËÍLCDÏÔʾ
       }
 }

//--------------------------------------
//ÏÔʾ¹«Ë¾telº¯Êý
 void write_tel()
 {
    int i;
    for(i=0;i<0x10;i++)       //Ò»¹²ÏÔʾ16×Ö½ÚÊý¾Ý
       {
         write(tel[i]);       //²é±í»ñÈ¡Êý¾Ý²¢µ÷ÓÃдһ¸ö×Ö½ÚÊý¾Ýº¯ÊýËÍLCDÏÔʾ
       }
 }
 
//--------------------------------------
//дһ¸ö×Ö½ÚÊý¾Ýº¯Êý 
void write(char x)
 {
  PORTD=x;                   //´ýÏÔʾÊý¾ÝËÍPORTD¿Ú
  rs=1;                      //¸Ã×Ö½ÚÊý¾ÝΪÊý¾Ý£¬¶ø²»ÊÇÃüÁî
  rw=0;                      //´Ë´Î²Ù×÷Ϊд£¬¶ø²»ÊǶÁ
  e=0;                       //À­µÍʹÄÜÐźÅ
  delay();                   //±£³ÖʹÄÜÐźÅΪµÍÒ»¶Îʱ¼ä
  e=1;                       //À­¸ßʹÄÜÐźÅ£¬½¨Á¢LCD²Ù×÷ËùÐèÒªµÄÉÏÉýÑØ
 }

//--------------------------------------
//LCDÏÔʾÉèÖú¯Êý
void lcd_enable()
 {
   rs=0;                     //¸Ã×Ö½ÚÊý¾ÝΪÃüÁ¶ø²»ÊÇÊý¾Ý
   rw=0;                     //´Ë´Î²Ù×÷Ϊд£¬¶ø²»ÊǶÁ
   e=0;                      //À­µÍʹÄÜÐźÅ
   delay();                  //±£³ÖʹÄÜÐźÅΪµÍÒ»¶Îʱ¼ä
   e=1;                      //À­¸ßʹÄÜÐźţ¬½¨Á¢LCD²Ù×÷ËùÐèÒªµÄÉÏÉýÑØ
 }

//--------------------------------------
//ÑÓʱº¯Êý
void delay()
 {
   int i;
   for(i=0;i<5000;i++);
 }

[/code]


¹Ø×¢ÓÐÈË΢ÐŹ«ÖÚºÅ
Á˽â¸ü¶àÐÅÏ¢

sitemap¡¢µØÍ¼