日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LCD1602显示程序理解

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LCD1602显示程序理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 /*2018年8月11日 18點30分,于福安公寓 2 功能:LCD1602顯示程序*/ 3 #include<reg52.h> 4 #define uchar unsigned char 5 #define uint unsigned int 6 uchar code table[] ="zhangshuaishuai"; 7 uchar code table1[] ="ce shi cheng xu"; 8 sbit lcdrw =P2^5; 9 sbit lcdrs =P2^6; 10 sbit lcde =P2^7; 11 void delay(uchar x) 12 { 13 uchar i,j; 14 for(i=x;i>0;i--) 15 for(j=110;j>0;j--); 16 } 17 //顯示程序的位置 18 /*void lcd_display_char(uchar x,uchar y,uchar date) 19 { 20 uchar address; 21 if(y ==1) 22 address =0x80+x; 23 else 24 address =0xc0+x; 25 } 26 */ 27 /*寫指令函數*/ 28 void lcd_write_cmd(uchar com) 29 { 30 lcdrs =0; //指令 31 P0 = com; 32 delay(1); 33 lcdrw =0;//寫有效 34 lcde =1; //由時序圖可知,當lcde為高電平之前就必須要將數據輸入進去,故而P0 = com;這句指令在其前面 35 delay(1); 36 lcde =0; 37 38 } 39 /*寫數據函數*/ 40 void lcd_write_data(uchar date) 41 { 42 P0 =date; 43 lcdrs =1; 44 delay(1); 45 lcdrw =0; 46 lcde =1; 47 delay(1); 48 lcde =0; 49 50 } 51 // 函數初始化 52 void init() 53 { 54 lcd_write_cmd(0x38);//設置8位格式;2行,5*7 55 lcd_write_cmd(0x0c);//整體顯示,關光標,不閃爍 56 // lcd_write_cmd(0x01); //清除屏幕顯示 57 lcd_write_cmd(0x06);//設定輸入方式,增量不移位 58 59 delay(1); 60 } 61 void main() 62 { 63 uchar i,j,num; 64 init(); 65 66 /* lcd_write_data(0x41); 67 lcd_write_data('B'); 68 lcd_write_data('C'); 69 while(1); //當這里沒有while(1);暫停語句時,就會出現滿屏的數據 ;當輸入多個字符時,比如'B','C'如上面,就會面屏出現同樣的數據,并且在這幾個字符中輪流變化 70 */ 71 72 lcd_write_cmd(0x80+0x13); //確定剛開始寫入第一行數據的位置 73 for(i =0;i<15;i++) //如果沒有確定要顯示的位置,LCd顯示屏默認就會從第一個字符開始 74 { 75 // lcd_display_char(0,0,table[i]) 76 77 lcd_write_data(table[i]); 78 delay(100); 79 80 // while(1); //如果在此處加上while(1)暫停語句時,就只會出現z這一個字符 81 } 82 // lcd_write_cmd(0x01); // 清屏指令 讓上面的字符顯示之后,再清屏 83 // delay(1000); //如果沒有這個延時程序,那么下面顯示的位置就不在你所設定的位置,會跑到第一行 84 85 lcd_write_cmd(0x80+0x53); //確定了下面要顯示內容的位置 確定剛開始寫入數據的位置 86 87 for(j =0;j<15;j++) 88 { 89 lcd_write_data(table1[j]); 90 delay(100); //動態顯示讓其延時,相當于 91 } 92 93 94 /*用于整屏向左移動的程序 由于是整個屏幕的向左移動,故而在將其所有要顯示的 95 內容全部顯示到不可見區域,然后統一按照移動屏幕的指令整體移動,每次移動也只移動一位*/ 96 for(num =0;num<18;num++) 97 { 98 lcd_write_cmd(0x18); //表示顯示整屏向左移動 99 delay(1000); // 每個100ms移動一位 100 } 101 102 while(1); //如果在此處加上while(1)暫停語句時,會正常顯示字符 103 104 } View Code

?

轉載于:https://www.cnblogs.com/wises/p/9539572.html

總結

以上是生活随笔為你收集整理的LCD1602显示程序理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。