找回密码
 立即注册

QQ登录

只需一步,快速开始

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

传送带产品计数器的矩形键盘设值问题 附单片机程序

[复制链接]
跳转到指定楼层
楼主
这个是传送带产品计数器,想要在下列代码上,再加设计一个矩形键盘设置预值的部分,我是新手,求大神指教


单片机源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit STAR_KEY =P3^6;
sbit STOP_KEY =P3^7;
sbit L0=P1^0;
sbit L1=P1^1;
sbit L2=P1^2;
sbit L3=P1^3;
sbit L4=P1^4;
sbit L5=P1^5;
sbit L6=P1^6;
sbit L7=P1^7;
sbit L8=P2^0;
sbit L9=P2^1;
sbit L10=P2^2;
sbit L11=P2^3;
sbit L12=P2^4;
sbit LED4=P2^5;
sbit LED3=P2^6;
sbit LED2=P2^7;
sbit LED1=P3^0;
sbit MOTOR=P3^5;
uchar n[2]={1,0};
uchar code
dispcode[]= {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff};
void delayms(uint x)
{
  uchar y;
  while(x--)
{
   for (y=0;y<123;y++) {;}
  }
}
uchar Keynum()
{
   uchar KEY=0;
  STAR_KEY=1;STOP_KEY=1;
   if (STAR_KEY==0) {delayms (10);if(STAR_KEY==0)n[0]=0;n[1]=1;}
   if (STOP_KEY==0) {delayms (10);if(STOP_KEY==0)n[0]=1;n[1]=0;}
   return n[2];
}
void xianshi(uint o)
{
   P0=0xff;
   P0=dispcode[o/1000];LED4=1 ;LED3=0;LED2=0;LED1=0;delayms(5);
  P0=0xff;
   P0=dispcode[(o/100)%10];LED4=0;LED3=1;LED2=0;LED1=0;delayms(5);
  P0=0xff;
   P0=dispcode[(o/10)%10];LED4=0;LED3=0;LED2=1;LED1=0;delayms(5);
  P0=0xff;
   P0=dispcode [o%10];LED4=0;LED3=0;LED2=0;LED1=1;delayms(5);
}







}
void main(void)
{
  uint q;
  IT0=1;
  EA=1;
EX0=1;
  TMOD=0X05;
  TL0=0x00;
  TH0=0x00;
while(1)
{
    q=qiuzhi();
    if (MOTOR==1){xianshi(q);} else{xianshi(TL0);Keynum();TR0=n[1];}
    if (TL0==q){TR0=0;MOTOR=1;} else{Keynum();MOTOR=n[0];}
}
}
void Int0(void) interrupt 0
{TL0=0x00;TR0=1;}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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