#include __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); //查表获取数据并调用写一个字节数据函数送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++); }
上一篇:LCD1602控制要领(pic单片机)
下一篇:PIC16F877A单片机的PWM输出程序
推荐阅读最新更新时间:2024-11-02 19:47