当前位置:首页 » 课程大全 » 简易频率计单片机课程设计

简易频率计单片机课程设计

发布时间: 2021-03-07 06:36:48

① 基于AT89S52单片机简易频率计的设计

AT89s51可能不行,其它速度快一点的能行。

1,信号变换到0与5V的高低电平
2、用一个单片机采样中断方式直接计数
3、用一个单片机单独显示
这样简单一些,不过频率不会太高!

② 求一份数字频率计的课程设计,基于C51单片机的,使用proteus、keilC软件

我电脑找找看有没有

③ 单片机数字频率计课程设计

http://hi..com/lyzhangxiang/blog/item/0837ba13cea8b8c9c3fd78e7.html

去我的博客看看吧 我是上传了

④ 求一个简易单片机频率计设计程序

我有一个通过数码管显示的,你可以把他改成1602显示,如果你要买一个,我可以给你改,大概80元左右,但你要自己付邮费,当然,也可以把程序给你,把数码管的硬件图给你画一个,你自己去研究,不用收你费。

⑤ 简易频率计设计(单片机课设)

要说也没什么难的,就是挺复杂,主要是输入信号的电压变化区间比较大,考虑的话那就要首先采集最高电压峰值,然后转换电平比较电压值来实现进一步的频率测量。如不考虑的话,电压的量程范围受 能测量 0.1V 的限制不能太高。不过你使用 较贵的 运放 可以忽略,比如 10元左右的 OP27。
使用 OP27 运放 正负5V 至 正负15V做电源 采用差分放大100或1000倍连接,输入端采用10M欧及100K欧电阻分压后分别输入到差分放大电路的两个输入端,差分放大的特点是 正输入 和负输入 比较 谁电势高输出谁,正输入电势高输出正并且放大100倍或1000倍电压最高到运放源电压正,负输入电势高则输出负并且放大100倍或1000倍电压最高到运放源电压负。其实只需要再这里弄两个光耦把正负运放源电压变成 单片机的 高低电平就OK了。采用10M欧和100K欧电阻分压后220V的交流电被分压到2.2V差,0.1V 的电压被分压到 0.001V差,没关系,我们的OP27能识别0.000002V的压差。一个周期,两个光耦会分别输出一次低电平,取其中一个接入到I/O 口 做中断,单片机调用自己定义的两个地址B到两个地址A并以两个地址A内容循环刷显数码管以100mS做一个周期,循环结束时对自己定义的两个地址B清零,中断产生时两个地址B加1,并注意进位。这样一来,两个地址B会在100mS内产生 一个周期加1的特点,如超过量程 自动跳转到 10mS做周期的循环去,同理,,,,,,频率越高就采用更短的循环周期。显示这里用数组查表显示即可。此法只可测频率电压范围可以为1000V 到 10mV 。频率视单片机的最高频率而定可到M级单位。

⑥ 51单片机制作简易数字频率计程序

这里有一个四位数码管的频率计,供参考

#include<reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
//ucharwei[4]={0XEf,0XDf,0XBf,0X7f};//位的控制端 (开发板)
ucharwei[4]={0X80,0X40,0X20,0X10};//位的控制端 (仿真)
uintz,x,c,v,date; //定义数据类型
uintdispcount=0;
uintlck=0;
uintdisp=0;
/******************************************************************

延时函数

******************************************************************/
voiddelay(uchart)
{
uchari,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{;
}
}
}

/**********************************************************************
数码管动态扫描
*********************************************************************/
voidxianshi()
{
/*****************数据转换*****************************/
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求个位

P2=wei[0];
P0=an[z];
delay(50);
P2=wei[1];
P0=an[x];
delay(50);
P2=wei[2];
P0=an[c];
delay(50);
P2=wei[3];
P0=an[v];
delay(50);


}

/*************************************************************************
定时器初值1ms
**************************************************************************/
voidinitTimer(void)
{
TMOD=0x0;
TH0=0xe3;
TL0=0xc;
}

/*************************************************************************
定时器函数
**************************************************************************/
voidtimer0(void)interrupt1
{
TH0=0xe3;
TL0=0xc;
lck++;
if(lck==1000)
{
disp=dispcount;
lck=0;
dispcount=0;
}

}

/*************************************************************************
中断函数
**************************************************************************/
voidint0(void)interrupt0
{

dispcount++;//每一次中断,计数加一

}

/*************************************************************************
主函数
**************************************************************************/
voidmain(void)
{

IT0=1;//INT0下降沿中断
EX0=1;//允许INT1中断
initTimer();//装入初值
TR0=1;
ET0=1;
EA=1;
while(1)

{
date=disp;
xianshi();
}
}

⑦ 求基于单片机简易频率计设计。要有电路图,程序,最好还有仿真图

#include <reg51.h>
unsigned long count = 0;
unsigned long show_count = 0;

unsigned char digest[11] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x83,0xF8,0x80,0x98,0xC6};
unsigned char scancode[8] = {0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};

sbit P1_0 = P1^0;

#define HIGH_BIT 0xFB
#define LOW_BIT 0x80

void Disp(int id)
{
P2 = 0;
P2 = scancode[id];
P0 = 0xff;
switch (id)
{
0: P0 = digest[(show_count / 10000000) % 10]; break;
case 1: P0 = digest[(show_count / 1000000) % 10]; break;
case 2: P0 = digest[(show_count / 100000) % 10]; break;
case 3: P0 = digest[(show_count / 10000) % 10]; break;
case 4: P0 = digest[(show_count / 1000) % 10]; break;
case 5: P0 = digest[(show_count / 100) % 10]; break;
case 6: P0 = digest[(show_count /10) % 10]; break;
case 7: P0 = digest[show_count % 10]; break;
}
}

void Timer0() interrupt 1
{
static unsigned int scount = 0;
static unsigned char rcount = 0;
TH0 = HIGH_BIT;
TL0 = LOW_BIT + 34;
scount++;

if (scount == 800) //1 second
{
scount = 0;
show_count = count;
count = 0;
}else if (scount % 2 == 0)
{
rcount++;
if (rcount == 8) rcount = 0;
Disp(rcount);
}

count += (TH1 << 8) | TL1;
TH1 = TL1 = 0;
}

void main()
{
TMOD = 0x51;
// 11.0592 Mhz 1.152 ms
TH0 = HIGH_BIT;
TL0 = LOW_BIT;
//initalize output counter
TH1 = 0;
TL1 = 0;

EA=1;
ET0=1;
TR0=1;
TR1=1;

for (;;);
}

⑧ 基于单片机控制的简易频率计设计,数码管显示。

神马分都不给,谁帮你弄!晕倒!晒太阳去!

⑨ 51单片机的简易频率计设计

单片机直接用复USB连电脑制只能取电不能通讯,通讯的话 需要接口电路,例如USB转TTL的芯片,CH340,PL2303,这样的芯片才可以,如果直接测TTL电平的话 确实不需要其他外围电路了,因为51的信号就是TLL电平的。

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919