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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機學習筆記(九)液晶字幕顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:108531 發表于 2016-3-12 16:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 51hei人人 于 2016-3-12 16:47 編輯

                                                                                               


  1. LCD顯示 第一行顯示 welcome 第二行顯示 www.baidu.com

  2. C語言源程序:

  3. #include <reg52.h> //52單片機頭文件包含

  4. #include <intrins.h> //包換一些匯編指令的頭文件

  5. typedef unsigned char BYTE;//定義BYTE  為 unsigned char  型

  6. typedef unsigned int WORD;//定義WORD 為 unsigned int  型

  7. typedef bit BOOL;//定義BOOL 為 bit 型

  8. sbit rs=P1^0;//定義rs 為P1端口的第0位

  9. sbit rw=P1^1;//定義rw為P1端口的第1位

  10. sbit ep=P1^2;//定義ep為P1端口的第2位

  11. BYTE code dis1[]={"welcome"};//定義第一行要顯示的字符數組

  12. BYTE code dis2[]={"www.baidu.com"};//定義第二行要顯示的字符數組

  13. delay(BYTE ms) //延時函數

  14. {

  15.     BYTE i; //定義字節型變量i

  16.     while(ms--)//每循環一次將ms的值減1

  17.     {

  18.         for(i=0;i<250;i++)//for循環 循環250次

  19.         {

  20.             _nop_();//NOP語句

  21.             _nop_();//NOP語句

  22.             _nop_();//NOP語句

  23.             _nop_();//NOP語句

  24.         }

  25.     }

  26. }

  27. BOOL lcd_bz()   //LCD忙碌狀態檢測函數

  28. {

  29.     BOOL result; //定義結果位變量 result;

  30.     rs=0;    //P0第一位給0

  31.     rw=1;    //P0第二位給1

  32.     ep=1;    //P0第三位給1

  33.     _nop_();    //空語句用于延時

  34.     _nop_();    //空語句用于延時

  35.     _nop_();    //空語句用于延時

  36.     _nop_();    //空語句用于延時

  37.     result=(BOOL)(P0 & 0x80)    //將P0與0x80相與 結果轉換成BOOL型賦值給result

  38.     ep=0;//第三位給0

  39.     return result;//返回結果

  40. }

  41. lcd_wcmd(BYTE cmd)    //指令寫入函數

  42. {

  43.     whiel(lcd_bz()); //測試lcd是否忙碌

  44.     rs=0;rw=0;ep=0;//功能位選擇

  45.     _nop_();_nop_();//延時

  46.     P0=cmd;    //寫入指令

  47.     _nop_();_nop_();//延時

  48.     _nop_();_nop_();//延時

  49.     ep=1;//ep給1

  50.     _nop_();_nop_();//延時

  51.     _nop_();_nop_();//延時

  52.     ep=0;//ep給0

  53. }

  54. lcd_pos(BYTE pos)    //顯示位置設定函數

  55. {

  56.     lcd_wcmd(pos | 0x80); //將pos和0x80相或作為參數傳給lcd_wcmd

  57. }

  58. lcd_wdat(BYTE dat)    //字符寫入函數

  59. {

  60.     while(lcd_bz());//測試lcd是否忙碌

  61.     rs=1;rw=0;ep=0;//功能位選擇

  62.     P0=dat;//寫入字符

  63.     _nop_();_nop_();//延時

  64.     _nop_();_nop_();//延時

  65.     ep=1;//ep給1

  66.     _nop_();_nop_();//延時

  67.     _nop_();_nop_();//延時

  68.     ep=0;//ep給0

  69. }

  70. lcd_init() //LCD初始化函數

  71. {

  72.     lcd_wcmd(0x38);

  73.     delay(1); //延時

  74.     lcd_wcmd(0x0c);

  75.     delay(1);//延時

  76.     lcd_wcmd(0x06);

  77.     delay(1);//延時

  78.     lcd_wcmd(0x01); //清除LCD的顯示內容

  79.     delay(1);

  80. }

  81. main()

  82. {

  83.     BYTE i;//定義BYTE變量i

  84.     lcd_init(); //初始化LCD

  85.     delay(10);//延時

  86.     lcd_pos(4); //設置顯示位置為第一行的第5個字符

  87.     i=0;//i賦值為0

  88.     while(dis1[i]!='\0')//判斷是否到了字符串結尾

  89.     {

  90.         lcd_wdat(dis1[i]);//循環將字符寫入

  91.         i++;i自加指向下個字符

  92.     }

  93.     lcd_pos(0x40); //設置顯示位置為第二行第一個字符

  94.     i=0;//i賦值為0

  95.     while(dis2[i]!='\0') //判斷是否到字符串結尾

  96.     {

  97.         lcd_wdat(dis2[i]);//循環將字符寫入

  98.         i++;i自加指向下個字符

  99.     }

  100.     whiel(i); //無限循環

  101. }

  102. //實驗結果 液晶屏第一行顯示welcome 第二行顯示www.baidu.com
復制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩亚洲欧美在线观看 | 欧美一级在线视频 | 久久久精品国产sm调教 | 草逼视频网站 | 色虎网站 | 国产普通话对白 | 日本欧美久久久久免费播放网 | 亚洲第一视频网站 | 一级黄色免费视频 | av在线精品| 成人午夜小视频 | 成人福利在线观看 | 国产黄色免费观看 | 国产视频一区在线观看 | 亚洲男人天堂网 | 久久亚洲国产精品 | 天天做天天操 | 国产特黄 | 亚洲成人a v | 国产6区| 国产午夜精品视频 | 亚洲日本中文字幕 | 日韩免费高清视频 | 国产午夜视频在线观看 | 国产精品视频久久久 | 波多野结衣乳巨码无在线观看 | igao视频在线 | 四虎在线视频 | 日韩不卡av | 福利视频一区二区 | 欧美精品第一页 | 日本免费一级片 | 欧美日韩精品一区二区 | 欧美在线性爱视频 | 成人a在线| 日本特黄一级片 | 国产黄av | 中文字幕婷婷 | 在线观看av网站 | 在线观看黄色片 | 日本不卡视频 |