单片机 一个按钮设置按一下加1 另一个按键按一下减1 求帮忙编写程序

不好意思能不能用汇编语言我不会翻译C语言... 不好意思 能不能用汇编语言 我不会翻译C语言 展开
 我来答
hwm_2012
推荐于2017-09-10 · TA获得超过966个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:412万
展开全部
#include<reg52>
#define uchar unsigned char
#define uint unsigned int
sbit K1 = P1^4;
sbit K2 = P1^5;
uchar data K1state;
uchar data K2state;
uint  data num,ntmp;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x06f,0x77,0x7c,0x39,0x5e,0x79,0x71} ;
uchar data showIndex,indexTmp;
uchar data  W[8];
void delay(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);//能使之延时接近1毫秒就成 无需精确
}
void main()
{
  K1state = 0xFF;
  K2state = 0xFF;
  num = 0;
  while(1)
  {
    delay(1);//每毫秒轮询一回
    //移位法,延时防抖
    K1state = (K1state<<1);
    K2state = (K2state<<1);
    if(K1) K1state++;
    if(K2) K2state++;
    //检查开关状态
    if(K1state==0x80) num++;
    if(K2state==0x80) num--;
    for(indexTmp=0,ntmp = num;indexTmp<=7;indexTmp++)
    {
      W[indexTmp] = num%10;
      num /=10;
    }
    P0 = (0x01<<showIndex);//位选
    P2 = table[W[showIndex]];//段选
    showIndex++;
    if(showIndex>=8)
      showIndex=0;
  }
}

看了你的全图,修改后了,用Keil uVision 3或4都可以,编译后可以查看对应的汇编代码

程序稍大一点的,不会有人用汇编来给你蘑菇,汇编设计写编码太慢了,开发代价不值得

jolen6474
2013-05-15 · TA获得超过221个赞
知道小有建树答主
回答量:319
采纳率:100%
帮助的人:152万
展开全部
学单片机 先学C语言 学深了 再学汇编 这样更好上手
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
songhaiyong1
2013-05-15 · TA获得超过2711个赞
知道小有建树答主
回答量:1371
采纳率:50%
帮助的人:1117万
展开全部
sbit k=P1^5;
sbit m=P1^6;
int p=0;
while(1)
{
if(k==0)
p++;
else if(m==0)
p--;
}
追问
不好意思  我没问清楚   能不能用汇编语言 我不会翻译C语言
追答
你可以混合编程嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yagesi104
2013-05-15 · TA获得超过463个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:210万
展开全部
求剩余下面的图 做边接到什么了???
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式