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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1492|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)LCD1602之簡易萬年歷源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:720331 發(fā)表于 2020-4-1 16:28 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
這是小單采集到關(guān)于如何在LCD1602上顯示日歷表的一個(gè)51小程序,在這里和大家分享下,希望能幫助到有需要的師兄。LCD1602可以簡單的顯示一些字母數(shù)字,但是對于漢字來說,顯示起來還是不太好,不怎么好顯示,畢竟像素比較低,所以這次我們的程序里面用的是英文字母來代替漢字。

單片機(jī)源程序如下:
  1. /*******lcd.h*******/
  2. #ifndef _LCD_H_
  3. #define _LCD_H_
  4. #include <reg51.h>
  5. #include <intrins.h>

  6. sbit RS = P2^6;
  7. sbit RW = P2^5;
  8. sbit EN = P2^7;

  9. #define RS_CLR  RS = 0
  10. #define RS_SET  RS = 1
  11. #define RW_CLR  RW = 0
  12. #define RW_SET  RW = 1
  13. #define EN_CLR  EN = 0
  14. #define EN_SET  EN = 1
  15. #define dataport  P0
  16. #define uchar unsigned char

  17. extern void DelayUs2x(uchar t);
  18. extern void DelayMs(uchar t);
  19. extern void LCD_Write_COM(uchar com);           //寫指令
  20. extern void LCD_Write_Data(uchar Data);
  21. extern void LCD_Clear();
  22. extern void LCD_Write_String(uchar x, uchar y, uchar* s);
  23. extern void LCD_Write_Char(uchar x, uchar y, uchar c);
  24. extern void LCD_Init();

  25. #endif

  26. /*****lcd.c********/
  27. #include "lcd.h"

  28. void DelayUs2x(uchar t)
  29. {
  30.     while(--t);
  31. }


  32. void DelayMs(uchar t)
  33. {
  34.     while(t--)
  35.     {
  36.         DelayUs2x(245);
  37.         DelayUs2x(245);
  38.     }
  39. }


  40. /* bit LCD_Check_busy(void)
  41. {
  42.    dataport = 0xff;
  43.    RS_CLR;
  44.    RW_SET;
  45.    EN_CLR;
  46.    _nop_();
  47.    EN_SET;
  48.    return (bit)(dataport&0x80);
  49. } */


  50. //寫指令
  51. void LCD_Write_COM(uchar com)
  52. {
  53.     DelayMs(5);
  54.     RS_CLR;
  55.     RW_CLR;
  56.     EN_SET;
  57.     dataport = com;
  58.     _nop_();
  59.     EN_CLR;
  60. }



  61. //寫數(shù)據(jù)
  62. void LCD_Write_Data(uchar Data)
  63. {
  64.     DelayMs(5);
  65.     RS_SET;
  66.     RW_CLR;
  67.     EN_SET;
  68.     dataport = Data;
  69.     _nop_();
  70.     EN_CLR;
  71. }



  72. //清屏
  73. void LCD_Clear()
  74. {
  75.     LCD_Write_COM(0x01);
  76.     DelayMs(5);
  77. }



  78. //輸入字符,x為橫坐標(biāo),y為縱坐標(biāo)
  79. void LCD_Write_String(uchar x, uchar y, uchar* s)
  80. {
  81.     if(y == 0)
  82.     {
  83.         LCD_Write_COM(0x80+x);
  84.     }
  85.     else
  86.     {
  87.         LCD_Write_COM(0xC0+x);
  88.     }
  89.     while(*s)
  90.     {
  91.         LCD_Write_Data(*s);
  92.         s++;
  93.     }
  94. }



  95. //輸入字符,x為橫坐標(biāo),y為縱坐標(biāo)
  96. void LCD_Write_Char(uchar x, uchar y, uchar c)
  97. {
  98.     if(y == 0)
  99.     {
  100.         LCD_Write_COM(0x80+x);
  101.     }
  102.     else
  103.     {
  104.         LCD_Write_COM(0xC0+x);
  105.     }
  106.     LCD_Write_Data(c);
  107. }



  108. void LCD_Init()                   //LCD初始化子程序
  109. {
  110.     EN_CLR;
  111.     LCD_Write_COM(0x38);         //設(shè)置顯示模式
  112.     DelayMs(5);
  113.     LCD_Write_COM(0x38);         //設(shè)置顯示模式
  114.     DelayMs(5);
  115.     LCD_Write_COM(0x38);         //設(shè)置顯示模式
  116.     DelayMs(5);
  117.     LCD_Write_COM(0x38);         //設(shè)置顯示模式
  118.     DelayMs(5);
  119.     LCD_Write_COM(0x0c);         //開顯示不顯示光標(biāo),光標(biāo)閃爍
  120.     LCD_Write_COM(0x06);         //寫一個(gè)指針加一
  121.     LCD_Write_COM(0x01);         //清屏
  122.     LCD_Write_COM(0x80);         //設(shè)置數(shù)據(jù)指針起點(diǎn)
  123. }


  124. /*****main.c*******/
  125. #include "lcd.h"
  126.         
  127. uchar hour = 21, min = 43, sec = 0, count, date = 28, monse = 4;
  128. unsigned int year = 2017;

  129. void init_T0()
  130. {
  131.     EA = 1;
  132.     ET0 = 1;
  133.     TMOD = 0X01;
  134.     TH0 = 0X3C;
  135.     TL0 = 0XB0;
  136.     TR0 = 1;
  137. }

  138. void main()
  139. {
  140.     init_T0();
  141.     LCD_Init();
  142.     LCD_Clear();
  143.     while(1)
  144.     {
  145.         LCD_Write_String(0, 0, "Date:");
  146.         LCD_Write_Char(5, 0, year/1000+48);
  147.         LCD_Write_Char(6, 0, year%1000/100+48);
  148.         LCD_Write_Char(7, 0, year%100/10+48);
  149.         LCD_Write_Char(8, 0, year%10+48);
  150.         LCD_Write_Char(9, 0, '-');
  151.         LCD_Write_Char(10, 0, monse/10+48);
  152.         LCD_Write_Char(11, 0, monse%10+48);
  153.         LCD_Write_Char(12, 0, '-');
  154.         LCD_Write_Char(13, 0, date/10+48);
  155.         LCD_Write_Char(14, 0, date%10+48);

  156.         LCD_Write_String(0, 1, "Time:");
  157.         LCD_Write_Char(5, 1, hour/10+48);
  158.         LCD_Write_Char(6, 1, hour%10+48);
  159.         LCD_Write_Char(7, 1, '-');
  160.         LCD_Write_Char(8, 1, min/10+48);
  161.         LCD_Write_Char(9, 1, min%10+48);
  162.         LCD_Write_Char(0xa, 1, '-');
  163.         LCD_Write_Char(0xb, 1, sec/10+48);
  164.         LCD_Write_Char(0xc, 1, sec%10+48);
  165.     }
  166. }

  167. void inter()   interrupt 1
  168. {
  169.     TH0 = 0X3C;
  170.     TL0 = 0XB0;
  171.     count++;
  172.     if(count >= 20)
  173.      {
  174.         count = 0;
  175.         sec++;
  176.      }
  177.      if(sec >= 60)
  178.      {
  179.         sec = 0;
  180.         min++;
  181.      }
  182.      if(min >= 60)
  183.      {
  184.         min = 0;
  185.         hour++;
  186.      }
  187.      if(hour >= 24)
  188.      {
  189.         hour = 0;
  190.         date++;
  191.      }
  192.      if(date > 31)
  193.      {
  194.         date = 0;
  195.         monse++;
  196.      }
  197.      if(monse > 13)
  198.      {
  199.         monse = 0;
  200.         year++;
  201.      }

  202. }
