找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4944|回复: 4
打印 上一主题 下一主题
收起左侧

单片机频率计设计,包括仿真和代码

  [复制链接]
跳转到指定楼层
楼主
基于单片机的数字频率计的设计,包括仿真和代码,仿真用的proteus,有兴趣的同学可以看看。


单片机源程序如下:
  1. #include "reg51.h"
  2. #include "absacc.h"
  3. #define LED4 XBYTE[0x1FFF]
  4. #define LED3 XBYTE[0X3FFF]
  5. #define LED2 XBYTE[0X5FFF]
  6. #define LED1 XBYTE[0X7FFF]
  7. #define uint unsigned int
  8. unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9. int i=0,counter=0;
  10. unsigned char l4,l3,l2,l1;
  11. uint frequency;
  12. void t0ser(void);
  13. void int1ser(void);
  14. sbit P3_7=P3^7;
  15. void Display()
  16. {

  17. //        unsigned char l4,l3,l2,l1;//定义数的各个位
  18.         l4=frequency/1000;//千位
  19.         l3=(frequency-l4*1000)/100;//百位
  20.         l2=(frequency-l4*1000-l3*100)/10;//十位
  21.         l1=frequency-l4*1000-l3*100-l2*10;//个位
  22.         while(1)
  23.         {
  24.     LED4=table[l4];//送显千位
  25.     LED3=table[l3];//送显百位
  26.     LED2=table[l2];//送显十位
  27.     LED1=table[l1];//送显个位
  28.         if(P3_7==1) break;//对显示屏上的频率进行锁定
  29.         }
  30. }       
  31. void main()         //主函数
  32. {                 
  33.                 TMOD=0x51;//T0 记时 T1计数
  34.                 TH0=0x3c;//定时50ms
  35.                 TL0=0xB0;
  36.                 TH1=0x00;//计数
  37.                 TL1=0x00;
  38.                 TR0=1; //开T0
  39.                 TR1=1;//开T1
  40.                 ET0=1;//开中断
  41.                 EA=1;//打开总中断                                         
  42.                 while(1)
  43.                 {
  44.                         Display();
  45.                         }                       
  46.                         }

  47. void t0ser(void) interrupt 1 using 1 //中断源1 “interrupt 1”:定时器0溢出中断
  48. {
  49. counter++;
  50. if(counter<20)//记不满一秒
  51. {
  52. TH0=0x3C; //重置T0时间常数高8位
  53. TL0=0xB0; //重置T0时间常数低8位
  54. }
  55. else
  56. {                          TR0=0; //启动定时器T0
  57.                         TR1=0; //启动定时器T1
  58.                         frequency=TH1*256+TL1; //计算频率值
  59.                         TH1=0;//清T1高8位
  60.                         TL1=0;//清T1低8位
  61. ……………………

  62. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
单片机的简易频率计设计.zip (63.77 KB, 下载次数: 109)


评分

参与人数 2黑币 +10 收起 理由
1Ⅵ + 5 赞一个!
1332667120 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:428331 发表于 2018-11-17 18:18 | 只看该作者
前来学习,谢谢楼主
回复

使用道具 举报

板凳
ID:428648 发表于 2018-11-28 12:50 来自手机 | 只看该作者
跪着楼主,楼主万岁
回复

使用道具 举报

地板
ID:438243 发表于 2018-12-4 08:44 | 只看该作者
666谢谢大神
回复

使用道具 举报

5#
ID:438243 发表于 2018-12-4 08:52 | 只看该作者
666楼主 大神
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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