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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4952|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜婷婷激情 | www亚洲一区 | 久久1区| aaa国产大片| 精品一区视频 | 日韩中文字幕av | 激情五月综合 | 国产精品永久久久久 | 欧美天堂 | www九色 | 久久久久久久久久久一区二区 | 四虎海外 | 欧美精品免费观看二区 | 国产成人网| 国产精品精品视频一区二区三区 | 精品粉嫩aⅴ一区二区三区四区 | 2018天天干天天操 | 777zyz色资源站在线观看 | 91一区二区三区 | 午夜影院在线观看 | 成人在线精品视频 | 国产精品国产成人国产三级 | 午夜影视大全 | 午夜av电影 | 欧美a区 | 大象一区 | 久久久久久精 | 自拍中文字幕 | 国产精品视频一区二区三区四蜜臂 | 成人在线免费观看 | 日韩av三区 | 精品免费国产视频 | 久久精点视频 | 久久亚洲经典 | 亚洲一区视频在线 | 欧美日本在线 | 久久久久国产精品 | 国产黄色小视频 | 久久国产一区二区三区 | 精品久久久久久久久久久院品网 | 青久草视频 |