您的位置 首页 测评

MSP430单片机驱动LCD1602液晶

实验目的:熟悉LCD的使用方法LCD循环显示本站网址和电话硬件要求:LCD直接与单片机的A口和D口相连接所有拨码开关置O

//试验意图:了解LCD的使用方法

//LCD循环显现本站网址和电话   //硬件要求:LCD直接与单片机的A口和D口相连接   //一切拨码开关置OFF   //调理电位器,调理LCD亮度。   #include<msp430x14x.h>   #define set(x) P6OUT |=x   #define clr(x) P6OUT &=~x   #define rs BIT2   #define rw BIT3   #define e  BIT4   const char web[ ]={ ,w,w,w,.,5,1,h,e,i,.,c,0,m, };   //显现公司web地址   const char tel[ ]={T,E,L,:,1,5,3,1,2,7,6,9,2,6,4, };   //显现公司电话号码   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()   {   init();                //调用I/O口初始化函数     lcd_init();            //调用LCD初始化函数   write_web();           //调用显现公司web地址函数   P4OUT=0Xc0;//PORTD=0XC0;            //设置第2行显现地址   lcd_enable();          //调用LCD显现设置函数   write_tel();           //调用显现公司tel函数   while(1);   }   //---------------------------------------   //I/O口初始化函数   void init()   {   //ADCON1=0X07;               //设置A口为一般I/O口   //TRISA=0X00;                //设置A口为输出   //TRISD=0X00;                //设置D口为输出   P4DIR=0xff;   P6DIR=0x1c;//设置A口为输出   WDTCTL = WDTPW + WDTHOLD;  //杀狗   }   //---------------------------------------   //LCD初始化函数   void lcd_init()   {   P4OUT=0x01;//PORTD=0X1;                 //铲除显现   lcd_enable();   P4OUT=0x38;//PORTD=0X38;                //8位2行5*7点阵   lcd_enable();   P4OUT=0x0e;//PORTD=0X0e;                //显现开,光标开,闪耀   lcd_enable();   P4OUT=0x06;//PORTD=0X06;                //文字不动,光标右移   lcd_enable();   P4OUT=0x80;//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)   {   P4OUT=x;//PORTD=x;                   //待显现数据送PORTD口   set(rs);//rs=1;                      //该字节数据为数据,而不是指令   clr(rw);//rw=0;                      //此次操作为写,而不是读   clr(e);//e=0;                       //拉低使能信号   delay();                   //坚持使能信号为低一段时间   set(e);//e=1;                       //拉高使能信号,树立LCD操作所需求的上升沿   }   //--------------------------------------   //LCD显现设置函数   void lcd_enable()   {   clr(rs);                     //该字节数据为指令,而不是数据   clr(rw);                     //此次操作为写,而不是读   clr(e);                      //拉低使能信号   delay();                  //坚持使能信号为低一段时间   set(e);                      //拉高使能信号,树立LCD操作所需求的上升沿   }   //--------------------------------------   //延时函数   void delay()   {   unsigned int i;   for(i=0;i<10000;i++);   } 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/318547.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部