一、实验要求
使用51单片机控制单个数码管,使其循环显示0-9.
二、实验原理
数码管(Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。

三、仿真图
1、proteus仿真图
2、proteus仿真效果图
四、程序

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F
};void DelayMS(uint x)
{uchar t;while(x--)for(t=120;t>0;t--);
}void main()
{uchar i=0;P0=0x00;while(1){P0=DSY_CODE[i];i=(i+1)%10;/*显示0-9*/DelayMS(400);}
}

解析:

1、由于仿真图采用的是共阴极数码管,故代码也需要保持一致,采用共阴极字形代码;当然也可以采用共阳极字形代码,但最会需要取反,使其变成共阴极:

P0=~DSY_CODE[i];// ~是取反的标志。

2、这里需要用到延时函数。

void DelayMS(uint x)

{

uchar t;

while(x–)

for(t=110;t>0;t–);

}

这个延时函数的核心是一个whiLe和for循环嵌套,例如让x=10,cpu会在这里循环10*10次,这些时间大概就是10ms(但并不精确)。

关注公众号电子荣耀,回复“数码管”即可获得此实验proteus仿真图源文件和程序。

单个数码管循环显示1-9相关推荐

  1. Arduino-Proteus仿真05-分立式数码管循环显示0~9

    Arduino-Proteus仿真05-分立式数码管循环显示0~9 设计者:STCode(公众号同名) 前言: Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计软件, ...

  2. 数码管动态显示c语言,动态数码管循环显示设计C语言及汇编代码(HUBU)

    动态数码管循环显示设计(HUBU电信) 实验任务(两个实验): 1.单只数码管循环显示0-9: 2.8只数码管滚动显示单个数字. 第一题实验电路如下: 此题我写的代码比较笨,同学们可以进行TAB列表操 ...

  3. 分立式数码管循环显示数字0到9.

    在Keil C51中编写程序使得共阴极数码管在P0口循环显示0到9. 首先查询一下共阴极数码管数字0到9的数码表: code int SEG_CODE[] = {0x3f, 0x06, 0x5b, 0 ...

  4. 89C51数码管循环显示数字0~15

    89C51数码管循环显示数字0~15,使用Proteus经行仿真. 需要材料:   数码管.AT89C51.最小系统电路. 代码如下: //------------------------------ ...

  5. c语言c52数码管,数码管(STC89C52): 第一个数码管循环显示0~F

    原标题:数码管(STC89C52): 第一个数码管循环显示0~F 一. 硬件设计 说明: 选通一个分两步, 第一步是位选,即选择哪个数码管亮, 这里位选是通过锁存器U2的WE1~WE6来选择第一个数码 ...

  6. 数码管循环显示0-F,中断函数

    51单片机数码管循环显示0-F,中断函数,外部中断中断,按钮中断  代码如下 #include<reg52.h> char a[]={0x3f,0x06,0x5B,0x4f,0x66,0x ...

  7. 使用keil及proteus实现数码管循环显示“0“-“F“

    数码管循环显示"0"-"F" 目录 数码管循环显示"0"-"F" 一.数码管循环程序的编译 1.keil新建工程 2.新 ...

  8. 单片机--4个数码管循环显示数字

    单片机–4个数码管循环显示数字同时LED灯循环左移显示 这里有几个需要注意的点: 1.如果让8个数码管中几个数码管显示不同的数字,这里一定是挨个显示的,不可能同时显示不同的数字,可以让几个数码管同时显 ...

  9. 51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真

    51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真 说明:为什么采用4位的数码管,因为Proteus里面没有3位的数码管器件可选,也可以采用2+1,或者1+1+1, ...

  10. 【51单片机】串行口连接74LS164进行串行/并行转换,输出到一个七段数码管。数码管循环显示0-9。采用串行通信方式0,定时间隔1秒。

    实验内容:51单片机的串行口连接74LS164进行串行/并行转换,然后输出到一个七段数码管.数码管循环显示0-9这10个数字.要求采用串行通信方式0,定时间隔1秒. 工具:proteus+keil # ...

最新文章

  1. HttpMoudle实现用户身份验证
  2. python3精要(50)-类
  3. 十位数和个位数交换python_Python实现100以内十位数数字比个位数数字小的数
  4. setScaledContents的看法
  5. 突变检测软件 测试数据库,测序数据比对和变异检测
  6. Postgresql ALTER语句常用操作小结
  7. SELinux系列(七)——SELinux安全上下文的修改和设置(chcon和restorecon命令)
  8. tensorflow 安装_安装tensorflow-gpu 2.0
  9. 服务器mac地址变了怎办_获取服务器的IP地址和MAC地址
  10. 如何将在ad里面添加元器件符号_请教怎么在AD10中的PCB中直接加入自己创建的封装库文件中的元件...
  11. 王之泰201771010131《面向对象程序设计(java)》第八周学习总结
  12. mysql存特殊符号失败_mysql存储符号表情失败
  13. Python爬取网易云音乐热评(附源码)
  14. idea怎么设置类备注和方法备注的格式
  15. 佳能无线打印机服务器,佳能LBP6018W打印机WIFI无线打印心得分享
  16. Metal 框架之自定义设置渲染通道
  17. 华为系统更新后sim无服务器,华为手机系统更新后太卡怎么办? 原因及解决方法详解...
  18. 什么是epub格式,windows上有什么好用的epub阅读器
  19. 三年阿里P6水平,5年阿里P7水平
  20. python 极坐标图xlabel_matplotlib极坐标图刻度/轴标签位置

热门文章

  1. [安全防护]诺顿产品之Symantec Endpoint Protection
  2. 数字系统——实验一:常用元器件的识别与简单测试
  3. sql优化的N种方法_持续更新
  4. 《Python编程实践》查漏笔记
  5. python编程:从入门到实践_《Python编程:从入门到实践》【PDF】
  6. ipop映射到ftp服务器,设备作为FTP客户端进行文件传输-IPOP
  7. 遥感影像数据下载网址
  8. 蓝桥杯c语言基础试题答案,2014年蓝桥杯c语言试题及答案
  9. 麦子学院bootstrap实战项目官网,后台,jquery.singlePageNav.min.js ,wow.min.js,animate.css使用...
  10. 备考新手指南--QA手册