找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机光控计数器仿真与源码

[复制链接]
跳转到指定楼层
楼主
单片机光控计数器仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

  2. #define DataPort P2 //定义数据端口 程序中遇到DataPort 则用P0 替换
  3. sbit    LATCH1=P3^5;//定义锁存使能端口 段锁存
  4. sbit    LATCH2=P3^4;//                 位锁存
  5. sbit   HW1=P3^2;
  6. sbit   HW2=P3^3;
  7. sbit  led=P1^4;
  8. sbit  qing=P1^2;
  9. unsigned int  num;
  10. unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9

  11. unsigned char code dofly_WeiMa[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7};//分别对应相应的数码管点亮,即位码,567801234

  12. unsigned char TempData[8]; //存储显示值的全局变量

  13. void delay(unsigned int i)
  14.    {
  15.    while(i--);
  16.     }

  17. void Display(unsigned char FirstBit,unsigned char Num)
  18. {
  19.        
  20.     unsigned char i;
  21.           
  22.           for(i=0;i<Num;i++)
  23.           {
  24.                            DataPort=0;   //清空数据,防止有交替重影
  25.                                  LATCH1=1;     //段锁存
  26.                                  LATCH1=0;

  27.                                  DataPort=dofly_WeiMa[i+FirstBit]; //取位码
  28.                                  LATCH2=1;     //位锁存
  29.                                  LATCH2=0;

  30.                                  DataPort=TempData[i]; //取显示数据,段码
  31.                                  LATCH1=1;     //段锁存
  32.                                  LATCH1=0;
  33.                                  
  34.                            delay(50); // 扫描间隙延时,时间太长会闪烁,
  35.                                                                                  //太短会造成重影

  36.    }

  37. }




  38. void   disp()
  39. {
  40.      unsigned char  j;
  41.   
  42.                                         for(j=0;j<200;j++)
  43.                                         {  if(j==40)
  44.                                             {
  45.                                                        
  46.                                             if(num==100)
  47.                                              num=0;
  48.                                             }
  49.                                          TempData[0]=dofly_DuanMa[num/10];//分解显示信息,
  50.                                                                                                                 //如要显示68,则68/10=6  68%10=8  
  51.                                          TempData[1]=dofly_DuanMa[num%10];
  52.                                        
  53.                                         }
  54. }



  55.   void jia()
  56. {

  57. if(HW1==0)
  58. while(HW2==1)          Display(5,2);
  59. if(HW2==0)
  60. {
  61. num++;
  62. led=0;
  63. if(num==99)
  64. num=0;
  65. }
  66. while(HW2==0)          Display(5,2);
  67.        
  68. }



  69. void jian()
  70. {
  71.   if(HW2==0)
  72.         while(HW1==1)    Display(5,2);
  73.         if(HW1==0)
  74.         {
  75.         if(num>0)
  76.         num--;
  77.         led=0;
  78.         if(num==0)
  79.         num=0;
  80.         }
  81.         while(HW1==0) Display(5,2);
  82.        
  83. }



  84. void main()
  85. {  
  86.    while(1)
  87.         {
  88.                 led=1;
  89.                 if(HW1==0)
  90.                 jia();
  91.                 if(HW2==0)
  92.                 jian();
  93.                 disp();
  94.                 if(qing==0)
  95.                 num=0;
  96.                  Display(5,2);
  97. }

  98. }
复制代码

所有资料51hei提供下载:
实验1.rar (167.92 KB, 下载次数: 95)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:758310 发表于 2020-9-9 15:02 | 只看该作者
hhhh,我打不开了,不过还是谢谢楼主,我自己画了
回复

使用道具 举报

板凳
ID:620565 发表于 2020-9-10 17:15 来自手机 | 只看该作者
请问楼主,那两个非门起什么作用
回复

使用道具 举报

地板
ID:652783 发表于 2020-9-23 20:41 | 只看该作者
有人能解释一下这个图形  步骤什么的么
回复

使用道具 举报

5#
ID:652783 发表于 2020-9-23 20:48 | 只看该作者
请问楼主 能对proteus图进行一下比较简单的解释么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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