久久久久久久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);
    }
 }
//-------------------------------------------
關閉窗口

相關文章

主站蜘蛛池模板: 日韩特级毛片 | 国产在线欧美 | 国产福利在线看 | 偷拍一区二区三区 | 激情久久网 | 一区二区三区四区在线播放 | 在线观看黄网站 | 国产剧情一区 | 日韩 欧美| 天天干狠狠干 | av网在线观看 | www.久久久| 国产一级黄色大片 | 国产手机在线视频 | 国产日韩免费 | 五月婷婷激情 | 一级片大全 | 国产精品久久久久久久免费看 | 一区二区久久 | 91国产视频在线观看 | 91福利网| 三级在线免费观看 | 91网站免费看 | 午夜美女福利视频 | 99视频| 性欧美精品 | 国产免费视频 | 美女福利网站 | 亚洲久久久久 | 亚洲特级片| 国产精彩视频 | 欧美日韩色 | 精品日韩一区二区三区 | 国产精品乱码一区二区三区 | 中文字幕免费在线 | 亚洲一区二区久久 | 久久五月婷 | 91精选视频| 这里都是精品 | 青青草av| 国产激情久久久 |