亚洲一区二区三区国产日韩欧美_日韩无码动漫精品一区_欧美日韩另类视频在线_国产极品美女扒开粉嫩小泬91_无遮挡又爽又刺激的视频_综合高清亚洲无码_天天躁夜夜躁狠狠85台湾_一区二区日韩精选_精品国产第一网站_先锋影音中文字幕51啪啪

新聞資訊
LCD1602顯示程序[PIC16F877A+PICC]
2010-11-29


[code="c"]

//實驗目的:熟悉LCD的使用方法
//LCD循環(huán)顯示本站網址和電話
//硬件要求:LCD直接與單片機的A口和D口相連接
//所有撥碼開關置OFF
//調節(jié)電位器,調節(jié)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口初始化函數(shù)
void lcd_init();               //申明LCD初始化函數(shù)
void write_web();              //申明顯示公司web地址函數(shù)
void write_tel();              //申明顯示公司tel函數(shù)
void write(char x);            //申明顯示1字節(jié)數(shù)據(jù)函數(shù)
void lcd_enable();             //申明LCD顯示設置函數(shù)
void delay();                  //申明延時函數(shù)

//---------------------------------------
//主函數(shù)
void main()
 {
    while(1)
      {
        init();                //調用I/O口初始化函數(shù)
        lcd_init();            //調用LCD初始化函數(shù)
        write_web();           //調用顯示公司web地址函數(shù)
        PORTD=0XC0;            //設置第2行顯示地址
        lcd_enable();          //調用LCD顯示設置函數(shù)
        write_tel();           //調用顯示公司tel函數(shù)
      }
 }
 
//---------------------------------------
//I/O口初始化函數(shù)
void init()
 {
    ADCON1=0X07;               //設置A口為普通I/O口
    TRISA=0X00;                //設置A口為輸出
    TRISD=0X00;                //設置D口為輸出
 }

//---------------------------------------
//LCD初始化函數(shù)
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字節(jié)數(shù)據(jù)
       {
         write(web[i]);        //查表獲取數(shù)據(jù)并調用寫一個字節(jié)數(shù)據(jù)函數(shù)送LCD顯示
       }
 }

//--------------------------------------
//顯示公司tel函數(shù)
 void write_tel()
 {
    int i;
    for(i=0;i<0x10;i++)       //一共顯示16字節(jié)數(shù)據(jù)
       {
         write(tel[i]);       //查表獲取數(shù)據(jù)并調用寫一個字節(jié)數(shù)據(jù)函數(shù)送LCD顯示
       }
 }
 
//--------------------------------------
//寫一個字節(jié)數(shù)據(jù)函數(shù) 
void write(char x)
 {
  PORTD=x;                   //待顯示數(shù)據(jù)送PORTD口
  rs=1;                      //該字節(jié)數(shù)據(jù)為數(shù)據(jù),而不是命令
  rw=0;                      //此次操作為寫,而不是讀
  e=0;                       //拉低使能信號
  delay();                   //保持使能信號為低一段時間
  e=1;                       //拉高使能信號,建立LCD操作所需要的上升沿
 }

//--------------------------------------
//LCD顯示設置函數(shù)
void lcd_enable()
 {
   rs=0;                     //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù)
   rw=0;                     //此次操作為寫,而不是讀
   e=0;                      //拉低使能信號
   delay();                  //保持使能信號為低一段時間
   e=1;                      //拉高使能信號,建立LCD操作所需要的上升沿
 }

//--------------------------------------
//延時函數(shù)
void delay()
 {
   int i;
   for(i=0;i<5000;i++);
 }

[/code]


關注有人微信公眾號
了解更多信息