单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 223|回复: 0
收起左侧

avr单片机智能频率计的设计+仿真+程序资料

[复制链接]
hz1234 发表于 2019-9-10 11:27 | 显示全部楼层 |阅读模式
智能频率计仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png 51hei浏览器截图20190910112633.png

单片机源程序如下:
  1. #ifndef main_c   //test ok
  2.   #define main_c
  3. #endif

  4. #include "main.h"
  5. //************************全局变量

  6. volatile uint t0_cont;

  7. volatile uint t1_cont;
  8. volatile uchar flg1; //
  9. //-------------------------------------------------------------------------
  10. //     测试函数 用来初始化
  11. //-------------------------------------------------------------------------
  12. void test()
  13. {
  14.   send_str( "pinlvji" ); //完成后把所有串口去掉
  15.   showstr( "cymometer", 1, 1, 9 ); //液晶显示
  16. //  showstr( "1KHz", 12, 1, 4 );
  17.   showstr( "Hz", 14, 2, 2 );
  18. }

  19. //-------------------------------------------------------------------------
  20. //mcu初始化 端口 定时器 中断 外中断 变量
  21. //-------------------------------------------------------------------------
  22. void mcu_init()
  23. {
  24. //******************端口
  25.   data_direc = out; //输出
  26.   DDRB = out; //输出
  27.   DDRC = out; //输出
  28.   PORTC = 0X00; //输出0

  29.   DDRB=0XE0;   //输入口      
  30.   PORTB=0XE9;
  31. //********************定时器
  32.   TIMSK |= 0x12; //定时中断允许位 只允许两个匹配
  33. }

  34. //-------------------------------------------------------------------------
  35. //       主函数
  36. //-------------------------------------------------------------------------
  37. int main()
  38. {
  39.   uchar f_t; //用测频还是测周
  40. //******************
  41.   mcu_init();                 //初始化
  42.   usart_init( 57600 );        //初始化
  43.   send_str( "com ok" ); //完成后把所有串口去掉
  44.   yj_set( 0x38, 0x0f, 0x06 ); //初始化
  45.   clearall(); //初始化
  46.   mzd_on();   //开中断

  47.   #if debug
  48.     test();
  49.   #endif

  50.   while ( 1 )
  51.   {
  52.     if ( !( PINB& ( 1 << 3 )))
  53.     {
  54.       refish();       //刷新所有的东西
  55.       f_t = hz_try(); //估计范围 1k
  56.       if ( f_t )
  57.       {
  58.         cl_f(); //频率法
  59.       }
  60.       else
  61.       {
  62.         cl_t(); //周期法
  63.       }
  64.     }
  65.   }
  66.   return 1;
  67. }
复制代码

所有资料51hei提供下载:
一种智能频率计的设计与制作(AVR)proteus仿真 程序资料.rar (89.88 KB, 下载次数: 7)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表