找回密码
 立即注册

QQ登录

只需一步,快速开始

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

新手求大神帮忙有关51单片机用外部中断测频率

[复制链接]
跳转到指定楼层
楼主
ID:123298 发表于 2016-5-26 11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的是stc89c52rc单片机,程序是从网上找的,自己又改了一些,但是原程序有两个问题,第一是缺少“51hei.h”头文件,二是我不知道“guandz()”是什么意思,有什么功能?我改过的程序如下:
#include<reg51.h>
#include"51hei.h"
#define uchar unsigned char
#define FOSC 11059200L
#define T1MS (65536-FOSC*50/12/1000)
uchar counter1;
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;
//uchar  dis[6];
unsigned int counter2=0,tmp;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
                        0xf8,0x80,0x90};
  
unsigned int dis[6];               
void init();
void delay(uchar);
//void display(uchar);
void jishu();
void delay1(uchar i)         
{
  uchar j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}
void display(uchar n)
{
  dis[0]=n/10000; //获取计数值万位
dis[5]=n%10000;
dis[1]=dis[5]/1000;     // 获取计数值千位
dis[5]=dis[5]%1000;
dis[2]=dis[5]/100;    // 获取计数值百位
dis[5]=dis[5]%100;
dis[3]=dis[5]/10;    // 获取计数值十位
dis[4]=dis[5]%10;    // 获取计数值个位
   P0=table[dis[1]];
   wei1 = 0;
   delay1(2);
   wei1 = 1;

   P0=table[dis[2]];
   wei2 = 0;
   delay1(2);
   wei2 = 1;

   P0=table[dis[3]];
   wei3 = 0;
   delay1(2);
   wei3 = 1;

   P0=table[dis[4]];
   wei4 = 0;
   delay1(2);
   wei4 = 1;
}
void main()
{//guandz();
init();
while(1)
{
      jishu();
         display(counter2);
  }   
}
//定时器0和外部中断0初始化
void init()
{  
EA=1;
EX0=1;
ET0=1;
IT0=1;
TMOD=0x01;
TL0 = T1MS;                     
TH0 = T1MS >> 8;
TR0=1;
}

//延时程序
void delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
  for(b=20;b>0;b--);
}
//外部中断0中断程序
void external0()  interrupt 0
{
    tmp++;
   
}

//定时器0中断程序
void timer0()  interrupt 1
{
TL0 = T1MS;                     
TH0 = T1MS >> 8;
counter1++;
}

//显示程序

void jishu()
{
  if(counter1==20)   //定时50ms,执行20次中断表示1s到达
    {
  counter2=tmp;
  tmp=0;
  counter1=0;
  }
   //else
   //display(counter2);
}
我将程序下载到单片机,然后接入函数发生器测试,结果是LED数码管只能显示0-255Hz,超过255又从0重新开始,然后继续增大频率就是0-255的循环。求问大神有什么解决办法?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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