找回密码
 立即注册

QQ登录

只需一步,快速开始

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

门禁韦根输入读卡显示卡号后四位 单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:73080 发表于 2019-9-3 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <stc12c5630ad.h>
  2. #include <intrins.h>
  3. sbit  shuju=P1^7;
  4. sbit  yiwei=P1^5;
  5. sbit  shuchu=P1^6;
  6. sbit k1=P3^7;
  7. sbit k2=P1^0;
  8. sbit out=P1^2;
  9. unsigned char  code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  10. 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
  11.                            };
  12. unsigned char code smg1[]={0x01,0x02,0x04,0x08,0x00};
  13. unsigned char  a,b,c,d,f,ar,ae,ax,ac,acc,er;
  14. unsigned int e ;
  15. void  smg595(unsigned char aa,unsigned char bb);
  16. unsigned  char shu[7];
  17.   unsigned long kahao;
  18. void ys(unsigned char  c);
  19. void  xs();//数码管逐位扫描显示,
  20. void ADdsh() ;

  21. void main()
  22. {        EA=1;     EX0=1;IT0=1;
  23.                
  24.   e=0;   EX1=1;  IT1=1;
  25.      k1=k2=1;   ax=0;
  26.           ar=ac=acc=0;  er=0; e=0;
  27.    while(1)
  28.    {
  29.     //ys(100); //ADdsh();  
  30.         
  31.                if(k1==0&&ax==0){er=0;ax=1;kahao=0;}
  32.          if(k1==1&&ax==1){ax=0;}
  33.       
  34.       d=  kahao%10000/1000;
  35.                    c=  kahao%1000/100;
  36.                b=  kahao%1000%100/10;
  37.                  a=  kahao%1000%100%10;   //将 16 进制转换成10进制 在数码管显示出来

  38.      /* d=  shu[0];
  39.                    c=  shu[1];
  40.                b=  shu[2];
  41.                  a=  shu[3];   //将 16 进制转换成10进制 在数码管显示出来   */

  42.       xs();
  43.    
  44.    }

  45. }
  46. void  smg595(unsigned char aa,unsigned char bb) //595 显示装填数字 驱动
  47. {
  48.   unsigned char a,b;
  49.   shuju=0;yiwei=0;shuchu=0;
  50.   for(a=0;a<8;a++)
  51.   {
  52.     shuju=aa>>7;
  53.      aa<<=1;
  54.    
  55.     yiwei=1;
  56.      _nop_();
  57.   nop_();
  58.      _nop_();
  59.      _nop_();
  60.   yiwei=0;
  61.    
  62.   }
  63.    for(b=0;b<8;b++)
  64.    {
  65.      shuju=bb>>7;
  66.    bb<<=1;
  67.   yiwei=1;
  68.      _nop_();
  69.   nop_();
  70.      _nop_();
  71.      _nop_();
  72.   yiwei=0;
  73.    
  74.    
  75.    }
  76. _nop_();

  77. shuchu=1;
  78. _nop_();
  79.   nop_();
  80.      _nop_();
  81.      _nop_();
  82.    shuchu=0;
  83. }
  84. void  xs() //数码管逐位扫描显示,
  85. {
  86. smg595(smg[a],smg1[0]); ys(10); smg595(smg[d],smg1[4]);
  87. smg595(smg[b],smg1[1]); ys(10);  smg595(smg[d],smg1[4]);
  88. smg595(smg[c],smg1[2]); ys(10); smg595(smg[d],smg1[4]);
  89. smg595(smg[d],smg1[3]); ys(10); smg595(smg[d],smg1[4]);

  90. }
  91. void ys(unsigned char  c)  // 大概1MS的延时。,C为5时
  92. {
  93. unsigned char a,b ;
  94. for(a=c;a>0;a--)
  95. for(b=200;b>0;b--);

  96. }
  97. /*void ADdsh()
  98. {
  99. P1M0=0X02;P1M1=0X00; //设置P1,1 口为高阻态

  100.    ADC_CONTR=0X81;// 7:ADC_POWER 6:SPEED1 5:SPEED0 4:ADC_FLAG 3:ADC_START 2:CHS2  1:CHS1 0:CHS0
  101. _nop_();
  102.   nop_();
  103.      _nop_();
  104.      _nop_();
  105. ADC_CONTR=0X89;

  106.        e=ADC_DATA*20;// ADC_DATA  是AD转换结果高8位数据存储,ADC_LOW2是 低两位结果存储
  107.    
  108.    // e=e/10;                                                                                                                                                                                                                                                                                                                                                                                                                                       
  109. } */
  110.    void zhongduan ()interrupt 0 // 中断程序 关键字 interrupt后数字带表优先级 中断0是0,定时器 1 是1 中断1是2
  111.   {
  112.    er++;  if(er>=2&&er<=25){ kahao<<=1; };    // shu[ac]<<=1; ar++;  if(ar==4) {ar=0;ac++;};  
  113.       
  114.   
  115. }        

  116. void zhongduan1 ()interrupt 2 // 中断程序 关键字 interrupt后数字带表优先级 中断0是0,定时器 1 是1 中断1是2
  117.   {
  118.   er++;   if(er>=2&&er<=25){ kahao<<=1;kahao++; };   // shu[ac]<<=1;shu[ac]++; ar++;     if(ar==4) {ar=0;ac++;};
  119.   
  120.               
  121.   }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-9-4 18:27 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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