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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 22598|回復: 7
收起左側

LCD1604液晶屏的單片機顯示程序

  [復制鏈接]
ID:11804 發表于 2017-5-30 14:32 | 顯示全部樓層 |閱讀模式
lcd1604顯示程序51單片機驅動,lcd1604和lcd1602操作是一樣的,就是多了兩行顯示,也就多了2個顯示地址;LCD1602行地址為80H,C0H
LCD1604行地址為80H,C0H,90H,D0H

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):
1604.jpg

單片機源程序:
#include <AT89X52.H>

#define lcd_data  P0
sbit rs=P2^0;      //寄存器類型選擇位
sbit rw=P2^1;      //數據讀寫類型控制位
sbit e=P2^2;       //下降沿使能控制位
sbit flag=ACC^7;   //LCD忙狀態判斷標志位
void wait(void);
void delay(unsigned int temp);
void initial(void);
unsigned char code seg[]={0x43,0x68,0x69,0x6E,0x61,0x20,0x55,0x6E,0x69,0x76,    //China University of Mining and
                            0x65,0x72,0x73,0x69,0x74,0x79,0x20,0x6F,0x66,0x20,  //Techlonogy    17--302
                                                                         0x4D,0x69,0x6E,0x69,0x6E,0x67,0x20,0x61,0x6E,0x64,
                                                                         0x20,0x20,0x54,0x65,0x63,0x68,0x6C,0x6F,0x6E,0x6F,0x67,
                                                                         0x79,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5C,0x5C,
                                                                         0x31,0x37,0x2D,0x2D,0x33,0x30,0x32,0x5C,0x5C,0x20,0x20,0x20};
void main(void){
      unsigned char data_index;
           unsigned char add_first,add_second,add_third,add_fourth;     //LCD行地址為80H,C0H,90H,D0H
      initial();        //初始化LCD
      while(1){     
                               data_index=0;add_first=0x80;add_second=0xC0;add_third=0x90;add_fourth=0xD0;
                               while(data_index<=15){   
                              rs=0;rw=0;lcd_data=add_first+data_index;e=1;e=0;    //第一行顯示
                                                                 wait();
                                                                 rs=1;rw=0;lcd_data=seg[data_index];e=1;e=0;
                                                                 wait();        
                                                                  data_index++;
                                   }
                                                  while(data_index<=31){                           //第二行顯示
                              rs=0;rw=0;lcd_data=add_second+data_index-16;e=1;e=0;
                                                                 wait();
                                                                 rs=1;rw=0;lcd_data=seg[data_index];e=1;e=0;
                                                                 wait();
                                                                  data_index++;
                                   }
                                                  while(data_index<=47){                          //第三行顯示
                              rs=0;rw=0;lcd_data=add_third+data_index-32;e=1;e=0;
                                                                 wait();
                                                                 rs=1;rw=0;lcd_data=seg[data_index];e=1;e=0;
                                                                 wait();        
                                                                  data_index++;
                                   }
                                                  while(data_index<=63){                        //第四行顯示
                              rs=0;rw=0;lcd_data=add_fourth+data_index-48;e=1;e=0;
                                                                 wait();
                                                                 rs=1;rw=0;lcd_data=seg[data_index];e=1;e=0;
                                                                 wait();        
                                                                  data_index++;
                                   }
          }
}
void initial(void){
           rs=0;rw=0;lcd_data=0x38;   //置功能,8位數據位,2行顯示,5×7點陣
                          e=1; e=0;wait();
                          rs=0;rw=0;lcd_data=0x06;   //地址計數器自動加1,顯示屏不移動
                          e=1;e=0;wait();
                          rs=0;rw=0;lcd_data=0x0c;   //顯示開,光標顯示,光標閃爍
                          e=1;e=0;wait();
                          rs=0;rw=0;lcd_data=0x01;   //清顯示,光標復位到00H
                          e=1;e=0;wait();
}
void wait(void){                   //判斷LCD處于空閑狀態
             do{
                  rs=0;rw=1;
                  e=1;
                                                e=0;delay(0);
                  P0_7=1;flag=P0_7;
               }while(flag==0);

}
void delay(unsigned int temp){
      unsigned int jj;
                for(jj=0;jj<=temp;jj++)
                ;
}
0.png

下載:
LCD1604.zip (258.92 KB, 下載次數: 119)
回復

使用道具 舉報

ID:234782 發表于 2018-4-2 20:05 | 顯示全部樓層
一不小心點了下載
555555
回復

使用道具 舉報

ID:312160 發表于 2018-4-20 08:39 | 顯示全部樓層
下載下來的不是完整的?
回復

使用道具 舉報

ID:344199 發表于 2018-6-3 20:35 | 顯示全部樓層

一不小心點了下載
回復

使用道具 舉報

ID:119140 發表于 2018-7-2 14:29 | 顯示全部樓層
只能顯示第一行和第三行,不知道什么原因。
回復

使用道具 舉報

ID:409773 發表于 2018-10-15 10:14 | 顯示全部樓層
請問能四行顯示中文嗎
回復

使用道具 舉報

ID:430471 發表于 2018-11-21 12:20 | 顯示全部樓層
新手下載來學習一下,謝謝!
回復

使用道具 舉報

ID:276663 發表于 2021-6-15 16:02 | 顯示全部樓層
1160440028 發表于 2018-7-2 14:29
只能顯示第一行和第三行,不知道什么原因。

我測試也是只顯示1和3兩行
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费影院 | 九九久久精品 | www.中文字幕.com | 色资源站 | 福利片在线观看 | 国产免费福利小视频 | 日韩精品一区二区三区视频播放 | 欧美二三区 | 在线观看a视频 | 成人国产精品久久久 | 国产日韩一区二区三区 | 亚洲欧美综合网 | 国产成视频在线观看 | 91一区二区三区 | 欧美日韩手机在线观看 | 操操网站 | 在线观看www高清视频 | www亚洲一区 | 69xxx免费| 婷婷中文字幕 | 色欧美片视频在线观看 | 国产精品一区三区 | 久久亚洲一区二区 | 国产精品视频一区二区三区, | 精品一区二区三区在线视频 | 天天精品综合 | 日韩视频精品在线 | 美日韩免费视频 | 妹子干综合 | 久久精品国产久精国产 | 一区二区国产精品 | 有码一区 | 在线成人一区 | 一区二区三区精品视频 | 免费精品视频在线观看 | 91视频进入 | 天天看天天操 | 久久成人精品视频 | 电影在线 | 国产精品一级 | 欧美精品在线视频 |