找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Arduino數(shù)碼管顯示程序 從-9到-1到-0.9到-0.1到0到20,其中遇到質數(shù)閃爍三次

[復制鏈接]
跳轉到指定樓層
樓主
ID:1099155 發(fā)表于 2023-11-9 20:48 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
在四位數(shù)碼管上顯示從-9到-1到-0.9到-0.1到0到20,其中遇到質數(shù)閃爍三次


源程序如下:
  1. #include "SevSeg.h"

  2. SevSeg sevseg;

  3. byte numDigits = 4;     // 4位數(shù)碼管
  4. byte digitPins[] = {2, 3, 4, 5};  //數(shù)碼管公共極連接Arduino的引腳
  5. byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};// 數(shù)碼管a,b,c,d,e,f,g,h對應引腳
  6. bool resistorsOnSegments = false; // 'false' 表示電阻連在數(shù)字引腳上
  7. byte hardwareConfig = COMMON_ANODE; // 共陽極數(shù)碼管
  8. bool updateWithDelays = false; // Default 'false' is Recommended
  9. bool leadingZeros = false; // 無前導零
  10. bool disableDecPoint = false; //小數(shù)點

  11. void setup() {                     
  12.   //初始化數(shù)碼管
  13.   sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
  14.   updateWithDelays, leadingZeros, disableDecPoint);//添加參數(shù)
  15.   sevseg.setBrightness(6);
  16. }

  17. void loop() {
  18.   for(int i=-9;i<0;i++){                       //顯示-9到-1
  19.     sevseg.setNumber(i);     // 設置要顯示的數(shù)據(jù),
  20.     for(int j=0;j<32000;j++){
  21.       sevseg.refreshDisplay();  // 必須重新運行刷新數(shù)碼管顯示
  22.     }
  23.   }
  24.   for(int i=-9;i<0;i++){                      //顯示-0.9到-0.1
  25.     sevseg.setNumber(i,1);  // 第二個參數(shù)表示小數(shù)點的位置
  26.     for(int j=0;j<32000;j++){
  27.       sevseg.refreshDisplay();
  28.     }
  29.   }
  30.   for(int i=0;i<=20;i++){                    //顯示0到20
  31.     if(isprime(i)){
  32.       for(int k=0;k<3;k++){                  //閃爍顯示質數(shù)
  33.         sevseg.setNumber(i);
  34.         for(int j=0;j<32000;j++){
  35.           sevseg.refreshDisplay();
  36.         }
  37.         sevseg.blank();
  38.         for(int j=0;j<32000;j++){
  39.           sevseg.refreshDisplay();
  40.         }
  41.       }
  42.     }
  43.     else{
  44.       sevseg.setNumber(i);               //正常顯示其他數(shù)
  45.       for(int j=0;j<32000;j++){
  46.         sevseg.refreshDisplay();
  47.       }
  48.     }
  49.   }
  50.   sevseg.refreshDisplay();
  51. }

  52. bool isprime(int n){                     //判斷質數(shù)
  53.   int prime[]={2,3,5,7,11,13,17,19};
  54.   bool a = false;
  55.   for(int i=0;i<8;i++){
  56.     if(prime[i]==n){
  57.       a = true;
  58.       break;
  59.     }
  60.   }
  61.   return a;
  62. }

復制代碼


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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