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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2344|回復: 0
收起左側(cè)

單片機累加累減程序與Proteus仿真圖

[復制鏈接]
ID:921535 發(fā)表于 2021-5-29 12:18 | 顯示全部樓層 |閱讀模式
累加累減程序最大數(shù)值十999。
按加建KEY1數(shù)值加1并顯示;
按減建KEY1數(shù)值減1并顯示;
按歸零鍵數(shù)值歸零并顯示;
附件包含完整程序和仿真設計

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
無標題.png

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define DB P1
  5. /*************** 物理連接
  6. P2^0對應 LCD_RS;
  7. P2^1對應LCD_RW;
  8. P2^2對應LCD_E;
  9. P1對應LCD_DB;
  10. P3^0對應KEY1加鍵;
  11. P3^1對應KEY2減鍵;
  12. P3^2對應KEY3清零鍵;
  13. ******************/
  14. void LCD_init();                                         //1602初始函數(shù)
  15. void LCD_write_command(uchar dat);         //1602寫命令函數(shù)
  16. void LCD_write_dat(uchar dat);                 //1602寫數(shù)據(jù)函數(shù)
  17. void delay40us(uint n);                                //延時函數(shù),單次40US
  18. void display(uint tt);                                //顯示函數(shù)
  19. uint KEY_scan(uint num);
  20. sbit LCD_RS=P2^0;
  21. sbit LCD_RW=P2^1;
  22. sbit LCD_E=P2^2;
  23. sbit KEY1=P3^0;
  24. sbit KEY2=P3^1;
  25. sbit KEY3=P3^2;
  26. uint num,key;                                                        //全局變量
  27. uchar table[]="The num is";



  28. //**************延時函數(shù),單次約40US************
  29. void delay40us(uint n)
  30. { uint i;
  31. uchar j;
  32. for(i=n;i>0;i--)
  33. for(j=0;j<2;j++); //在這個延時循環(huán)函數(shù)中我只做了2次循環(huán),
  34. } //實踐證明我的LCD1602 上普
  35. //通的指令只需1次循環(huán)就能可靠完成




  36. //*************LCD初始化函數(shù)***************
  37. void LCD_init()
  38. {
  39. LCD_write_command(0x38);//設置8位格式,2行,5x7
  40. LCD_write_command(0x0c);//整體顯示,關光標,不閃爍
  41. LCD_write_command(0x06);//設定輸入方式,增量不移位--------------
  42. LCD_write_command(0x01);//清除屏幕顯示----------------
  43. delay40us(100);       //實踐證明,我的LCD1602上,用for 循環(huán)200 次就能可靠完成清屏指令
  44. }






  45. //*****************1602寫命令函數(shù)************
  46. void LCD_write_command(uchar dat)
  47. {
  48. DB=dat;
  49. LCD_RS=0;                         //寫命令
  50. LCD_RW=0;                         //寫容許
  51. LCD_E=1;                         //LCD_E下降沿觸發(fā)寫
  52. LCD_E=0;
  53. delay40us(1);         //延時確保寫成功
  54. }



  55. //*************1602寫數(shù)據(jù)函數(shù)*************
  56. void LCD_write_dat(uchar dat)
  57. {
  58. DB=dat;
  59. LCD_RS=1;                         //寫數(shù)據(jù)
  60. LCD_RW=0;                         //寫容許
  61. LCD_E=1;                         //LCD_E下降沿觸發(fā)寫
  62. LCD_E=0;
  63. delay40us(1);         //延時確保寫成功
  64. }



  65. //****************讀鍵盤***************
  66. uint KEY_scan(uint num )
  67. {
  68. if(KEY1==0)                                  //加鍵按下
  69. delay40us(25);                          //延遲1MS
  70. if(KEY1==0)                                  //確認加鍵按下
  71. {
  72. if(num==1000)
  73. num=0;
  74. ++num;                                         //顯示當前數(shù)值
  75. display(num);
  76. while(!KEY1);                        //等待加鍵松開
  77. }
  78. if(KEY2==0)
  79. delay40us(25);
  80. if(KEY2==0)
  81. {
  82. if(num==0)
  83. num=1000;
  84. --num;
  85. display(num);
  86. while(!KEY2);
  87. }
  88. if(KEY3==0)
  89. delay40us(25);
  90. if(KEY3==0)
  91. {
  92. num=0;
  93. display(num);
  94. while(!KEY3);
  95. }
  96. return num;
  97. }


  98. //********************顯示當前數(shù)值***********
  99. void display(uint tt)
  100. {
  101.   LCD_write_command(0x80+68);
  102.   LCD_write_dat(0x30+tt/100);
  103.   delay40us(15);
  104.   LCD_write_dat(0x30+tt/10%10);
  105.   delay40us(15);
  106.   LCD_write_dat(0x30+tt%10);
  107.   delay40us(15);
  108. }





  109. //************主函數(shù)************
  110. main()
  111. {
  112. uchar k;
  113. P3=0xff;
  114. num=0;
  115. LCD_init();
  116. LCD_write_command(0x80);
  117. for(k=0;k<12;++k)
  118. {
  119.   LCD_write_dat(table[k]);
  120.   delay40us(1500);
  121. }
  122. while(1)
  123. {
  124.    num= KEY_scan(num);
  125. }
  126. }
復制代碼

所有資料51hei提供下載:
累加累減程序.zip (62.77 KB, 下載次數(shù): 13)

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人精品高清 | 久久久久久国产 | 蜜桃免费一区二区三区 | 在线看片国产 | 亚洲一区精品在线 | 欧美精品一区二区三区四区五区 | 欧美精品在线观看 | 久久精品国产免费一区二区三区 | 中文字幕在线免费观看 | 国产亚洲精品久久久久久豆腐 | 亚洲人成人一区二区在线观看 | 国产日韩一区二区三区 | 99免费在线观看视频 | 在线免费观看一区二区 | 日韩在线不卡 | 国精日本亚洲欧州国产中文久久 | 久久天天躁狠狠躁夜夜躁2014 | 91婷婷韩国欧美一区二区 | 国产区在线观看 | 亚洲精品字幕 | 久久久久精 | 欧美精品综合 | 中文字幕蜜臀av | 久久精品欧美一区二区三区不卡 | 九九热在线视频 | 三级国产三级在线 | 特一级毛片 | 国产精品视频久久 | 日韩中文字幕第一页 | 亚洲精品www久久久久久广东 | 色视频在线播放 | 国产一二区免费视频 | 人人做人人澡人人爽欧美 | 日日爱av| 一区二区国产在线 | 伊人国产精品 | 亚洲欧洲成人av每日更新 | 视频一区二区中文字幕 | 国产网站在线免费观看 | 在线国产小视频 | 久久综合狠狠综合久久综合88 |