设为首页 收藏本站
开启辅助访问 切换到宽版

  找回密码
  立即注册

QQ登录

只需一步,快速开始

快捷导航
  • 论坛
  • 问答区
  • 单片机教程
  • 单片机DIY
  • 电子DIY
  • 帮助

热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计

搜索
» 论坛 嵌入式/单片机论坛 单片机仿真论坛 单片机八段数码管先显示偶数02468再显示奇数13579 含原 ...
返回列表 发新帖
查看: 2493|回复: 1
收起左侧

单片机八段数码管先显示偶数02468再显示奇数13579 含原理图,源码

[复制链接]
ID:996965 发表于 2021-12-26 00:37 | 显示全部楼层 | 阅读模式
用单片机控制一个八段数码管先显示偶数02468再显示奇数13579,循环显示。
仿真原理图如下(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 发表于 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 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 小黑屋| 51黑电子论坛 | 51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表