找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机打印机纸张计数器程序

[复制链接]
跳转到指定楼层
楼主
打印机纸张计数器  测试完美



单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. //uchar dd[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};        //共阳极数码管断码表
  6. uchar dd[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xb6};

  7. sbit k1=P3^7; //按键接口定义 加
  8. sbit k2=P3^1;  //           减
  9. sbit k3=P3^6;  //           复位
  10. sbit led1=P2^0;
  11. sbit led2=P2^1;
  12. sbit duan1=P2^6;
  13. sbit wei1=P2^7;
  14. sbit duan2=P2^5;
  15. sbit wei2=P2^4;
  16. uchar shu=0;         //计数变量
  17. void delay1ms()                //@11.0592MHz
  18. {
  19.         unsigned char i, j;
  20.         _nop_();
  21.         _nop_();
  22.         _nop_();
  23.         i = 11;
  24.         j = 190;
  25.         do
  26.         {
  27.                 while (--j);
  28.         } while (--i);
  29. }

  30. void display_led1()           //显示函数
  31. {
  32.         if(shu>=10)
  33.                  {
  34.         wei1=1;
  35.         P0=0XFE;
  36.         wei1=0;
  37.         duan1=1;
  38. //  P0=dd[shu/100];   //百位
  39.                         P0=dd[shu/10%10];   //十位
  40.         duan1=0;
  41.   delay1ms();           //?
  42. }
  43.        
  44.   wei1=1;
  45.         P0=0XFD;
  46.         wei1=0;
  47.         duan1=1;                       
  48.         P0=dd[shu%10];   //十位
  49.         duan1=0;
  50.         delay1ms();           //消影                       
  51.        
  52. //        wei1=1;
  53. //        P0=0XFB;
  54. //        wei1=0;
  55. //        duan1=1;
  56. //  P0=dd[11];   //个位
  57. //        duan1=0;
  58. //  delay1ms();
  59. }

  60. void display_led2()           //显示函数
  61. {
  62.         if(shu>=20)
  63.                  {
  64.         wei2=1;
  65.         P1=0XFE;
  66.         wei2=0;
  67.         duan2=1;
  68.   P1=dd[shu*5/100];   //百位
  69.         duan2=0;
  70.   delay1ms();          
  71.                  }
  72.                  if(shu>=1)
  73.                  {
  74.   wei2=1;
  75.         P1=0XFD;
  76.         wei2=0;
  77.         duan2=1;                       
  78.         P1=dd[shu*5/10%10]+0X80;   //十位
  79.         led1=0;
  80.         led2=0;
  81.         duan2=0;
  82.         delay1ms();           //消影                       
  83.                  }
  84.         wei2=1;
  85.         P1=0XFB;
  86.         wei2=0;
  87.         duan2=1;
  88.   P1=dd[shu*5%10];   //个位
  89.         duan2=0;
  90.   delay1ms();
  91. }
  92. void key()                  //按键操作函数
  93. {
  94.    if(k1==0)           //判断
  95.    {
  96.            delay1ms();          //消抖
  97.           if(k1==0)                 //再判断
  98.             {

  99.            shu++;if(shu==200){shu=0;}  //计数加,到100回0
  100.              }
  101.                         while(k1==0);
  102.       }
  103. //   if(k2==0)
  104. //   {
  105. //            delay1ms();
  106. //          if(k2==0)
  107. //          {
  108. //                   shu--;if(shu==-1){shu=199;}        //计数减 零以下 回99
  109. //          }        while(k2==0);
  110. //   }
  111.    if(k3==0)
  112.    {
  113.             delay1ms();
  114.           if(k3==0)
  115.           {
  116.             shu=0;                 //变量清零
  117.             led1=1;
  118.             led2=1;
  119.           }       
  120.                 while(k3==0);
  121.    }
  122. }
  123. void main()
  124. {
  125.   while(1)
  126.    {
  127.                   
  128.                  display_led2()        ;
  129.                  display_led1();
  130.             key();
  131.    }
  132. }
复制代码

上图Gerber文件下载: Gerber文件.7z (134.69 KB, 下载次数: 15)



评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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