欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

8位數碼管動態顯示的單片機源碼

[復制鏈接]
跳轉到指定樓層
樓主
8位數碼管動態顯示仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:

  1. /* 設計題目: 基于51單片機的數碼管動態掃描顯示
  2. /* 功能    :讓8個數碼管顯示不同的數字
  3. /* 說明    :每一個數碼管掃描時間不要超過5ms
  4. /************************************************/

  5. #include <reg51.h>                        // 12M 晶振

  6. #define SEG P0                                  // 定義段碼端口        
  7. #define SCAN P2                                // 定義位掃描端口

  8. #define uchar unsigned char
  9. #define uint  unsigned int

  10. ///////////////////////////////////////////////////////////
  11. // Name                : 段碼和位選數據
  12. // In                :
  13. // Out                 :
  14. // Function : 用于段碼和位選輸出
  15. // Explain        : 段碼為共陽型,位選時,高電平關閉,低電平選通
  16. ///////////////////////////////////////////////////////////

  17. uchar seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,
  18.                  0x92,0x82,0xf8,0x80,0x98};

  19. uchar sel[8] = {0xfe,0xfd,0xfb,0xf7,         // 從右向左選擇數碼管,共8個
  20.                                 0xef,0xdf,0xbf,0x7f};         // 0xfe,表示選擇最右一個數碼管


  21. ///////////////////////////////////////////////////////////
  22. // Name                : 延時函數
  23. // In                : uint x
  24. // Out                 :
  25. // Function : 用于延時一定時間
  26. // Explain        : 用12M晶振時,大概延時1ms,
  27. ///////////////////////////////////////////////////////////

  28. void delay_1ms(uint x)                // 用12M晶振時,延時1ms,
  29. {
  30.         uint i,j;

  31.         for(i=0; i<x; i++)
  32.            for(j=0; j<120; j++);
  33. }


  34. ///////////////////////////////////////////////////////////
  35. // Name                : 主函數
  36. // In                :
  37. // Out                 :
  38. // Function : 實現數碼管的動態掃描顯示
  39. // Explain        :
  40. ///////////////////////////////////////////////////////////

  41. void main(void)
  42. {

  43.    uchar cnt=0;

  44.    while(1)                                            // 無限循環
  45.      {
  46.                   
  47.                 SCAN = ~0xff;                        // 送數據時,先關閉顯示,以避免重影現象
  48.                 SEG = seg[cnt];                        // 送數據
  49.                 SCAN = ~sel[cnt];                // 送出數據后,選擇對應的數碼管
  50.                 delay_1ms(1);                        // 延時1ms(延時時間不能太長,最好不要超過5ms)

  51.                 cnt++;                                        // 指向下一個狀態               
  52.                 if(cnt == 8)                        // 判斷是否取完所有狀態
  53.                    cnt = 0;                                                   
  54.          }
  55. }
復制代碼

所有資料51hei提供下載:
prj3_SEG7.rar (42.84 KB, 下載次數: 67)


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

使用道具 舉報

沙發
ID:341459 發表于 2019-6-13 23:11 | 只看該作者
感謝,值得學習

回復

使用道具 舉報

板凳
ID:564279 發表于 2019-6-17 10:22 | 只看該作者
感謝,值得學習
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表