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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1948|回復: 0
打印 上一主題 下一主題
收起左側

LCD1602學習—Proteus仿真(顯示操作)

[復制鏈接]
跳轉到指定樓層
樓主
ID:937858 發表于 2021-7-24 18:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學習關鍵:先看懂液晶操作時序圖(寫操作:寫命令、寫數據)
讀狀態
輸入
RS=L,R/W=H,E=H
輸出
D0—D7=狀態字
寫指令
輸入
RS=L,R/W=L,D0—D7=指令碼,E=高脈沖
輸出
讀數據
輸入
RS=H,R/W=H,E=H
輸出
D0—D7=數據
寫數據
輸入
RS=H,R/W=L,D0—D7=數據,E=高脈沖
輸出


由時序圖可知,寫操作時(包括寫指令、寫數據),RS=0;RW=0;再進行I/O口寫操作,然后使能端口完成一次高脈沖(——高——低),這是液晶就會執行寫操作的內容;
1602液晶模塊內部的控制器共有11條控制指令,如表10-14所示:
序號
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清顯示
0
0
0
0
0
0
0
0
0
1
2
光標返回
0
0
0
0
0
0
0
0
1
*
3
置輸入模式
0
0
0
0
0
0
0
1
I/D
S
4
顯示開/關控制
0
0
0
0
0
0
1
D
C
B
5
光標或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符發生存貯器地址
0
0
0
1
字符發生存貯器地址
8
置數據存貯器地址
0
0
1
顯示數據存貯器地址
9
讀忙標志或地址
0
1
BF
計數器地址
10
寫數到CGRAM或DDRAM)
1
0
要寫的數據內容
11
從CGRAM或DDRAM讀數
1
1
讀出的數據內容


思路:

1、控制液晶顯示輸出,需要對其進行寫數據(寫數據前,同樣需要先告訴液晶你下一步要在哪里寫,因此寫數據前,要寫命令先設定數據指針)
程序設計方式:
write_com();//寫命令函數,
write_date();//寫數據函數

2、由于要先進行初始化,(初始化實際就是對液晶寫指令,告訴其工作方式等)因此初始化函數里面自然就需要調用寫命令函數write_com();
程序結構如下:
int init()
{
  EN = 0;
  write_com(0X38);//設置16*2顯示,5*7點陣,8位數據接口
  write_com(0X0C);//設置開顯示,不顯示光標
  write_com(0X06);//寫一個字符時,整屏右移
  write_com(0X01);//顯示清零
  return 0;
} 
主函數部分程序結構:
int main()
{
  init();//調用初始化函數
  write_com(0x80);//調用寫指令函數,設置寫數據開始指針(第一行)
  for(x=0;x<6;x++)//數據寫入循環程序
  {
    write_date(table[x]);
    delay(150);
  }
  write_com(0x80+0x40); ;//調用寫指令函數,設置寫數據開始指針(第二行)
  for(x=0;x<17;x++)//數據寫入循環程序
  {
    write_date(table1[x]);
    delay(150);
  }
  while(1);
return 0;
}

完整程序如下:
1 #include<reg52.h> 2     int init();    //聲明初始化函數 3     int write_com(unsigned char);//聲明寫命令函數 4     int write_date(unsigned char);//聲明寫數據函數 5     int delay(unsigned char);//聲明延遲函數 6     unsigned char x; 7     sbit RS = P1^0; 8     sbit RW = P1^1; 9     sbit EN = P1^2;10     unsigned char code table[]="HELLO!";11     unsigned char code table1[]="MY name is Terry!";12 13 int main(void)//主函數14 {    15     init();16     write_com(0x80);    17     for(x=0;x<6;x++)18     {19          write_date(table[x]);20         delay(150);21     }22     write_com(0x80+0x40);    23     for(x=0;x<17;x++)24     {25          write_date(table1[x]);26         delay(150);27     }28     while(1);            29     return 0;30 }31 32 int init()//初始化函數體33 {34     EN = 0;35     write_com(0X38);//設置16*2顯示,5*7點陣,8位數據接口36     write_com(0X0C);//設置開顯示,不顯示光標37     write_com(0X06);//寫一個字符時,整屏右移38     write_com(0X01);//顯示清零39     return 0;40 }41 42 int write_com(unsigned char com)//寫命令的函數體43 {44     RS = 0;45     RW = 0;46     P0 = com;47     delay(5);48     EN = 1;49     delay(5);50     EN = 0;51     return 0;        52 }53 54 int write_date(unsigned char date)//寫數據的函數體55 {56     RS = 1;57     RW = 0;58     P0 = date;59     delay(5);60     EN = 1;61     delay(5);62     EN = 0;63     return 0;        64 }65 66 int delay(unsigned char xms)67 {68     unsigned char x,y;69     for(x=xms;x>0;x--)70         for(y=110;y>0;y--);71     return 0;72 }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 第一区在线观看免费国语入口 | 美国av片在线观看 | 国产精品视频免费观看 | 北条麻妃av一区二区三区 | 91伦理片 | 久热国产精品视频 | 精品国产一区二区三区av片 | 在线一级片 | 视频精品一区二区三区 | 国产精品视频免费观看 | 欧美精品片 | 国产在线视频99 | 亚洲精品综合一区二区 | 国产精品成人一区二区 | 在线午夜 | 亚洲视频在线一区 | 国产精品视频免费 | av先锋资源| 九九看片 | 国产高清精品网站 | 国产成人在线一区 | 99精品国产一区二区青青牛奶 | 91综合在线观看 | aaa大片免费观看 | 天天操天天插 | 久久久久久999 | 成人精品鲁一区一区二区 | 久久国产精品一区二区三区 | 欧美精品v国产精品v日韩精品 | 欧美精品久久久 | 日本精品一区二区三区视频 | 国产精品av久久久久久毛片 | 日韩在线观看网站 | 午夜av一区二区 | 久久久久成人精品免费播放动漫 | 欧美淫片| 欧美 日韩 中文 | 国产精品国产三级国产aⅴ无密码 | 亚洲精品视频在线 | 一级片免费视频 | 青春草在线 |