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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機靜態數碼管顯示實驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:302604 發表于 2018-4-6 02:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
靜態數碼管顯示單片機源程序如下:
  1. /**************************************************************************************
  2. *                              靜態數碼管顯示實驗                                                                                                  *
  3. 實現現象:下載程序后數碼管靜態顯示0。
  4. 注意事項:                                                                                                                                                                  
  5. ***************************************************************************************/

  6. #include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器

  7. typedef unsigned int u16;          //對數據類型進行聲明定義
  8. typedef unsigned char u8; int s=0;
  9. sbit k1=P1^0;         //定義P10口是k1
  10. sbit k2=P1^1;         //定義P11口是k2
  11. sbit LSA=P2^2;
  12. sbit LSB=P2^3;
  13. sbit LSC=P2^4;
  14. //sbit led1=p0^2;
  15. sbit led2=P0^1;

  16. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  17.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
  18. /*******************************************************************************
  19. * 函 數 名         : delay
  20. * 函數功能                   : 延時函數,i=1時,大約延時10us
  21. *******************************************************************************/
  22. void delay(u16 i)
  23. {
  24.         while(i--);       
  25. }
  26. /*******************************************************************************
  27. * 函 數 名         : keypros
  28. * 函數功能                   : 按鍵處理函數,判斷按鍵K1是否按下
  29. *******************************************************************************/
  30. /*void keypros()
  31. {
  32.         if(k1==0)                  //檢測按鍵K1是否按下
  33.         {       
  34.                 delay(1000);   //消除抖動 一般大約10ms
  35.                 if(k1==0)         //再次判斷按鍵是否按下
  36.                 {
  37.                 s++;          //led狀態取反
  38.                 }
  39.                 while(!k1);         //檢測按鍵是否松開
  40.         }
  41.        
  42.                 if(k2==0)                  //檢測按鍵K1是否按下
  43.         {       
  44.                 delay(1000);   //消除抖動 一般大約10ms
  45.                 if(k2==0)         //再次判斷按鍵是否按下
  46.                 {
  47.                 s--;          //led狀態取反
  48.                 }
  49.                 while(!k1);         //檢測按鍵是否松開
  50.         }
  51.        
  52.                        
  53. }         */


  54. /*******************************************************************************
  55. * 函 數 名       : main
  56. * 函數功能                 : 主函數
  57. * 輸    入       : 無
  58. * 輸    出             : 無
  59. *******************************************************************************/
  60. /*void main()
  61. {       

  62.         P0=~smgduan(0);
  63.         delay();
  64. } */

  65. /*******************************************************************************
  66. * 函 數 名         : delay
  67. * 函數功能                   : 延時函數,i=1時,大約延時10us
  68. *******************************************************************************/
  69. /*void delay(u16 i)
  70. {
  71.         while(i--);       
  72. }*/

  73. /*******************************************************************************
  74. * 函 數 名         : DigDisplay
  75. * 函數功能                   : 數碼管動態掃描函數,循環掃描8個數碼管顯示
  76. *******************************************************************************/
  77. void DigDisplay()
  78. {
  79.         u8 i;
  80.         for(i=0;i<9;i++)
  81.         {
  82.                 switch(i)         //位選,選擇點亮的數碼管,
  83.                 {
  84.                         case(0):
  85.                                 LSA=0;LSB=0;LSC=0; break;//顯示第0位
  86.                         case(1):
  87.                                 LSA=1;LSB=0;LSC=0; break;//顯示第1位
  88.                         case(2):
  89.                                 LSA=0;LSB=1;LSC=0; break;//顯示第2位
  90.                         case(3):
  91.                                 LSA=1;LSB=1;LSC=0; break;//顯示第3位
  92.                         case(4):
  93.                                 LSA=0;LSB=0;LSC=1; break;//顯示第4位
  94.                         case(5):
  95.                                 LSA=1;LSB=0;LSC=1; break;//顯示第5位
  96.                         case(6):
  97.                                 LSA=0;LSB=1;LSC=1; break;//顯示第6位
  98.                         case(7):
  99.                                 LSA=1;LSB=1;LSC=1; break;//顯示第7位       
  100.                 }
  101.                 P0=smgduan[i];//發送段碼
  102.                 delay(100); //間隔一段時間掃描       
  103.                 P0=0x00;//消隱
  104.         }
  105. }

  106. /*******************************************************************************
  107. * 函 數 名       : main
  108. * 函數功能                 : 主函數
  109. * 輸    入       : 無
  110. * 輸    出             : 無
  111. *******************************************************************************/
  112. void main()
  113. {       
  114.         if(k1==0)                  //檢測按鍵K1是否按下
  115.         {       
  116.                 delay(1000);   //消除抖動 一般大約10ms
  117.                 if(k1==0)         //再次判斷按鍵是否按下
  118.                 {
  119.                 led2=~led2;          //led狀態取反
  120.                 }
  121.                 while(!k1);         //檢測按鍵是否松開
  122.         }
  123.        
  124.                 if(k2==0)                  //檢測按鍵K1是否按下
  125.         {       
  126.                 delay(1000);   //消除抖動 一般大約10ms
  127.                 if(k2==0)         //再次判斷按鍵是否按下
  128.                 {
  129.                 //i--;          //led狀態取反
  130.                 }
  131.                 while(!k1);         //檢測按鍵是否松開
  132.         }
  133.        
  134.         while(1)
  135.         {       
  136.                 DigDisplay();  //數碼管顯示函數       
  137.         }               
  138. }
復制代碼

所有資料51hei提供下載:
靜態數碼管顯示.zip (38.55 KB, 下載次數: 13)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91久久精品日日躁夜夜躁欧美 | 亚洲网站免费看 | 欧美性生交大片免费 | 一级黄在线观看 | 日韩国产一区二区三区 | 日韩欧美三级在线 | 亚洲综合一区二区三区 | 国产高清视频在线 | 国产亚洲精品久久久久久豆腐 | av天天看| 欧美日韩一区二区三区四区 | 97精品国产 | av一级久久 | 免费在线性爱视频 | 日韩区 | 亚洲中午字幕 | 天天激情综合 | 国产91久久精品一区二区 | av中文网| 色综合久久88色综合天天 | 亚洲精彩视频 | 免费精品| 国产精品成人一区 | 精品国产一区二区三区久久久四川 | 蜜桃视频在线观看免费视频网站www | 日韩三级免费网站 | 99精品网站| 国产精品久久久亚洲 | 日韩在线一区二区 | 美国一级黄色片 | 国产精品久久国产精品久久 | 成人免费日韩 | 久色激情 | 精品亚洲第一 | 午夜国产一级片 | 超碰97免费在线 | 紧缚调教一区二区三区视频 | 亚洲情综合五月天 | 国产精品久久久久久久久久久久久久 | www成人免费视频 | 91精品国产自产精品男人的天堂 |