⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.h

📁 PIC16F877应用的AD转换主程序 并可以通过LCD显示
💻 H
字号:
#include<pic.h>
 __CONFIG(0x1832);  

#define rs RB1
#define rw RB2
#define e  RB3
const  char web[]={"ADconver result:"};
 char tel[4];
//unsigned char table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36};

void init();                   
void lcd_init();              
void write_web();             
void write_tel(char adresult);             
void write(char x);           
void lcd_enable();          
void delay();                 
void longdelay();
//---------------------------------------
//主函数

 
//---------------------------------------
//I/O口初始化函数
void init()
 {
   
    TRISB=0X00;                //设置B口为输出
    TRISD=0X00;                //设置D口为输出
 }

//---------------------------------------
//LCD初始化函数
void lcd_init()
 {   
    PORTD=0X1;                 //清除显示
    lcd_enable();
    PORTD=0X38;                //8位2行5*7点阵
    lcd_enable();
    PORTD=0X0C;                //显示开,光标开,闪烁
    lcd_enable();
    PORTD=0X06;                //文字不动,光标右移
    lcd_enable();
    PORTD=0X80;                
    lcd_enable();

 }
 
//--------------------------------------
//显web地址
void write_web()
 {
    int i;
    for(i=0;i<0x10;i++)        //一共16字节数据
       {
         write(web[i]);        //查表获取数据并调用写一个字节数据函数送LCD显示
       }
 }

//--------------------------------------
//显tel函数
 void write_tel(char adresult)
 {  char a,b;
     int i;
    a=(adresult&0xf0)>>4;
  
    tel[0]=a+48;
    tel[1]='.';
    a=adresult&0x0f;
    
    tel[2]=a+48;
    tel[3]='v';
    for(i=0;i<4;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<50;i++);
 }
void longdelay()
{
   long int c;
   for(c=0;c<50000;c++);
 delay(); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -