微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机设计一个的计数器求助?

51单片机设计一个的计数器求助?

时间:10-02 整理:3721RD 点击:
设计题:请设计一个的计数器,实现0-9999内的计数,每按一次按键,计数值就加1。画出相应电路图(单片机、数码管、按键),并写出相应程序

网上搜索一下啊

好吧,应该是大作业吧!

能帮满解决一下不?

其实不大,只是我不会做,你会不?

会不,帮我写个程序呗,谢谢了

应该是毕业设计吧!~~自己做吧  有什么不会的倒是  可以给你指点 qq:971759001

入门的程序

可我不会……

还需要帮忙嘛?   需要的话971759001  发给你!~~~

我也想要一个计数器。

#include<reg52.h>
#include"main.h"
sbit D1=P1^0;
sbit D2=P1^1;
sbit KEY=P3^4;
sbit wela=P2^7;
sbit dula=P2^6;
uchar bai,shi,ge;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay_ms(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void display(uchar bai,uchar shi,uchar ge)
{               
                dula=1;
                P0=table[bai];
                dula=0;
                P0=0xf8;
                wela=1;
                P0=0xfe;
                wela=0;
                delay_ms(1);
                dula=1;
                P0=table[shi];
                dula=0;
                P0=0xf8;
                wela=1;
                P0=0xfd;
                wela=0;
                delay_ms(1);
                dula=1;
                P0=table[ge];
                dula=0;
                P0=0xf8;
                wela=1;
                P0=0xfb;
                wela=0;
                delay_ms(1);
}
void main()
{
        uchar m=0;
        wela=1;
        P0=0xf8;
        wela=0;
        dula=1;
        P0=table[0];
        dula=0;
        P3=0xff;
        while(1)
        {
                if(KEY==0)
                        {
                                delay_ms(5);
                                if(KEY==0)
                                {
                                        m++;
                                        P0=0xf8;
                                        if(m%2==1)
                                    {
                                                D1=0;
                                            D2=1;
                                        }
                                        if(m%2==0)
                                    {
                                                D1=1;
                                            D2=0;
                                        }
                                }
                                while(!KEY);
                                        delay_ms(5);
                                        while(!KEY);
                        }
                        bai=m/100;
                        shi=m%100/10;
                        ge=m%10;
                        display(bai,shi,ge);
        }
}

按键接到外部中断上,用下降沿触发更简单

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top