找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15193|回复: 2
打印 上一主题 下一主题
收起左侧

单片机0~9999计数器程序及proteus仿真原理图

[复制链接]
跳转到指定楼层
楼主
给51黑电子论坛的朋友们分享一个用51单片机0~9999计数器程序和proteus仿真,下面是原理图:

源程序:
  1. /********************************************************************
  2.                             天马电子
  3. *********************************************************************/
  4. #include <reg52.h>
  5. #define uchar unsigned char
  6. #define uint  unsigned  int        
  7. uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};         //所需的段的位码
  8. //uchar wei[4]={0XEf,0XDf,0XBf,0X7f};                                 //位的控制端        (开发板)
  9. uchar wei[4]={0X80,0X40,0X20,0X10};                                 //位的控制端        (仿真)
  10. uint z,x,c,v, date;        //定义数据类型
  11. uint dispcount=0;
  12. /******************************************************************

  13. 延时函数

  14. ******************************************************************/
  15. void delay(uchar t)
  16. {
  17.   uchar i,j;
  18.    for(i=0;i<t;i++)
  19.    {
  20.             for(j=13;j>0;j--);
  21.          { ;
  22.          }
  23.    }
  24. }

  25. /**********************************************************************
  26.                 数码管动态扫描
  27. *********************************************************************/
  28. void xianshi()
  29. {
  30. /*****************数据转换*****************************/
  31.   z=date/1000;                         //求千位
  32.   x=date%1000/100;                 //求百位
  33.   c=date%100/10;                 //求十位
  34.   v=date%10;                         //求个位

  35.       P2=wei[0];
  36.           P0=duan[z];
  37.           delay(50);  
  38.             P2=wei[1];
  39.       P0=duan[x];
  40.           delay(50);  
  41.              P2=wei[2];
  42.       P0=duan[c];
  43.           delay(50);  
  44.       P2=wei[3];
  45.       P0=duan[v];
  46.           delay(50);  
  47.                                        

  48.        }

  49. /*************************************************************************
  50.                                 主函数        
  51. **************************************************************************/
  52. void ExtInt0() interrupt 0 //中断服务程序
  53. {
  54. dispcount++; //每按一次中断按键,计数加一
  55. if (dispcount==9999) //计数范围0-9999
  56. {dispcount=0;}
  57. }

  58. /*************************************************************************
  59.                                 主函数        
  60. **************************************************************************/
  61. void main()
  62. {  

  63. TCON=0x01; //中断设置
  64. IE=0x81;

  65. while(1)
  66.         {         
  67.     date=dispcount;
  68.         xianshi();
  69.     }
  70. }                                
  71.                                                                   
复制代码


仿真工程文件及所有完整程序等资料下载地址(压缩包一共有45个单片机仿真,全部下载后找到这个项目035即可):
http://www.51hei.com/bbs/dpj-56298-1.html

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:347120 发表于 2018-6-8 10:01 来自手机 | 只看该作者
增减计数怎么改呀
回复

使用道具 举报

板凳
ID:353831 发表于 2019-9-5 17:06 | 只看该作者
楼主 程序编译通不过
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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