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

標題: 1602 液晶時鐘 [打印本頁]

作者: flash007    時間: 2017-7-20 11:16
標題: 1602 液晶時鐘
#include <reg51.h>
#include <intrins.h>
sbit RS  =  P2^0;      //寄存器選擇輸入
sbit RW  =  P2^1;      //液晶讀/寫控制
sbit E  =  P2^2;      //液晶使能控制
void lcd_w_cmd(unsigned char com);
void lcd_w_dat(unsigned char dat);
void lcd_int();

unsigned char lcd[]="hello!";
unsigned char diz[]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8b,0x8d,0x8e,0x8f};       
void delay(unsigned int i)
{
  unsigned int k;
  for(k=0;k<i;k++);
}


void main()
{  int i;
        lcd_int();         //LCD初始化
          delay(20505);  
          while(1) {

                for(i=0;i<6;i++){
                          lcd_w_cmd(0x80+i);  //0x80代表第一行第一個,0xc0代表第二行第一個,可以往后加到F,F之后就無法顯示了
                        lcd_w_dat(lcd[i]);
                        lcd_w_cmd(0xc5+i);
                        lcd_w_dat(lcd[i]);
                }          
/*22222        for(i=16;i>=0;i--){
                        lcd_w_cmd(0x8F-i);  //0x80代表第一行第一個,0xc0代表第二行第一個,可以往后加到F,F之后就無法顯示了
                        lcd_w_dat('S');
                        delay(10505);
               
                        lcd_w_cmd(0x8F-i);
                        lcd_w_dat(0x00);  
               
               
                } */          
        }


}


void delay1()
{
  _nop_();
  _nop_();
  _nop_();
}
void lcd_int()
{
          lcd_w_cmd(0x3c);          //0011 1100  如果只能顯示一行,那就寫多次這個代碼,第一次可能是3寫進去了,C沒寫進去
           _nop_();
          lcd_w_cmd(0x3c);          //0011 1100
           _nop_();
          lcd_w_cmd(0x0c);          //0000 1110 低2位是控制閃爍,低1位是控制光標
           _nop_();       
          lcd_w_cmd(0x01);          //0000 0001 清屏幕指令,將以前的顯示內容清零
           _nop_();
          lcd_w_cmd(0x06);          //0000 1010 顯示模式設置:光標右移,字符不移
           _nop_();
          lcd_w_cmd(0x80);          //1000 0000
}

void lcd_w_cmd(unsigned char com)
{
           RW=0;          //從lcd寫指令或數據
           delay1();
          RS=0;          //輸入指令
        delay1();
           E=1;                  //讀取信息
           delay1();
           P1=com;
           delay1();
           E=0;                 //執行指令
           delay1();
           RW=1;         //從lcd讀取數據
           delay(255);
}
void lcd_w_dat(unsigned char dat)
{
  RW=0;
  delay1();
  RS=1;
  delay1();
  E=1;
  delay1();
  P1=dat;
  delay1();
  E=0;
  delay1();
  RW=1;
  delay(255);
}


作者: LI1997    時間: 2018-5-28 19:49
有沒有仿真原理圖啊
作者: yq1113    時間: 2020-11-1 10:23
如果用4排的液晶剩下2排顯示怎么加??




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1