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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機按鍵控制LCD1602,實現數值加減的源程序

[復制鏈接]
跳轉到指定樓層
樓主
電路原理圖如下:


/*不知道,為什莫上傳不了,壓縮包,有圖,自己畫吧,我感覺注釋詳細啦。本人也是剛開始學。有更好的方法請評論,有需要的直接拿走*/

  1. #include <reg52.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;
  4. uchar code table[] = {"Welcome!"};
  5. uchar code ren[] = {"RenShu:"};
  6. uchar code dat[2];
  7. sbit RS = P3^5;         //RS端
  8. sbit RW = P3^6;
  9. sbit EN = P3^4;         //EN端
  10. sbit du=P2^6;
  11. sbit we=P2^7;
  12. sbit k1=P3^0;
  13. sbit k2=P3^1;
  14. uint num,i,c;
  15. void delay(uint z)
  16. {
  17.         uint x,y;
  18.         for(x = z; x > 0; x--)
  19.                 for(y = 114; y > 0 ; y--);
  20. }
  21. void Read_Busy()
  22. {
  23.         uchar busy;
  24.         P0 = 0xff;
  25.         RS = 0;
  26.         RW = 1;
  27.         do
  28.         {
  29.                 EN = 1;
  30.                 busy = P0;
  31.                 EN = 0;
  32.         }while(busy & 0x80);
  33. }
  34. void Write_Cmd(uchar cmd)
  35. {
  36.         Read_Busy();//判斷忙
  37.         RS = 0;
  38.         RW = 0;
  39.         P0 = cmd;
  40.         EN = 1;
  41.         EN = 0;
  42. }
  43. //寫一個字節數據
  44. void Write_Dat(uchar dat)
  45. {
  46.         Read_Busy();
  47.         RS = 1;
  48.         RW = 0;
  49.         P0 = dat;
  50.         EN = 1;
  51.         EN = 0;
  52. }
  53. void Init_LCD1602()
  54. {
  55.         du=0;
  56.         we=0;
  57.         EN=0;
  58.         Write_Cmd(0x38); //        設置16*2顯示,5*7點陣,8位數據接口
  59.         Write_Cmd(0x0c);        
  60.         Write_Cmd(0x06); //讀寫一字節后地址指針加1
  61.         Write_Cmd(0x01); //清除顯示
  62. }
  63. void key()
  64. {
  65.          if(k1==0)
  66.                    {
  67.                                    delay(5);
  68.                                 if(k1==0)
  69.                                 {                        
  70.                 c++;
  71.                                 }
  72.                                 while(!k1);
  73.                    }
  74.         if(k2==0)
  75.                    {
  76.                                    delay(5);
  77.                                 if(k2==0)
  78.                                 {
  79.                 c--;
  80.                                 }
  81.                                 while(!k2);
  82.                    }
  83. }
  84. void main()
  85. {
  86. Init_LCD1602();//1602初始化
  87.         c=0;        
  88. while(1)
  89. {
  90.         Write_Cmd(0x80 | 0x00);//顯示地址
  91.         for(num=0;num<8;num++)
  92.         {
  93.                  Write_Dat(table[num]);
  94.                  delay(5);        
  95.         }
  96.         Write_Cmd(0x80 | 0x40);//顯示地址
  97.         for(i=0;i<7;i++)
  98.         {
  99.                  Write_Dat(ren[i]);
  100.                  delay(5);        
  101.         }
  102.     Write_Cmd(0x80 | 0x48);//設置顯示地址0x00,第一行從第一個字符開始顯示
  103.         key();
  104.         Write_Dat(c/10+0x30);
  105.     Write_Dat(c%10+0x30);
  106.         }
  107. }
復制代碼

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1073848 發表于 2023-4-24 21:04 | 只看該作者
在51開發板上不可以誒
回復

使用道具 舉報

板凳
ID:863362 發表于 2023-4-25 09:20 | 只看該作者
sbit du=P2^6;
sbit we=P2^7;
請問一下,這兩個語句有什么作用?
回復

使用道具 舉報

地板
ID:1125884 發表于 2024-6-18 17:23 | 只看該作者
怎么把那個減到零后就不減了呢
回復

使用道具 舉報

5#
ID:619259 發表于 2024-6-19 08:56 | 只看該作者
qwerdfzxc 發表于 2024-6-18 17:23
怎么把那個減到零后就不減了呢

方式一:先執行后判斷
c--;
if(c==0) c=0;

方式二:先判斷后執行
if(c>0) c--;
回復

使用道具 舉報

6#
ID:1148022 發表于 2025-4-14 18:25 | 只看該作者
sonique0371 發表于 2023-4-25 09:20
sbit du=P2^6;
sbit we=P2^7;
請問一下,這兩個語句有什么作用?

定義引腳
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久国产a级 欧美日本韩国一区二区 | 国产国拍亚洲精品av | 日韩影音 | 精品免费视频 | 欧美日韩一 | 国产精品高清在线 | 5060网一级毛片 | 亚洲一区 | 狠狠操电影 | 国产精品久久国产精品 | 欧美日韩一区二区在线观看 | 国产视频第一页 | 91精品国产乱码久久久久久久 | 成人av免费 | 成人3d动漫一区二区三区91 | 亚洲人成人一区二区在线观看 | 久久久美女 | 亚洲欧美日本在线 | 久久精品视频在线免费观看 | 6080亚洲精品一区二区 | 国产97人人超碰caoprom | 少妇诱惑av | 日日操视频 | 久久精品欧美一区二区三区麻豆 | 欧美精品在线一区二区三区 | 国产福利视频网站 | 中国一级特黄真人毛片 | 日韩电影中文字幕 | 四虎成人免费电影 | 精品国产乱码久久久久久闺蜜 | 欧美精品首页 | www.99re| 国产我和子的乱视频网站 | 精品一区二区久久久久久久网精 | 日韩欧美在线播放 | 亚洲人人舔人人 | 精品一二区 | 久久久久91 | 欧美福利网站 | 黄色网址av | 国产精品久久亚洲7777 |