51单片机数字频率计-带仿真文件

发布者:salahc1983最新更新时间:2015-07-20 来源: 51hei关键字:51单片机  数字频率计  仿真文件 手机看文章 扫描二维码
随时随地手机看文章
51单片机做的数字频率计,源程序和仿真图请从下面的链接下载:

http://www.51hei.com/f/51数字频率计.rar

#include
#include
#define uint unsigned int 
#define uchar unsigned char
unsigned char code dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//共阴数码管
unsigned char code dispcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0-9
unsigned char count[8]={0,0,0,0,0,0,0,0};
unsigned int T0count=0;
unsigned char  time1tick=0;
unsigned char i=0;
unsigned long  x;

void pulse_init(void)
{
 TMOD=0x16;//T0工作在方式2,计数器模式
 TH0=0x00;
 TL0=0x00;
 TH1=0xb1;//20ms中断一次
 TL1=0xe0;
 ET0=1;
 ET1=1;
 EA=1;

}
void delay(uint ms)
{
 unsigned char i,j;
 for(i=0;i   for(j=0;j<250;j++)
  {
   _nop_();
   _nop_();
   _nop_();
   _nop_();
  }
}
static void time0_int(void) interrupt 1 using 0
{

 T0count++; //T0为计数器模式
}

void t1(void) interrupt 3 using 0

  time1tick++;
  TH1=0xb1;//20ms中断一次
  TL1=0xe0;
  if(time1tick==50)//定时1s
  {
      time1tick=0;
         EA=0;      
         TR0=0;
   TR1=0;
           
        
         
  }   
 
 
}

void display(void)
{        
                x=256*T0count+TL0-4; //转换成10进制
                x=x/17.3;
  i=7;//数码管的显示高位表示数据的低位
  while(x)//赋值
  {
   count[i]=x%10;
   x=x/10;
   i--;
  }
   count[i]=x;
  for(i=0;i<8;i++)
  {
     P1=dispbit[i];
   P0=dispcode[count[i]];
   delay(1);
  }
 
}
void main()
{
  pulse_init();
  TR1=1;//开启timer
  TR0=1;
  while(1)display();
}
 

关键字:51单片机  数字频率计  仿真文件 引用地址:51单片机数字频率计-带仿真文件

上一篇:51单片机做32路流水灯程序
下一篇:51单片机+点阵8*8上、下、左、右移显示C程序

推荐阅读最新更新时间:2024-03-16 14:25

