标题: lcd1602单片机驱动程序 [打印本页]

作者: 750548292    时间: 2017-11-24 11:14
标题: lcd1602单片机驱动程序
lcd1602驱动程序
单片机源程序如下:
  1. #include<lcd1602.h>
  2. #include<reg52.h>
  3. #include<delay.h>
  4. #include<string.h>
  5. #include<intrins.h>

  6. #define uchar unsigned char

  7. sbit RS = P2^0;
  8. sbit RW = P2^1;
  9. sbit E = P2^2;

  10. void check_busy(void)
  11. {
  12.         uchar dt;
  13.         do
  14.         {
  15.                 dt=0xff;
  16.                 E=0;
  17.                 RS=0;
  18.                 RW=1;
  19.                 E=1;
  20.                 dt=P0;
  21.         }while(dt&0x80);
  22.         E=0;
  23. }

  24. void LCD_Write_Cmd(unsigned char cmd) //写命令
  25. {
  26.         check_busy();
  27.         E=0;
  28.         RS=0;
  29.         RW=0;
  30.         P0=cmd;
  31.         E=1;
  32.         _nop_();
  33.         E=0;
  34.         delay(1);
  35. }

  36. void LCD_Write_Dat(unsigned char dat)//写数据
  37. {
  38.         check_busy();
  39.         E=0;
  40.         RS=1;
  41.         RW=0;
  42.         P0=dat;
  43.         E=1;
  44.         _nop_();
  45.         E=0;
  46.         delay(1);
  47. }
  48. //LCD初始化
  49. void LCD_Init(void)
  50. {
  51.         LCD_Write_Cmd(LCD_Clear); // 清屏
  52.         delayms(2);
  53.         LCD_Write_Cmd(LCD_C_BLK);//让光标闪烁
  54.         delayms(2);
  55.         LCD_Write_Cmd(LCD_S_RMove);
  56.         delayms(2);
  57.         LCD_Write_Cmd(LCD_Double57);//双行显示
  58.         delayms(2);
  59. }

  60. void LCD_String(unsigned char addr,unsigned char *s)
  61. {
  62.         LCD_Write_Cmd(addr);
  63.         while(*s>0)
  64.         {
  65.                 LCD_Write_Dat(*s++);
  66.                 delay(100);
  67.         }
  68. }
  69. void LCD_Write_VarDat(char addr,float num)
  70. {
  71.         int temp;
  72.         char Q,B,S,G;
  73. ……………………

  74. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
lcd1602.rar (1.39 KB, 下载次数: 9)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1