|
4金钱
本帖最后由 ayouyou 于 2021-4-24 11:11 编辑
做频率计的实验,取的频率是对的,但是在数码管上一直显示不对,输入的是2876HZ,显示应该是2876,结果是28760下面是代码:
#include<regx51.h>
unsigned int count=0,f,a=0;
unsigned char code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char table[8]={0};
void delay10us(unsigned int n)
{
while(n--);
}
void main()
{
TMOD=0x52;
TH0=0x06;
TL0=0X06;
TH1=0;
TL1=0;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
EA=1;
while(1)
{
table[7]=f/100000000;
table[6]=(f%10000000)/1000000;
table[5]=(f%1000000)/100000;
table[4]=(f%100000)/10000;
table[3]=(f%10000)/1000;
table[2]=(f%1000)/100;
table[1]=(f%100)/10;
table[0]=f%10;
for(a=0;a<8;a++)
{
P2=(0x01)<<a;
P0=seg[table[a]];
delay10us(500);
}
}
}
void int0() interrupt 1//T0定时 方式2
{
count++;
if(count==4000)
{
count=0;
TR0=0;
TR1=0;
f=TH1*256+TL1;
}
}
我知道答案
本帖寻求最佳答案回答被采纳后将获得系统奖励 10 金钱 , 目前已有 0人回答
|
|