找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机数字频率计程序不全 求帮助

[复制链接]
跳转到指定楼层
楼主
1、    项目名称:设计制作数字频率计
2、    项目要求:
(1)    用KEILC51、Proteus仿真设计数字频率计
(2)    AT89C51单片机作为主控制器;
(3)    用数码管显示频率;
(4)    能测试1-100Hz信号频率;
3、    设计制作任务
(1)    拟定总体设计制作方案;
(2)    设计硬件仿真电路;
(3)    绘制软件设计流程图及编写软件控制程序;
(4)    仿真调试;
(5)    完成项目文档;
4、    总体设计思路
基本功能能实现思路是用51单片机做控制采用12Mhz时钟;定时器在技数状态下最大计数值为fosc/24最大计数频率达250khz用AT89C51内的一个定时器做定时器另一个定时器做计数器为所测试的信号的周期进行计数,定时1s读出的计数值就是频率频率值经数据处理后用数码管显示

5、    硬件电路设计
用AT89C51单片机做控制采用系统时钟12Mhz采用上电复位方式三位一体的共阴极数码管作为显示AT89C51的一个I/O口作为显示数据输出的端口一个i/o口作为数码管位选控制端口T0做为频率测试输入端。


6、    C语言主控程序设计(程序设计思路及流程图)

#include<reg51.h>
unsigned char frequency;
unsigned char count_t1;
unsigned char segselect[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char bitselect[]={0x01,0x02,0x04};
unsigned char dat_display[3];
void delay(unsigned int time)
{
    unsigned int i;
    unsigned char j;
    for (i=0;i<time;i++)
    for(j=0; j<120;j++)
      ;
}
void INT1init()
{
     TMOD|=0x10;
     TH1=(65536-50000)/256;
     TL1=(65536-50000)%256;
     TR1=1;
}
void INT0init()
{
  TMOD|=0x05;
    TH0=0;
    TL0=0;
    TR0=1;
}
void int_init()
{
     EA=1;
     ET1=1;
}     
void display_1bit(unsigned char dat,unsigned char segsel)
{
    P2=0x00;
    P1=dat;
    P2=segsel;


代码不全:


数字频率计.zip

153.21 KB, 下载次数: 7

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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