復(fù)制代碼

所有資料51hei提供下載:
新建 ZIP 壓縮文件.zip (1.38 KB, 下載次數(shù): 14)


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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2020-4-2 20:34 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区在线播放 | 中文字幕高清 | 日韩欧美一区二区三区免费看 | 亚洲综合婷婷 | 米奇成人网 | 国产精品免费观看 | 人人爽人人爽人人片av | 精品美女视频在线观看免费软件 | av大全在线 | 久久一区视频 | 我要看黄色录像一级片 | 波多野结衣一二三区 | 欧美日韩精品国产 | 精品中文字幕一区二区 | 四虎av电影 | h在线播放 | 亚洲一级黄色 | 亚洲欧美日韩精品久久亚洲区 | 在线免费看91 | 免费播放一级片 | 久久99国产精一区二区三区 | 精品久久精品 | 日中文字幕在线 | 婷婷丁香在线视频 | 欧美一区二区三区久久精品视 | 欧美乱码精品一区二区三区 | av一区二区三区四区 | 国产做a爱片久久毛片 | 日韩成人免费中文字幕 | 97国产超碰 | 亚洲第一色av| 一级在线免费观看 | 欧美白人做受xxxx视频 | av看片网| 久久精品一区二区三区四区 | 国产69精品久久99不卡免费版 | 亚洲色在线视频 | 免费人成激情视频在线观看冫 | 欧美成ee人免费视频 | 久久久久国产精品www | 一二区成人影院电影网 |