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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2759|回復: 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
復制代碼




回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区在线免费观看 | 国产午夜精品一区二区三区 | 日本一区二区三区免费观看 | 91av在线免费播放 | 中文字幕一区二区三区精彩视频 | 国产一区不卡 | 久久综合久色欧美综合狠狠 | 81精品国产乱码久久久久久 | 亚洲精品免费视频 | av国产在线观看 | 精品国产aⅴ | 久久一热 | 五月天国产在线 | 香蕉婷婷 | 在线国产视频观看 | 男女久久久 | 日日摸天天添天天添破 | 97色在线视频 | 一二区视频 | 久久蜜桃av一区二区天堂 | 成人av片在线观看 | 国产小视频在线观看 | 国产精品美女视频 | 91精品一区二区三区久久久久久 | 蜜桃视频一区二区三区 | 亚洲一区二区黄 | 日韩精品一区二区三区中文在线 | 欧美99 | 国产精品日韩欧美一区二区三区 | 亚洲区视频| 成人免费看黄 | 北条麻妃国产九九九精品小说 | 午夜精品在线观看 | 日韩国产在线 | 午夜精品久久久久久久久久久久久 | 黄色一级网 | 国产久| 免费成人高清 | 伦理二区| 欧美中文一区 | 成人欧美一区二区三区黑人孕妇 |