欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 983|回復: 0
收起左側

LCD1602顯示

[復制鏈接]
ID:434028 發表于 2018-11-27 11:03 | 顯示全部樓層 |閱讀模式
#include <reg51.h>
#include <intrins.h>

sbit rs= P3^5;    //寄存器類型,1表示數據寄存器,2表示指令寄存器
sbit rw = P3^6;   //讀寫選擇  1表示讀,0表示寫
sbit ep = P3^7;   //讀寫使能,下降沿使能


void delay(unsigned char ms)     //延時 n  ms
{
unsigned char i;
while(ms--)
{
  for(i = 0; i<123; i++)   
  {
   ;
  }   
}
}

bit lcd_bz()           //判斷LCD是否忙碌
{
bit result;
rs = 0;
rw = 1;
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P1 & 0x80);
ep = 0;
return result;
}
void lcd_wcmd(unsigned char cmd)     //寫指令
{
while(lcd_bz());//判斷LCD是否忙碌
rs = 0;
rw = 0;
ep = 0;
_nop_();
_nop_();
P1 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}

void lcd_pos(unsigned char pos)      //顯示地址
{
lcd_wcmd(pos | 0x80);
}
             //寫數據
void lcd_wdat(unsigned char dat)
{
while(lcd_bz());//判斷LCD是否忙碌
rs = 1;
rw = 0;
ep = 0;
P1 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}

void lcd_wstr(const unsigned char *s)
{
  unsigned int x,y,z;
  x=number/10000;     //x 1,2,3,4
  y=(number/1000)%10;  // y 2
  z=(number/100)%10;     //z 3
  write_LCD_DATA1(int2charLCD[x]);
  display_LCD_string(".");
  write_LCD_DATA1(int2charLCD[y]);
  write_LCD_DATA1(int2charLCD[z]);
}

void lcd_init()          //LCD初始化
{
lcd_wcmd(0x38);    //功能設定
delay(1);
lcd_wcmd(0x0c);    //顯示器開關
delay(1);
lcd_wcmd(0x06);    //設定進入模式
delay(1);
lcd_wcmd(0x01);    //清除顯示屏,把光標移至左上角
delay(1);
}

void main(void)
{
lcd_init();// LCD初始化
delay(10);
lcd_pos(0x01);//設置顯示位置
//i = 0;
while(1){
  lcd_wstr("abcdefg");
  lcd_pos(0x42);
  lcd_wstr("abcdefg");
  lcd_wcmd(0x01);
  delay(3);
}
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表