欧美极品高清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