我要发布
仪器网/ 仪器社区/ 频率计/ 单片机频率计的这段程序怎么理解

单片机频率计的这段程序怎么理解

王松民商法    2017-12-05    频率计    浏览 448 次

精彩问答
ozhengshun 发布日期:2017-12-06
#include
unsigned char code
dispcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char a=0,b=0,c=0,d=0;
unsigned int pinlv=0;
unsigned long int count=0;
void delay() //延时约20ms
{
int j;
for(j=0;j<2000;j++);
}

void display() //显示函数
{
a=pinlv/1000;
b=pinlv/10;
c=pinlv%100/10;
d=pinlv%10;

P2=0xf1;
P0=dispcode[a]; //显示千位
delay();

P2=0xf2;
P0=dispcode[b]; //显示百位
delay();

P2=0xf4;
P0=dispcode[c]; //显示十位
delay();

P2=0xf8;
P0=dispcode[d]; //显示个位
delay();

}
void delay1(n) //延时约2n毫秒
{
int i,j;
for(i=0;i {
for(j=0;j<255;j++) {}
display();
}

}

void main(void)
{
EA=0;
TMOD=0x51; //定时器0为16位计数器模式,定时器0为16位定时器模式
TH0=15602/256; //50毫秒定时。
TL0=15602%256;
T1=1;
ET0=1;
//

EA=1;
TR1=1;
TR0=1;
while(1)
{
display();
}

}

void time0(void)interrupt 1 using 2 //定时器0中断,使用第二工作寄存器组
{
ET0=0;
count++;
if(count==20) //1秒时间到
{
count=0;
TR1=0;
pinlv=TH1*256+TL1; //取计数器1的计数值
TH1=0; //取值后重新归零
TL1=0;
TR1=1;
}
TH0=15602/256; //定时器0赋初值
TL0=15602%256;
TR0=1;
ET0=1;

}
全部评论
ok面筋可带劲了 发布日期:2017-12-06
什么单 片机,哪一段呢?
小花妹妹mmm 发布日期:2017-12-06
程序呢?没有贴出来吗?
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控