找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3543|回復: 1
收起左側

單片機八段數碼管先顯示偶數02468再顯示奇數13579 含原理圖,源碼

[復制鏈接]
ID:996965 發(fā)表于 2021-12-26 00:37 | 顯示全部樓層 |閱讀模式
用單片機控制一個八段數碼管先顯示偶數02468再顯示奇數13579,循環(huán)顯示。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
屏幕截圖 2021-12-25 233915.png

單片機源程序如下:
  1. #include "reg51.h"
  2. #include "intrins.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define out  P0
  6. uchar code seg[]={0xc0,0xa4,0x99,0x82,0x80,0xf9,0xb0,0x92,0xf8,0x90,0x01};

  7. void delayms(uint);

  8. void main(void)
  9. {
  10. uchar i;
  11. while(1)
  12.         {
  13.         out=seg[i];
  14.         delayms(900);
  15.         i++;
  16.         if(seg[i]==0x01)i=0;
  17.         }

  18. }

  19. void delayms(uint j)
  20. {
  21. uchar i;
  22. for(;j>0;j--)
  23.           {i=250;
  24.             while(--i);
  25.             i=249;
  26.             while(--i);
  27.            }
  28. }
復制代碼
51hei.png

Proteus仿真7.5版本dsn文件下載: 文件.zip (15.76 KB, 下載次數: 9)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:979299 發(fā)表于 2021-12-26 16:01 | 顯示全部樓層
這個程序這樣更簡明
#include "reg51.h"
#define uchar unsigned char
void delay(unsigned long int t);
uchar code seg[]={0xc0,0xa4,0x99,0x82,0x80,0xf9,0xb0,0x92,0xf8,0x90,0x01};
void delay(unsigned int t);
void main(void)
{
        uchar i;
        while(1)
    {
                P0=seg[i];
                delay(20000);
                i++;
                if(seg[i]==0x01)i=0;
    }
}
void delay(unsigned long int t)
{
        while(--t);
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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