1. 51单片机的最佳计数频率是多少如何算出来的,最好能讲解下 求
51单片机计数,输入的计数频率不可以超过主频的一半,
以12M晶振,12分频来算,主频是1M,那么最高计数频率为500KHz。
主频1MHz,那么单片机每个周期,也就是1us可以检测一次管脚的状态,检测一次跳变由高到低,或者由低到高,需要两个周期,即2us,也就是500KHz。
准确的说,要求输入的信号变化速率必须低于主频,才能确保可以被识别。
2. 51单片机的时钟周期的频率为12MHz,那么ALE信号的频率为多少
ALE端为晶振频率的1/6,题中给的是“时钟周期的频率”(即“晶振频率”的1/2),所以“晶振频率”为24MHz,ALE信号的频率为24/6,即4MHz。
简介
51单片机是对兼容英特尔8051指令系统的单片机的统称。51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。
同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51,PHILIPS,和WINBOND等,我们常说的已经停产的89C51指的是ATMEL公司的AT89C51单片机,同时是在原基础上增强了许多特性。
如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取代了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。
3. 51单片机输出PWM的最高频率和占空比
51所能输出的PWM的最大频率 是由单片机的时钟周期决定的,
25Hz以上肉眼就基本看不出来了
占空比是可以0%~100%调整的,这个是由程序决定
#include <REGX52.H>
#define uchar unsigned char
#define uint unsigned int
sbit PWM_OUT=P3^0; //PWM输出
void DelayMS(uint ms)
{
uchar i,j;
for(j=ms;j>0;j--)
for(i=0;i<40;i++);
}
void main()
{
uint Val; 改变Val值可以改变占空比 0--100
while(1)
{
ADOE=0;
if(Val==0) //PWM 输出(占空比为0%)
{
PWM_OUT=0;
DelayMS(255);
continue;
}
if(Val==0xff) //PWM输出(占空比为 100%)
{
PWM_OUT=1;
DelayMS(255);
continue;
}
PWM_OUT=1;
DelayMS(Val);
PWM_OUT=0;
DelayMS(255-Val);
}
}
4. 单片机频率计算公式
这得看是什么单片机了:
对于精简指令集性能的单片机的工作频率(1/机器周期)=时钟频率(1/时钟周期).
普通的51单片机来说:频率是1MHZ,时钟周期是1/12us(1除以12M),机器周期是12倍的时钟周期--1us.
周期是频率的倒数 或者频率是周期的倒数
1秒:相当于频率是1HZ ,也就是1/1S =1HZ
那么1/1ms =1/0.001S =1000HZ