标题:
51单片机制作65k频率计程序
[打印本页]
作者:
呀呼嘿
时间:
2017-7-9 18:04
标题:
51单片机制作65k频率计程序
频率计 最高测56kHZ
单片机源程序如下:
#include<reg52.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P1^2;
//sbit lcdpsb=P1^3;
uchar table[]={"F=HZ.KTUS"};
uchar table1[]={"0123456789"};
long pv=0,T=0,fh=0,fl=0;
double ts=0;
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void lcdwrite_com(uchar com)
{
lcdrs=0;
lcdrw=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void lcdwrite_date(uchar date)
{
lcdrs=1;
lcdrw=0;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void lcdinit()
{
// lcdpsb=1;
lcdwrite_com(0x38);
delay(5);
lcdwrite_com(0x0c);
delay(5);
lcdwrite_com(0x06);
delay(5);
lcdwrite_com(0x01);
delay(5);
}
void Exint() interrupt 0//外部中断
{
pv++;
}
void Etint() interrupt 1//定时器中断
{
uchar i;
TH0=0x63;
TL0=0xc0;
i++;
if(i==50)
{
f=pv;
pv=0;
i=0;
}
}
void Etinit()//中断初始化
{
TMOD=0x01;
TH0=0x63;
TL0=0xc0;
EA=1;
ET0=1;
EX0=1;
IT0=1;
TR0=1;
}
void Display(uint x,uint y)//显示
{
uchar i;
lcdwrite_com(0x80);
for(i=0;i<2;i++)
{
lcdwrite_date(table[i]);
}
lcdwrite_com(0x80+2);
lcdwrite_date(table1[x/1000000]);
lcdwrite_com(0x80+3);
lcdwrite_date(table1[x%1000000/100000]);
lcdwrite_com(0x80+4);
lcdwrite_date(table1[x%100000/10000]);
lcdwrite_com(0x80+5);
lcdwrite_date(table1[x%10000/1000]);
lcdwrite_com(0x80+6);
lcdwrite_date(table1[x%1000/100]);
lcdwrite_com(0x80+7);
lcdwrite_date(table1[x%100/10]);
lcdwrite_com(0x80+8);
lcdwrite_date(table1[x%10]);
lcdwrite_com(0x80+9);
for(i=2;i<4;i++)
{
lcdwrite_date(table[i]);
}
lcdwrite_com(0x80+0x40);
lcdwrite_date(table[6]);
lcdwrite_com(0x80+0x40+1);
lcdwrite_date(table[1]);
lcdwrite_com(0x80+0x40+2);
lcdwrite_date(table1[y/100000]);
lcdwrite_com(0x80+0x40+3);
lcdwrite_date(table1[y%100000/10000]);
lcdwrite_com(0x80+0x40+4);
lcdwrite_date(table1[y%10000/1000]);
lcdwrite_com(0x80+0x40+5);
lcdwrite_date(table1[y%1000/100]);
lcdwrite_com(0x80+0x40+6);
lcdwrite_date(table1[y%100/10]);
lcdwrite_com(0x80+0x40+7);
lcdwrite_date(table1[y%10]);
lcdwrite_com(0x80+0x40+8);
lcdwrite_date(table[7]);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
频率计 (2).zip
(70.78 KB, 下载次数: 14)
2017-7-9 18:13 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
asusyt
时间:
2017-7-10 18:18
谢谢分享,下载先
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1