【017】【毕业设计】基于51单片机的频率计设计的Proteus仿真与实物设计

一、资料内容

  • (1)、基于51单片机的频率计proteus仿真设计一份;
  • (2)、基于51单片机的频率计设计keli源代码一份;
  • (3)、基于51单片机的频率计设计Altium designer 原理图一份;
  • (4)、基于51单片机的频率计设计Altium designer PCB一份;
  • (5)、基于51单片机的频率计proteus仿真与实物设计视频讲解一份;

二、设计要求

  • (1)、本次设计要求以51系列单片机为核心,设计一款频率计装置;
  • (2)、系统要求可以通过数码管模块显示相关数据;
  • (3)、能够检测频率范围为0-999HZ(需要更高频率范围请留言);

三、相关资料截图

图一、系统proteus仿真界面截图 

图二、系统Keil源程序界面截图

图三、 系统Altium designer原理图工程文件

图四、 系统Altium designer  PCB工程文件

四、视频讲解

部分代码:

#include <reg52.h>
#define	Segment	P2
#define sl P0
sbit addr0=P1^0;        //定义数据端口地址,000时16分频,100不分频
sbit addr1=P1^1;
sbit addr2=P1^2;
sbit clear=P1^3;        //计数器清零
sbit ledM=P1^4;         //档位led显示
sbit ledK=P1^5;
sbit ledB=P1^6;

unsigned char cnt;      //定时1s计数
unsigned char d[4];     //对应数码管的各位
unsigned char level;    //档位
unsigned int tN;        //不同档位计时值
unsigned int fCnt;      //脉冲下降沿次数
unsigned int regCnt;    //脉冲次数暂存
unsigned int pCnt;      //频率显示
unsigned char code Num[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e
};



void Delay(unsigned	int	DelayTime)
{
	while(DelayTime--);
}

void disp()
{
	if(level==0)                 //B位档
	{
		d[3]=0;
		d[2]=pCnt/100;
		d[1]=(pCnt%100)/10;
		d[0]=pCnt%10;

		sl=0xf8;Delay(1);Segment=Num[d[0]];Delay(300);//个
		sl=0xf4;Delay(1);Segment=Num[d[1]];Delay(300);//
		sl=0xf2;Delay(1);Segment=Num[d[2]];Delay(300);
		sl=0xf1;Delay(1);Segment=Num[d[3]];Delay(300);
	}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B站小邓子分享官

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值