//定时器0 设置定时时间1秒   定时器1 设置计数1秒内的脉冲数量

#include

#define uchar unsigned char

#define uint unsigned int

uint ff;   //接受频率值

uchar start=1;   //定时器,计数模式启动变量

code uchar seg[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};

code uchar tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

void delay(uint k)  //延时函数

{

while(k--);

}

void show(uint k)  //数值显示函数

{

static uchar i,j;

uint ss[5];

i=0;

do

{

ss[i]=k%10;

i++;

}while(k/=10);

for(j=0;j

{

P0=seg[ss[j]];

P2=tab[j];

delay(100);

P0=0xff;

P2=0xff;

}

}

void time0_init()

{

TMOD|=0x01;  //定时器0 定时模式 计数范围65536

TH0=0x3c;         //定时初值50ms

TL0=0xb0;

TR0=0;     //暂停定时器0

}

void time1_init()

{

TMOD|=0x50;     //定时器1  计数模式,计数范围65536

TH1=0;      //计数初值0

TL1=0;

TR1=0;    //暂停计数器

}

void str_init()    //定时器中断

{

EA=1;

ET0=1;

}

void time0_event() interrupt 1

{

static uchar i;

i++;

TH0=0x3c;         //定时初值50ms

TL0=0xb0;

if(i==20)

{

i=0;

TR1=0;    //停止计数

TR0=0;          //停止定时

ff=(TH1*256+TL1);   //求出频率值   就是1秒内脉冲次数

TH1=0;          //计数值清零

TL1=0;

TH0=0x3c;         //定时初值50ms

TL0=0xb0;

start=1;               //启动定时器开启变量

}

}

void main()

{

time0_init();

time1_init();

str_init();

while(1)

{

if(start==1)

{

TR0=1;  //启动定时器

TR1=1;  //启动计数器

start=0;  //关闭启动变量位 保证1秒时间

}

show(ff);

}

}

51单片机频率计c语言程序,51单片机简易频率计源代码相关推荐

  1. 单片机spwm c语言程序,基于单片机SPWM简易逆变电路及程序设计

    作为当今电子行业一种比较成熟的,目前使用较广泛的PWM法,SPWM法是以冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同的结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM ...

  2. 单片机显示屏c语言程序,51单片机驱动1602液晶显示器c程序

    51单片机驱动1602液晶显示器c程序 /* 程序效果:单片机控制液晶显示器1602显示字母数字,用户自行更改io 程序版权:http://www.51hei.com */ #include //头文 ...

  3. 51控制继电器的C语言程序,C51单片机红外遥控控制继电器源程序

    #include       //包含单片机寄存器的头文件 sbit IR=P3^2;           //将IR位定义为P3.2引脚 unsigned char a[4];    //储存用户码 ...

  4. 51单片机烟雾传感器C语言程序,51单片机烟雾报警器制作+程序

    烟雾报警器制作过程及相关程序 //程序头函数 #include //宏定义 #define uint unsigned int #define uchar unsigned char #define ...

  5. 单片机右移c语言程序,51单片机+点阵8*8上、下、左、右移显示C程序(原创)

    最近在研究点阵,这东西看起来简单,但是要完全掌握它,可是要花一定时间的!我现在做得8*8点阵硬件电路是这样的,行采用74HC138+三极管8550驱动,列采用74HC595驱动,这种电路是非常用的,其 ...

  6. 52单片机继电器c语言程序,STC89C52单片机继电器实验

    原标题:STC89C52单片机继电器实验 / 实现功能:打开实验板上的蜂鸣,响0.3秒,然后关闭0.3秒,然后依次这样循环, 同时在实验板上继电器旁边的发光二极管也会跟随继电器不停地闪烁 实验板型号: ...

  7. 单片机升降机c语言程序,基于单片机的货运升降机控制系统设计

    基于单片机的货运升降机控制系统设计 本文介绍以MSP430F2232单片机为核心的货运升降机控制系统.该系统完成了各楼层呼叫.货运升降机运行.急停.货运升降机位置.货运升降机门.照明.故障等 (本文共 ...

  8. 52单片机继电器c语言程序,STC89C52单片机温控继电器代码

    /*************************************************************************** 标题:        温控继电器实验 实验板: ...

  9. 89c51c语言程序,89C51单片机计算器C语言程序.doc

    89C51单片机计算器C语言程序 89C51单片机[计算器]C语言程序 89C51单片机[计算器]C语言程序2010-12-15 16:54/*89C51单片机[计算器]C语言程序*/ /*P2位选P ...

最新文章

  1. 淘宝装修:第一日 —— 图片轮播
  2. mysql max_allowed_packet 参数 限制接受的数据包大小
  3. JMeter3.0 post参数/BeanShell中文乱码问题
  4. 【轉】JAVA中isEmpty和null以及的区别
  5. 在 eclipse 中 设置 jvm 的 运行时目录
  6. Flask使用Flask-SQLAlchemy操作MySQL数据库
  7. spring mvc学习(60):ssm项目整合
  8. 赋能开发者,英特尔发布oneAPI 2022工具包
  9. 之前画得太丑了,再来张好看的.我试着改小点.但是就看不清了
  10. java 网络实验_20145220 实验五 Java网络编程
  11. 一文搞定移动端适配!
  12. 数据库设计--名值模式(转)
  13. mysql jemalloc_Jemalloc优化MySQL和Nginx
  14. [已解决]关于win10计算器无法使用的问题
  15. 深入理解以太坊 P2P 网络设计
  16. 音频转换成mp3格式的步骤
  17. 输出二叉树中从每个叶子结点到根结点的路径
  18. 1-1 Java基础和编程概述
  19. 硬核!解密四向穿梭车智能化密集存储技术
  20. 好玩的话剧 节选之 相亲的密谋

热门文章

  1. http协议解决粘包拆包半包 的编码解码过程、 以及netty 使用http协议的原理
  2. link.sct解析
  3. Xcode 13 正式版发布,来看看有什么新特性
  4. postgresql时区
  5. android studio按坐标布局,Android studio一个手势锁的界面布局
  6. python学习日记(内置、匿名函数练习题)
  7. c语言教程+school,C语言教程方法用法 _C语言-w3school教程
  8. Java基础 DAY15
  9. 计算机打印机提示无法打印,为什么电脑连的打印机没法打印状态一直错误
  10. python 红楼梦 人物关系_用Python来理一理红楼梦里的这些关系