就是按钮按一下,数码管从0开始加1,加到9,用c语言单片机编写并且要用计数器的方法编写.

求求你帮帮我了,谢谢你们了... 求求你帮帮我了,谢谢你们了 展开
 我来答
1079940306
2014-12-01 · TA获得超过352个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:116万
展开全部
#include<reg52.h>
#define uchar unsigned char
sbit P32=P3^2;
uchar num[10]={0xc0,0x5b};    
/*
具体值记不得了,可以百度,就是0-9,这里就写了俩还不一定是对的,就那意思
*/

void delay50us(void)
{
    uchar i,j;
    
    for(i=0;i<100;i++)
    {
        for(j=0;j<19;j++){;}
    }
}
void main(void)
{
    uchar s1;
    s1=0;P0=num[s1];
    while(1){
    if(P32==1)//如果p32是高电平
    {
        delay50us();//延时防抖动
        if(P32==1)
        {
            while(P32);
            /*
这是个很常用的处理方法,P32=1则会一直在循环里,P32=0则进行下一步,在串口双机通信实验里也许还能用上
            */
            if(s1==9){s1==0;}//如果是9就下一个显示0
            else{s1++;}//如果不是正常加一
        }
    }
    P0=num[s1];//刷新7seg值
}
}

这程序我刚打的,我也不知道能不能行,你看看吧,试试。能帮上点算点。


不好意思我没好好看清题目

!我没用计数器,sorry耽误你时间了

追问
你能在帮我一下吗
原情歌G
推荐于2017-12-26
知道答主
回答量:2
采纳率:0%
帮助的人:1647
展开全部
# include< reg51.h>
unsigned char count=0;
unsigned char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void main()
{
EA=1;
Ex1=1; //外部中断1
ET1=1;
while(1)
{
P0=a[count]; //P0口接数码管
}
}
void int1() interrupt 2 //外部中断1(INT1)
{
P2=0x01; //数码管引脚接了P2.0口
P0=a[count++];
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雍和宫回音bU
推荐于2017-05-18 · 知道合伙人教育行家
雍和宫回音bU
知道合伙人教育行家
采纳数:503 获赞数:1214
毕业于某大学电子信息专业,硕士学位,多年从事数字电路、模拟电路、单片机等相关专业教学工作

向TA提问 私信TA
展开全部
#include<stdio.h>
main()
{
int i,sum=0;
for(i=1;i<=9;i++)
{
sum=sum+i;
printf("%d+",i);
}printf("%d=%d\n",i,sum);
}
追问
我试过了,不行呀
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式