日本久久久久曰精品免费,国产精品一级二级三级,乱子伦av无码中文字幕s,国产成人精品一区免费视频

技術熱線: 4007-888-234

技術支持

QLdsPIC3]LCD1602[C30+dsPIC30F6014A]

更新時間: 2019-03-23

深圳市英銳恩科技有限公司:臺灣麥肯單片機(Micon MDT單片機)亞太地區A級代理商

QLdsPIC3]LCD1602[C30+dsPIC30F6014A]
//實驗目的:熟悉LCD的使用方法
//LCD循環顯示本產品名稱和公司網站地址
//硬件要求:跳線全部跳好
//所有撥碼開關置OFF
//調節電位器VR2到LCD1602能正常顯示。

#include             //dsPIC30F6014標準頭文件

  _FOSC(CSW_FSCM_OFF & XT_PLL4);  //4倍頻晶振,Failsafe 時鐘關閉
  _FWDT(WDT_OFF);                 //關閉看門狗定時器
  _FBORPOR(PBOR_OFF & MCLR_EN);   //掉電復位禁止,MCLR復位使能。
  _FGS(CODE_PROT_OFF);            //代碼保護禁止


#define rs LATBbits.LATB4          //定義LCD控制位(注意這里只能用LATB寄存器,不能直接用PORTB寄存器)
#define rw LATBbits.LATB5
#define e  LATBbits.LATB6
 const int web[ ]={' ','W','W','W','.','P','I','C','1','6','.','C','O','M',' ',' '};
//定義公司web地址
const int name[ ]={' ',' ',' ',' ','Q','L','d','s','P','I','C','3',' ',' ',' ',' '};
//定義公司產品名稱

void init();                   //申明I/O口初始化函數
void lcd_init();               //申明LCD初始化函數
void write_web();              //申明顯示公司web地址函數
void write_name();             //申明顯示產品名字函數
void write(unsigned int x);    //申明顯示1字節數據函數
void lcd_enable();             //申明LCD顯示設置函數
void delay();                  //申明延時函數

//---------------------------------------
//主函數
int main(void)
 {
    while(1)
      {
        delay();
        delay();
        delay();
        delay();
        delay();
        init();                //調用I/O口初始化函數
        lcd_init();            //調用LCD初始化函數
        write_name();          //調用顯示產品名字函數
        PORTD=0X00C0;          //設置第2行顯示地址
        lcd_enable();          //調用LCD顯示設置函數
        write_web();           //調用顯示公司tel函數
          while(1);
         
      }
 }
 
//---------------------------------------
//I/O口初始化函數
void init()
 {
    TRISB=0X0000;              //設置B口為輸出
    TRISD=0X0000;              //設置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;                //產品名字顯示地址
    lcd_enable();
 }
 
//--------------------------------------
//顯示公司web地址
void write_web()
 {
    unsigned char i,j;
    for(i=0;i<16;i++)          //一共16字節數據
       {
         write(web[i]);        //查表獲取數據并調用寫一個字節數據函數送LCD顯示
         for(j=0;j<5;j++)      //延時一段時間(主要是為了控制顯示的速度)
          {delay();}
       }
 }

//--------------------------------------
//顯示產品名字函數
 void write_name()
 {
    unsigned char i,j;
    for(i=0;i<0x10;i++)       //一共顯示16字節數據
       {
       
         write(name[i]);      //查表獲取數據并調用寫一個字節數據函數送LCD顯示
         for(j=0;j<5;j++)
          {delay();}
       }
 }
 
//--------------------------------------
//寫一個字節數據函數
//在電平發生改變后需要插入一段延時時間,否則LCD反應不過來。
void write(unsigned int x)
 {
  PORTD=x;                   //待顯示數據送PORTD口
  delay();                  
  rs=1;                      //該字節數據為數據,而不是命令
  delay();
  rw=0;                      //此次操作為寫,而不是讀
  delay();
  e=0;                       //拉低使能信號
  delay();                   //保持使能信號為低一段時間
  e=1;                       //拉高使能信號,建立LCD操作所需要的上升沿
  delay();
 }


//--------------------------------------
//LCD顯示設置函數
//在電平發生改變后需要插入一段延時時間,否則LCD反應不過來。
void lcd_enable()
 {
   delay();
   rs=0;                     //該字節數據為命令,而不是數據
   delay();
   rw=0;                     //此次操作為寫,而不是讀
   delay();
   e=0;                      //拉低使能信號
   delay();                  //保持使能信號為低一段時間
   e=1;                      //拉高使能信號,建立LCD操作所需要的上升沿
   delay();
}

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



404
返回首頁 |  返回上一頁
主站蜘蛛池模板: 扶绥县| 琼海市| 普定县| 西乌| 亚东县| 科尔| 酒泉市| 江津市| 岳池县| 辽宁省| 富顺县| 义乌市| 泰安市| 酉阳| 池州市| 庄浪县| 万载县| 阿鲁科尔沁旗| 进贤县| 平果县| 富平县| 南开区| 义乌市| 临清市| 五莲县| 赫章县| 岑巩县| 辽宁省| 游戏| 文化| 大悟县| 栖霞市| 湘潭县| 武城县| 佛冈县| 宁化县| 华亭县| 阳曲县| 临高县| 桂阳县| 紫阳县|