51单片机定时器的原理与使用(二)
承接上一节 51单片机定时器的原理与使用 ,这节我们继续讲述怎么用定时器做一个电子钟,PWM脉冲和测电阻。先从实验三讲起吧! 实验三、定时器测电阻 测量如下图Rx的电阻并显示在数码管上。 测量思路为: 1、电容C1放电,P2.5与P2.6设置为输入模式,P2.7设置为推挽输出且为输出低电平0。这时候C1通过R1和P2.7放电。 2、切断C1的放电回路,将P2.7设为输入模式。 3、P2.5设为推挽输出,并且输出高电平5V,即P2.5的高电平通过Rk对C1充电。同时打开定时器Tx。 4、MCU不断读P2.7的状态,当P2.7为高,则关闭定时器。同时P2.5恢复输入模式。这个过程中定时器记录了P2.5通过Rk对C1充电直到P2.
[单片机]
16位数据传送指令(1条)——mcs51单片机汇编语言
16位数据传送 指令 (1条) 这是89C51单片机唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入数据指针DPTR中去。其中高8位送入DPH,低8位送入DPL。 MOV DPTR,#data16 ;#dataH→(DPH),#dataL→(DPL)16位常数的高8位送到DPH,低8位送到DPL 例如:MOV DPTR,#2345 则执行完程序后,DPL中的值为23,DPL中的值为45。
[单片机]
如何将51单片机进行内存优化
对51单片机内存的认识,很多人有误解,最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128以上的某些地址为特殊寄存器使用,不能给程序用 与 PC机不同,51单片机不使用线性编址,特殊寄存器与 RAM 使用重复的重复的地址。但访问时采用不同的指令,所以并不会占用 RAM 空间。 由于内存比较小,一般要进行内存优化,尽量提高内存的使用效率。 以 Keil C 编译器为例,small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为我们的程序所用,寄存器 R0-R7必
[单片机]
MCS-51单片机汇编语言:数据传送指令有哪些
数据传送指令是MCS-51单片机汇编语言程序设计中使用最频繁的指令,包括内部 RAM、寄存器、外部RAM以及程序存储器之间的数据传送。 数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。 1. 以累加器A为目的操作数的指令 MOV A, #data ; A← #data MOV A, Rn ; n=0~7, A← (Rn) MOV A, @Ri ; i=0,1 , A← ((Ri)) MOV A, direct ; A← (Rn) direct为内部RAM或SFR地址 2. 以Rn为目的操作数的指令 MOV Rn, A ;Rn ← (A) , n=0~7
[单片机]
51单片机课程设计:基于51单片机的超声波测距
本程序利用超声波模块来进行距离的测量,并显示在数码管上,其他朋友可以在本程序的基础上,修改部分代码,应用到智能小车上或者其他测距设备上。 超声波测距的原理是:首先给模块Trig端一个高电平,然后单片机开始计时,同时模块会发射超声波信号,当单片机检测到Echo端为高电平时(也就是说模块收到反射的信号),计时停止。通过以上操作,我们就可以得到一个时间变量,然后调用对应的公式就可以将时间变量转换为距离。 关于粘贴复制乱码的问题:如果程序复制到Keil编译器上出现注释乱码,可以先建一个.c文件,也就是说不在keil里面编辑,然后用记事本打开.c文件,将源码复制进去,再在keil中添加文件即可。 /*****************
[单片机]
51单片机心形流水灯源程序
用stc89c51单片机做的心形流水灯效果非常棒,下面是实物图: 背面: 原理图我就不画了4个p口全部接上led灯即可,下面是控制程序: #include at89x52.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar code table0 ={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//P0-P7依次点亮 uchar code table1 ={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//P0-P7依次熄灭 uch
[单片机]
<font color='red'>51单片机</font>心形流水灯源程序
51单片机霍尔传感器电机测速设计
1.本设计采用STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机作为主控制器 2.采用霍尔传感器非接触式测电机转速 3.LCD1602液晶显示当前的转速,转速单位为转/分(RPM)。和显示当前的pwm占空比0~100%。 4.电机的速度可以通过按键调整,也可以开始暂停,正转和反转。 注意:磁铁和霍尔元件最近距离在2mm左右,太近可能会在电机转动时碰到霍尔元件,太远霍尔元件可能会检测不到磁铁。 使用说明: 液晶屏第一行显示电机转速,第二行显示占空比,占空比数值越大,电机转速越快。 系统一共有6个按键,单片机附近的独立按键是系统的复位按键,按下单片机会复位。 下面一排是控制按键: 1键:加速键,可
[单片机]
<font color='red'>51单片机</font>霍尔传感器电机测速设计
基于51单片机P0口的片外数据存储器扩展
随着单片机运算速度和处理能力的不断提高,其在各个领域得到更广泛的应用。然而。随着其应用领域的不断扩大及集成化的不断提高,其内部资源已不能满足实际需求,往往需要对其内部资源进行扩展。经典的扩展方法主要是通过地址总线、数据总线即P0、P2口,以及控制线ALE、*****等来进行数据或程序存储器的扩展,最大寻址空间可达64KB,但这种方法占用端口较多,在有些情况下不能满足需求。这里以MCS-8051系列单片机为例,介绍一种新的片外数据存储器扩展方法,仅用单片机的P0口、P1.6及P1.7共10个端口便可实现256 KB数据存储器的扩展。 1 总体设计思路 MCS-8051单片机片内部存储空间为256 B,有P0、P1、P2、P
[单片机]
基于<font color='red'>51单片机</font>P0口的片外数据存储器扩展
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved