找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8894|回复: 2
收起左侧

基于51单片机的数码管显示proteus仿真

[复制链接]
ID:200213 发表于 2017-5-13 12:41 | 显示全部楼层 |阅读模式

仿真图

仿真图

0.png

单片机源程序:
  1. /*这个程序主要实现

  2.      每隔1ms左右数码显示管上的数字自动累加1
  3.                   
  4.                                 BY:IZHIQIANG
  5.                                                             
  6.                                                                              */

  7. #include<REGX52.H>
  8. #include<INTRINS.H>
  9. code unsigned char TransCodes[10]=
  10. {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义查表数组,显示0-9中的第几个就直接选第几个就行                                                                                                                                                                                                                                                                                                                                                                                       
  11. void Display(int Datum);//自定义的数码管显示函数的声明
  12. void Delay5ms();//5ms延时声明
  13. int main()

  14. {
  15. int i;
  16. for(i=0;i<999;i++)//i从0到999累加
  17. {
  18.          if(i>999)//当i大于999就给它置0
  19.          {
  20.                  i=0;
  21.          }
  22.    Display(i);//在数码管上显示i的值
  23. }
  24. return 0;
  25. }

  26. void Display(int Datum)//自定义的数码管显示函数的定义
  27. {
  28.         
  29.         //数值转换
  30. int bai,shi,ge,i;

  31. bai=Datum/100;//百位
  32. shi=Datum%100/10;//十位
  33. ge=Datum%10;//个位

  34.         //数码管显示,每位数字显示5ms,不停地轮回显示
  35.         //大多数数码管都是用的这种视觉延迟的方法显示多个数字
  36.         //在这里只用了数码管的后三位
  37.         //这里66然后乘以下面3个5ms的和,等于990ms,差不多1秒。
  38.         
  39. for(i=0;i<66;i++)       //66个循环
  40.   {
  41.    P2_4=1,P2_5=1,P2_6=1;//关掉三个数码管
  42.    P0=TransCodes[bai];//P0输出百位数字
  43.    P2_4=0,P2_5=1,P2_6=1;//打开百位输入端
  44.                
  45.    Delay5ms();           //5ms延时

  46.    P2_4=1,P2_5=1,P2_6=1;//这里是十位的,其他同上
  47.    P0=TransCodes[shi];
  48.    P2_4=1,P2_5=0,P2_6=1;
  49.                
  50.    Delay5ms();         

  51.    P2_4=1,P2_5=1,P2_6=1;//这个是个位的,其他同上
  52.    P0=TransCodes[ge];
  53.    P2_4=1,P2_5=1,P2_6=0;
  54.                
  55.    Delay5ms();         
  56.         }
  57. }

  58. //5ms的软件延时,这个是用stc软件生成的
  59. void Delay5ms()
  60. {
  61.         unsigned char i, j;

  62.         i = 10;
  63.         j = 183;
  64.         do
  65.         {
  66.                 while (--j);
  67.         } while (--i);
  68. }
复制代码


下载:
数码管显示.zip (50.76 KB, 下载次数: 70)
回复

使用道具 举报

ID:361890 发表于 2018-6-29 17:23 | 显示全部楼层
我刚刚开始学习
回复

使用道具 举报

ID:693563 发表于 2020-5-28 11:31 | 显示全部楼层
仿真什么样子呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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