久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

89C52與LCD1602

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年04月21日   【字體:

 這兩天看了下C51的資料,熟悉一下語句,51的資源都還沒看,就急著寫了個這程序 ,很生硬的,總算是LCD1602工作并顯示起來了,

難點1:時序,難點2:LCD1602的11條指令;

時序對了,LCD1602基本上就能顯示了:(LCD1602的老是忙等待,所以把忙等待改成10MS延時程序了);

下面是程序:

//------------------------------------------- 
 #include<reg52.h>
 #include<intrins.h>

 #define dataport P0
 #define uchar unsigned char
 #define uint unsigned int
 
// sbit RS =P2^4;
// sbit RW =P2^3;
// sbit En =P2^2;
 sbit RS=P2^0;
 sbit RW=P2^1;
 sbit En=P2^2;
 void delay_ms(uchar time)
 {
  uchar i,j;
  for(i=time;i>0;i--)
  {
   for(j=85;j>0;j--)
   {;}
  }
 }
/*/----------------------------------------- 忙等
 void read_bf(void)
 {
  En=0;
  RS=0;
  RW=1;
  dataport=0xff;
  _nop_();
  _nop_();
  _nop_();
  En=1;
  while(dataport&0x80) ;

  En=0;
  }  */
 bit lcd_bf()
 {
   bit result;
  RS=0;
  RW=1;
  En=1;
  _nop_();
  _nop_();
  _nop_();
  result=(bit)(P0&0x80);
  En=0;
  return result;
 }
//-----------------------------------------寫命令
  void write_command(uchar command)
  {
  // read_bf();
  // while(lcd_bz());
   delay_ms(10);
  RW=0;
  RS=0;
  En=0;
  _nop_();
  _nop_(); 
  dataport=command;
  _nop_();
  _nop_();
  _nop_();
  En=1;
  _nop_();
  _nop_();
  En=0;
  }
//------------------------------------------寫數據
  void write_data(uchar data_)
  {
  // read_bf();
  // while(lcd_bz());
   delay_ms(10);
  RW=0;
  RS=1;
  En=0;
  _nop_();
  _nop_();
  dataport=data_;
  _nop_(); 
  _nop_();
  _nop_();
  En=1;
  _nop_();
  _nop_();
  En=0;
  }
//-------------------------------------------初始化
  void init_lcd(void)
  {      
   delay_ms(15);
   write_command(0x38);
  delay_ms(5);
  write_command(0x38);
  delay_ms(5);
  write_command(0x38);
  
  while(lcd_bf());
  write_command(0x38);  //8位數據雙行57
 // while(lcd_bf());
    // write_command(0x08);  //關顯示
  while(lcd_bf());
  write_command(0x01);  //清顯示
  while(lcd_bf());
  write_command(0x06);
  while(lcd_bf());
  write_command(0x0c);
 
 }

  void lcd_disp(uchar addr,uchar a_data)
  {
   write_command(addr);
  write_data(a_data);
  } 
//-------------------------------------------主函數
  void main()
  {
  // uchar ch[8]= {0x53,0x54,0x43,0x38,0x39,0x43,0x35,0x32};
   uchar ch[6]={"hello!"}  ;
  uchar ch_1[16]={" 1234567890abcde"}  ;
  uchar i,j,k;
  init_lcd();
  for(i=0;i<16;i++)
   lcd_disp(0x80+i,ch[i]) ;
  for(k=0;k<16;k++)
   lcd_disp(0xc0+k,ch_1[k]);

  for (i=0;i<16;i++)
   write_command(0x07) ;
  while(1)
    {
   for(j=0;j<10;j++)
   {
   write_command(0x1c);  //右移
   delay_ms(500);
   }
   delay_ms(500);
   for(k=0;k<10;k++)
   { 
   write_command(0x18);  //左移
   delay_ms(500);
   }
   delay_ms(500);
    }
 }
//-------------------------------------------
關閉窗口

相關文章

主站蜘蛛池模板: 欧美三区 | 免费看国产一级特黄aaaa大片 | 日本h片在线观看 | 成人av电影免费在线观看 | 午夜精品久久久久久久99黑人 | 国产精品av久久久久久毛片 | 久久99这里只有精品 | 久久不卡日韩美女 | www成年人视频 | 成人在线免费观看视频 | 91高清视频 | 久久久免费观看视频 | а_天堂中文最新版地址 | 日韩中文字幕在线观看 | 欧洲一级毛片 | 99re视频这里只有精品 | 四虎永久免费影院 | 欧美国产一区二区三区 | 久久久久国产一区二区三区 | 欧美精品成人一区二区三区四区 | 国产1区2区| 日韩欧美精品一区 | 国产一级片免费在线观看 | 第一福利社区1024 | 九九久久精品 | 国产资源一区二区三区 | 久久久久久国产精品 | 国产性网 | 欧美精品乱码久久久久久按摩 | 99久久久久久 | 国产精品一区二区av | heyzo在线 | 国产一区久久久 | 在线观看成年视频 | 日韩在线一区二区三区 | 国产99视频精品免视看9 | 亚洲欧美日韩精品久久亚洲区 | www.亚洲视频 | 成人av影院| 91视频入口| 亚洲喷水 |