⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1602.txt

📁 有关节1602的知识很有用
💻 TXT
字号:
发一个1602滚动显示的C51程序,欢迎大家讨论。
功能:从左至右,分2行滚动显示:“www.willar.com”和“WELCOME TO WEINA”

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char

typedef bit BOOL  

sbit rs = P2^0; 
sbit rw = P2^1;
sbit ep = P2^2;

void delay(uchar);
void lcd_wcmd(uchar);
BOOL lcd_bz();
void lcd_pos(uchar);
void lcd_wdat(uchar);
void display(uchar,uchar *);

uchar code dis1[] = {" www.willar.com "};
uchar code dis2[] = {"WELCOME TO WEINA"};

void longdelay(uchar s)  //长延时
{
 while(s--)
 {
  delay(60);
 }
}

void delay(uchar ms)
{       // 延时子程序
 uchar i;
 while(ms--)
 {
  for(i = 0; i< 250; i++);
 }
}
 lcd_bz()
{       // 测试LCD忙碌状态
 BOOL result;
 rs = 0;
 rw = 1;
 ep = 1;
 result = (BOOL)(P0 & 0x80);
 ep = 0;
 return result; 
}

void lcd_wcmd(uchar cmd)
{       // 写入指令数据到LCD
 while(lcd_bz());
  rs = 0;
  rw = 0;
  ep = 0;
  P0 = cmd;
  ep = 1;
  ep = 0;  
}

void lcd_pos(uchar pos)
{       //设定显示位置
 lcd_wcmd(pos | 0x80);
}

void lcd_wdat(uchar dat) 
{       //写入字符显示数据到LCD
 while(lcd_bz());
  rs = 1;
  rw = 0;
  ep = 0;
  P0 = dat;
  ep = 1;
  ep = 0; 
}

void lcd_init()
{       //LCD初始化设定
 lcd_wcmd(0x38);   //function set
 delay(1);
 lcd_wcmd(0x38);   //function set
 delay(1);
 lcd_wcmd(0x08);   //display on/off
 delay(1);
 lcd_wcmd(0x01);   //清除LCD的显示内容
 delay(1);
 lcd_wcmd(0x06);   //entry mode set
 delay(1);
 lcd_wcmd(0x0c);   //entry mode set
 delay(1);
}

/*---------------
函数名称:display()
功能 :在LCD上显示数组的数据
说明 :先写显示地址,后写显示数据
调用 :lcd_wcmd(), lcd_pos()
入口参数:pos 写入的位置,q指向要写入的数据所在的数组
返回值 :无
----------------*/
void display(uchar pos, uchar *q)
{ 
 uchar i;
 //lcd_wcmd(0x01); //clear 
 delay(10);
 lcd_pos(pos);
 for(i=0;i<16;i++)
 {
  lcd_wdat(*q);
  q++;
  longdelay(2);
 } 
}

main()
{
 lcd_init();    // 初始化LCD   
 delay(10); 
 display(0x00,dis1);
 display(0x40,dis2);
 display(0x14,dis1);
 display(0x54,dis2);
 lcd_wcmd(0x07);   //entry mode set
 delay(1);
 while(1)
 { 
  display(0x00,dis1);
  //display(0x40,dis2);
  //display(0x14,dis1);
  //display(0x54,dis2);
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -